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/rentman2019.komma.pro/app/Komma/Pages/PageController.php
<?php

namespace App\Komma\Pages;

use App\Http\Controllers\Controller;
use App\Komma\Components\ComponentService;
use App\Komma\Pages\Models\Page;

class PageController extends Controller
{
    public function home()
    {
        if (\App::getLanguage()->iso_2 != 'en') {
            \App::changeLanguageByIso2('en');

            return \App::reload();
        }

        return $this->show($this->pageService->getPageByCodeName('home'));
    }

    /**
     * @param Page $page
     * @return \Illuminate\Contracts\View\View
     */
    public function show(Page $page)
    {
        if (! isset($this->links->{$page->code_name})) {
            if (! $previewPage = $this->links->{'_'.$page->code_name}) {
                abort(404);
            }

            $page = Page::where('code_name', $page->code_name)->with('translation')->with('translations')->has('translation')->first();
            if (! $page) {
                abort(404);
            }
            if (! $page->translation->preview) {
                abort(404);
            } else {
                $this->links->{$page->code_name} = (object) [
                    'name' => $page->translation->name,
                    'route' => $page->translation->route->alias,
                    'node' => $page,
                ];
            }
        } else {
            $page = $this->links->{$page->code_name}->node;
        }

        $this->checkIfModelShouldThrowAbort($page);

        if (app()->getLocale() != 'en' && $page->translation->populate_from_english) {
            $fallbackTranslation = $page->translations->where('language_id', 40)->first();
            $page->translation = $fallbackTranslation;
            $page->used_fallback_translation = true;
        }

        $componentService = \App::make(ComponentService::class);
        $components = $componentService->getViewComponents($page->translation);

        // Make language menu for given page
        $languageMenu = $this->pageService->makeLanguageSwitchForPage($this->links->{$page->code_name}, $this->links->home);

        // Check if specific template exist
        $view = 'site.templates.'.$page->code_name;
        if (! \View::exists($view)) {
            $view = 'site.templates.default';

            // Squeezed version of the default template
            if (in_array($page->code_name, ['privacy', 'impressum', 'disclaimer', 'legal', 'dataSecurity'])) {
                $view = 'site.templates.squeezed';
            }
        }

        $pageData = [
            'page' => $page,
            'links' => $this->links,
            'languageMenu' => $languageMenu,
            'components' => $components,
            'images' => $page->languageImages(),
        ];

        if (in_array($page->code_name, ['home', 'customers'])) {
            $pageData['alterHeadings'] = true;
        }

        // Return view
        return \View::make($view, $pageData);
    }

  /**
   * Create export of the translatable variable of all the pages
   *
   * @return \Illuminate\Http\JsonResponse
   */
  public function oneSkyExport()
  {
      \App::changeLanguageByIso2('en');

      $pages = $this->site
          ->pages()
          ->where('lft', '!=', 1)
          ->orderBy('lft', 'asc')
          ->with('translation')
          ->has('translation')
          ->get();

      $exportJson = [];

      foreach ($pages as $page) {
          // Generate the page JSON
          $pageJson = $this->oneSkyExporterService->generateModelJson($page, ['name', 'visual_name', 'description', 'meta_title', 'meta_description']);

          if (count($pageJson) == 0) {
              continue;
          }

          // Generate the components JSON
          $componentsJson = $this->oneSkyExporterService->generateComponentJson($page->translation);
          if (count($componentsJson) !== 0) {
              $pageJson['components'] = $componentsJson;
          }
          $exportJson[$page->code_name] = $pageJson;
      }

      return response()->json($exportJson);
  }
}