Октябрь CMS | Как получить значение свойства от компонента, установленного на определенной странице?

Я создал свой компонент с опцией «perPage», которая принимает число и устанавливает лимит работ для отображателя на странице …

введите описание изображения здесь

public function defineProperties()
{
return [
'perPage' => [
'title' => 'Number os works per page',
'description' => 'How many works do you want to display per page?',
'default' => 9,
'validationPattern' => '^[0-9]+$',
'validationMessage' => 'Only numbers allowed'
],
'sortOrder' => [
'title' => 'Order of Works',
'description' => 'How do you want to order the actors',
'type' => 'dropdown',
'default' => 'newest',
],
];
}

Это прекрасно работает с реализацией GET … но в моем проекте мне нужно везде внедрять AJAX, поэтому мне нужно загружать страницы через AJAX, и мне нужно знать, какое число было установлено для компонента … Как я могу получить это число?

//my layout code
function onOpenWorkList()
{

$this['works'] = Category::where('slug', input('slug'))->first();

$this['categories'] = Category::all();

$this['active_category'] = input('slug');

$this['perPage'] = "";  // HERE IS THE CODE

return [
'.home_categories' => $this->renderPartial('work_list_categories_post'),
'.container' => $this->renderPartial('work_list')
];
}

введите описание изображения здесь

1

Решение

В вашем файле компонента:

public $perPage;

/* ... */

public function init()
{
$this->perPage = $this->property('perPage');
}

Затем в макете вы можете сделать это:

function onOpenWorkList()
{
$this['works'] = Category::where('slug', input('slug'))->first();

$this['categories'] = Category::all();

$this['active_category'] = input('slug');

$_component = $this->components['builderList']; // Get the component

$this['perPage'] = $_component->perPage; // Get $perPage from component

return [
'.home_categories' => $this->renderPartial('work_list_categories_post'),
'.container' => $this->renderPartial('work_list')
];
}

Лично я бы просто поставил onOpenWorkList() функция в файле компонента (а не в коде компоновки), так как к нему все равно можно получить доступ через ajax, когда он находится там так же легко, и тогда вам не придется извлекать компонент, как в примере выше.

0

Другие решения

Получение свойства из Компонента Builder в области PHP следует использовать в функции onEnd:

    function onEnd()
{
$component = $this->page->components['builderDetails']->record
}
0

По вопросам рекламы [email protected]