HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/Lacom/lacom.nl/app/KommaApp/References/Kms/ReferenceService.php
<?php

namespace App\KommaApp\References\Kms;


use App\KommaApp\Kms\Core\Attributes\Attribute;
use App\KommaApp\Kms\Core\Attributes\Models\SelectOption;
use App\KommaApp\Kms\Core\NestedSets\Nodes\EloquentNode;
use App\KommaApp\Kms\Core\Sections\SectionService;
use App\KommaApp\Kms\Core\Sections\SectionTabItem;
use App\KommaApp\Languages\Models\Language;
use App\KommaApp\References\Models\Reference;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;

class ReferenceService extends SectionService
{
    protected $sortable = false;

    function __construct()
    {
        $this->forModelName = Reference::class;

        parent::__construct();
    }

    public function getReferenceTypesForSelect()
    {

        $typeSelector = [
            (new SelectOption())
                ->setContent(trans('kms/references.types.' . Reference::REFERENCE_TYPE_CUSTOMER))
                ->setHtmlContent(trans('kms/references.types.' . Reference::REFERENCE_TYPE_CUSTOMER))
                ->setValue(Reference::REFERENCE_TYPE_CUSTOMER),
            (new SelectOption())
                ->setContent(trans('kms/references.types.' . Reference::REFERENCE_TYPE_EMPLOYEE))
                ->setHtmlContent(trans('kms/references.types.' . Reference::REFERENCE_TYPE_EMPLOYEE))
                ->setValue(Reference::REFERENCE_TYPE_EMPLOYEE)
        ];

        return $typeSelector;
    }

    public function getReferencesBySite($siteId)
    {
        $entities = [];

        $references = Reference::where('site_id', $siteId)
            ->get();

        foreach ($references as $reference) {
            $entities[] = (new SelectOption())
                ->setValue($reference->id)
                ->setContent($reference->name)
                ->setHtmlContent($reference->name);
        }

        return $entities;
    }

    public function getReferenceableModels($site, $referenceable_type = 'pages')
    {
        switch ($referenceable_type) {
            case 'specialisms':
                $models = $site->specialisms()->where('lft', '!=', 1)->get();
                break;
            case 'segments':
                $models = $site->segments()->where('lft', '!=', 1)->get();
                break;
            case 'pages':
            default:
                $models = $site->pages()->where('lft', '!=', 1)->get();
                break;
        }

        $selectOptions = [];

        foreach ($models as $model) {
            $selectOptions[] = (new SelectOption())
                ->setValue($model->id)
                ->setContent($model->translation->name)
                ->setHtmlContent($model->translation->name);
        }

        return $selectOptions;


    }
}