<?php
							 | 
						|
								
							 | 
						|
								namespace App\Repositories;
							 | 
						|
								
							 | 
						|
								use App\Repositories\RepositoryAbstract;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 *  request pages items from directus
							 | 
						|
								 *
							 | 
						|
								 *  @author Björn Hase, Tentakelfabrik
							 | 
						|
								 *  @license http://opensource.org/licenses/MIT The MIT License
							 | 
						|
								 *  @link https://gitea.tentakelfabrik.de/Tentakelfabrik/super-gear-directus
							 | 
						|
								 *
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								class PageRepository extends RepositoryAbstract
							 | 
						|
								{
							 | 
						|
								    /** endpoint */
							 | 
						|
								    protected $endpoint = 'pages';
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     *  find single page with a slug,
							 | 
						|
								     *  page must be published
							 | 
						|
								     *
							 | 
						|
								     *  @param  string $slug
							 | 
						|
								     *  @return array
							 | 
						|
								     */
							 | 
						|
								    public function findOneBySlug($slug)
							 | 
						|
								    {
							 | 
						|
								        // if slug not set, search for empty slug
							 | 
						|
								        if (!$slug) {
							 | 
						|
								            $slug = [ '_null' => 'true' ];
							 | 
						|
								        } else {
							 | 
						|
								            $slug = [ '_eq' => $slug ];
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        return $this->queryBuilder
							 | 
						|
								            ->fields([
							 | 
						|
								                'title', 'slug', 'content', 'view', 'meta',
							 | 
						|
								                'media_teaser.*',
							 | 
						|
								                'media_hero.*'
							 | 
						|
								            ])
							 | 
						|
								            ->aliases('template', 'view')
							 | 
						|
								            ->filter([
							 | 
						|
								                'status' => 'published',
							 | 
						|
								                'slug' => $slug
							 | 
						|
								            ])
							 | 
						|
								            ->findOne();
							 | 
						|
								    }
							 | 
						|
								}
							 |