Плагин OctoberCMS Builder для отображения данных на внешнем интерфейсе

Я впервые использую OctoberCMS, и они предоставляют плагин Builder, чтобы помочь разработчику строить плагин за считанные минуты.

Я пытаюсь использовать этот плагин для отображения данных во внешнем интерфейсе, особенно при использовании Components > Builder > Record list, но в документации недостаточно примеров для получения данных из некоторых полей. Пример в Интернете просто показывает, как получить данные из одного поля.

Мой код показан ниже:

[builderList]
modelClass = "Budiprasetyo\Employees\Models\Employee"
scope = "-"
displayColumn = "name"
noRecordsMessage = "No records found"
detailsPage = "-"
detailsUrlParameter = "id"
pageNumber = "{{ :page }}"

в моем случае я хочу получить данные не только "name" поля, но я также хочу добавить "email", "facebook" полей.

Я попытался превратить это в:

displayColumn = "name", "email", "facebook"

но он не возвращает никаких данных, и я попытался превратить его в массив:

displayColumn = ["name", "email", "facebook"]

и тот же результат, данные не отображаются.

Я ценю любую помощь, спасибо.


person metamorph    schedule 13.09.2016    source источник
comment
Вы можете посмотреть следующую ссылку, это может вам помочь. stackoverflow.com/a/58623382/1388178   -  person Tauhed    schedule 31.10.2019


Ответы (2)


На самом деле я не люблю использовать компоненты плагинов. Иногда он не извлекает никаких данных. Я не знаю, почему, может быть, это просто из-за неправильного использования. В любом случае, лучший способ получить данные из вашего плагина — это перейти к разделу кода, а затем написать функцию onStart() и начать извлекать данные.

function onStart()
{
$data = \Authorname\Pluginname\Models\Model::find(1);
$this['data'] = $data;
}

И таким образом у вас будет переменная data в разделе разметки.

person Ahmed Essam    schedule 13.09.2016

На странице внешнего интерфейса cms вам нужно заменить вызов компонента на ваш собственный частичный код. Ваш частичный файл должен выглядеть примерно так:

*podcastList — это имя компонента

{% set records =podcastList.records %}
{% set displayColumn =podcastList.displayColumn %}
{% set noRecordsMessage =podcastList.noRecordsMessage %}
{% set detailsPage =podcastList.detailsPage %}
{% set detailsKeyColumn =podcastList.detailsKeyColumn %}
{% set detailsUrlParameter =podcastList.detailsUrlParameter %}

{% for record in records %}
  <span class="date">{{ attribute(record, 'date') }}</span>
  <span class="title">{{ attribute(record, 'title') }}</span>
  <p>{{ attribute(record, 'description') }}</p>
{% endfor %}

Понятно, что это упрощенная версия, но суть вы поняли. Вы можете легко определить дополнительные столбцы, не касаясь настроек компонента страницы.

person Michael Wanyoike    schedule 01.09.2017