Здравствуйте, делаю конструктор блоков на страницах своего сайта. Блоки добавляются через Repeater:
Имеются такие блоки как "Наши работы", "Мастера", "Отзывы" и другие. Все записи для этих блоков создаются через собственный плагин т.к. они имеют между собой связи (у работы из портфолио есть мастер, у мастера есть отзывы и т.д.). Хочу сделать на каждой странице, например, в блоке "Наши работы" выбор, какие работы в нем показывать (обернул их еще в один Repeater, чтобы можно было менять их порядок).
Пробую использовать для этого RecordFinder, но не могу понять как заставить его подгружать содержимое модели из стороннего плагина.
Plugin.php
public function boot()
{
if (\App::runningInBackend()) {
$pluginManager = \System\Classes\PluginManager::instance();
if ($pluginManager->hasPlugin('RainLab.Pages')) {
\Event::listen('backend.form.extendFields', function ($widget) {
if (get_class($widget->model) !== 'RainLab\Pages\Classes\Page') {
return;
}
if ($widget->isNested) {
return;
}
$widget->addFields(
[
'viewBag2[test_block2]' => [
'type' => 'repeater',
'span' => 'full',
'tab' => 'Блоки',
'prompt' => 'Добавить блок',
'groups' => [
'textarea' => [
'name' => 'Наши работы',
'description' => 'Basic text field',
'icon' => 'icon-file-text-o',
'fields' => [
'item1' => [
'type' => 'repeater',
'span' => 'full',
'tab' => 'Блоки',
'prompt' => 'Добавить работу',
'form' => [
'fields' => [
'person' => [
'label' => 'Record Finder',
'comment' => 'Record finder field.',
'type' => 'recordfinder',
'list' => '~/plugins/october/test/models/person/columns.yaml',
'prompt' => 'Click the %s to find an alternative person',
'searchMode' => 'any',
]
]
]
]
],
],
'works' => [
'name' => 'Отзывы',
'description' => ' ',
'icon' => 'icon-file-text-o',
'fields' => [
'text_area' => [
'label' => 'Text Content',
'type' => 'textarea',
'size' => 'large',
],
]
]
]
]
], 'primary');
});
}
}
}