Вот весь листинг, может я что-то упускаю?
Работаем в файле компонента Catalog.php
<?php namespace Author\Plugin\Components;
use Cms\Classes\ComponentBase;
use Author\Plugin\Models\Item;
class Catalog extends ComponentBase
{
public function componentDetails()
{
return [
'name' => 'Projects Component',
'description' => 'No description provided yet...'
];
}
public function defineProperties()
{
return [
'items' => [
'title' => 'Количество',
'description' => 'Определяет количество элементов на одной странице',
'default' => '10',
'validationPattern' => '^[0-9]+$',
'validationMessage' => 'Only numbers allowed'
],
'sortOrder' => [
'title' => 'Сортировка',
'description' => 'Сортировать по',
'type' => 'dropdown',
'default' => 'name desc'
]
];
}
public function getSortOrderOptions(){
return [
'name asc' => 'названию (ASC)',
'name desc' => 'названию (DESC)'
];
}
public function onRun()
{
$this->items = $this->loadItems();
$this->page['items'] = \Author\Plugin\Models\Item::paginate($this->property('items'));
$this->page['categories'] = \Author\Plugin\Models\Category::get();
}
protected function loadItems(){
$query = Item::all();
if($this->property('sortOrder') == 'name asc'){
$query = $query->sortBy('name');
}
if($this->property('sortOrder') == 'name desc'){
$query = $query->sortByDesc('name');
}
return $query;
}
public $items;
}
Что я делаю не так?