Передача переменной Viewbag в компонент из настроек темы - PullRequest
0 голосов
/ 28 мая 2020

В настройках темы Octobercms я использую файл yaml:

product_count:
    label: Number
    type: number
    span: left
    tab: Index
    default: 3

На странице index.htm я использую частичный featuredProducts компонента с псевдонимом featuredProducts

На компоненте featuredProducts viewBag Я использую эту переменную:

perPage = "{{ product_count }}"

Я пытаюсь передать переменную product_count из yaml-файла настроек темы в компоненты viewBag, но безуспешно. Есть идеи, как это сделать?

1 Ответ

1 голос
/ 28 мая 2020

Вам необходимо использовать функциональность компонента property и его метод onRender().

Раздел разметки страницы

{% component 'featuredProducts' perPage=this.theme.product_count %}

Метод компонента onRender(): обязательно используйте метод onRender(), поскольку там будут доступны реквизиты.

public function onRender() {
    // with default value of 3, if theme value is not already set
    $perPage = $this->property('perPage', 3); 

    // now use $perPage to fetch records
    $this->page['items'] = SomeModel::limit($perPage)->get();

    // items will be available in markup for use
}

Если есть сомнения, прокомментируйте.

...