<?php
namespace rtuu\eventmanager\Components;
use Cms\Classes\ComponentBase;
use rtuu\eventmanager\Models\Events as Entry;
use Cms\Classes\Page;
class Event extends ComponentBase
{
public function componentDetails()
{
/
* Component details.
*/
return [
'name' => 'rtuu.eventmanager::lang.event.name',
'description' => 'rtuu.eventmanager::lang.event.description',
];
}
public function defineProperties()
{
return [
'postPage' => [
'title' => 'rtuu.eventmanager::lang.events.detailpage',
'description' => 'rtuu.eventmanager::lang.events.detailpagedesc',
'type' => 'dropdown',
'default' => '/'
]
];
}
public function getSortOrderOptions(){
return [
'name asc' => 'названию (ASC)',
'name desc' => 'названию (DESC)'
];
}
public function getPostPageOptions()
{
return Page::sortBy('/')->lists('url', 'url');
}
public function onRun()
{
/lang.event.name',
'description' => 'rtuu.eventmanager::lang.event.description',
];
}
public function defineProperties()
{
return [
'postPage' => [
'title' => 'rtuu.eventmanager::lang.events.detailpage',
'description' => 'rtuu.eventmanager::lang.events.detailpagedesc',
'type' => 'dropdown',
'default' => '/'
]
];
}
public function getSortOrderOptions(){
return [
'name asc' => 'названию (ASC)',
'name desc' => 'названию (DESC)'
];
}
public function getPostPageOptions()
{
return Page::sortBy('/')->lists('url', 'url');
}
public function onRun()
{
/
* Init component
*/
$alias = $this->param('alias');
$this->page['event'] = $this->getEntry($alias);
$this->page['labels'] = $this->properties['labels'];
//$this->page['event'] = Entry::find(title);
}
public function getEntry($alias)
{
$result = [];
$entries = Entry::where('public', 1)
->where('alias', '=', $alias)
->get();
$url = $this->property('postPage');
foreach ($entries as $entry) {
$result = array(
'id' => $entry->id,
'confstart' => $entry->confstart,
'title' => $entry->title,
'conftype' => $entry->conftype,
'location' => $entry->location,
);
}
return $result;
}
}
Вот код компонента event