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.
|
|
|
<?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();
|
|
|
|
}
|
|
|
|
}
|