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/SBogers10/inzigd.komma.pro/app/Komma/Pages/PageService.php
<?php


namespace App\Komma\Pages;

use App\Komma\Base\Service;
use App\Komma\Pages\Models\Page;

final class PageService extends Service
{
    /**
     * @param  int  $id
     * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Relations\HasMany|object|null
     */
    public function getPage(int $id)
    {
        // Find all pages
        if( ! $page = $this->site
            ->pages()
            ->where('active',1)
            ->where('id', $id)
            ->first()
        ) abort(404);

        return $page;
    }

    /**
     * Fetch translated page routes
     *
     * @return object | bool
     */
    public function getAllTranslatedPageRoutes()
    {
        // Find all pages
        if( ! $pages = $this->site
            ->pages()
            ->where('active',1)
            ->where('lft', '!=', 1)
            ->orderBy('lft','asc')
            ->with('translation')
            ->with('translation.route')
            ->get()
        ) return false;

        $routes = [];
        // Loop through pages
        foreach($pages as $key => $page)
        {
            if(isset($page->translation) && isset($page->translation->route)){
                $routes[$page->code_name] = (object)[
                    'name' => $page->translation->name,
                    'route' => $page->translation->route->alias,
                    'node' => $page
                ];
            }
        }
        return (object)$routes;
    }

    /**
     * Generate a sub navigation (children) through the page
     *
     * @param  Page  $page
     * @param $links
     * @return array
     */
    public function getSubNav(Page $page, $links)
    {
        $subNav = [];

        $children = $page->findChildren();
        foreach ($children as $child) $subNav[] = $links->{$child->code_name};

        return $subNav;
    }
}