You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
super-gear-directus/app/Repositories/PageRepository.php

51 lines
1.1 KiB

<?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('view', 'template')
->filter([
'status' => 'published',
'slug' => $slug
])
->findOne();
}
}