Здравствуйте, делаю конструктор блоков на страницах своего сайта. Блоки добавляются через 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');
                    
                });
            }
        }

    }
  • reazzon ответили на это сообщение.
  • superoleg очень серьезная ветка получилась, попробуй для удобства раскинуть все по отдельным файлам (groups и т.д.)

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

    customModel:
        label: CustomModel
        type: recordfinder
        list: ~/plugins/rainlab/user/models/user/columns.yaml
        recordsPerPage: 10
        title: Find Record
        prompt: Click the Find button to find a user
        useRelation: false
        modelClass: RainLab\User\Models\User

    superoleg очень серьезная ветка получилась, попробуй для удобства раскинуть все по отдельным файлам (groups и т.д.)

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

    customModel:
        label: CustomModel
        type: recordfinder
        list: ~/plugins/rainlab/user/models/user/columns.yaml
        recordsPerPage: 10
        title: Find Record
        prompt: Click the Find button to find a user
        useRelation: false
        modelClass: RainLab\User\Models\User
    • superoleg ответили на это сообщение.

      У меня был не прописал путь до модели)

      reazzon modelClass: RainLab\User\Models\User

      Спасибо, все заработало!))
      Пока что специально такую длинную ветку сделал, чтобы не упрекнули, что где-то пропущен пробел и было просто нагляднее)

      19 дней спустя

      Привет! вылезает такая ошибка в recordfinder при попытке перейти на следующую страницу или при поиске

      Виджет с именем класса 'formPage1273bdf6add24a8f4c40815610635aecViewBagBlocksForm2WorksForm0IdList' не связан с контроллером." on line 605 of /var/www/volos/data/www/october.volos.me/modules/backend/classes/Controller.php

      • reazzon ответили на это сообщение.

        superoleg Странно, проверяй конфиг, возможно где-то ошибка

        2 года спустя

        аналогичная проблема, поиск не работает
        useRelation: false

        • reazzon ответили на это сообщение.

          vse-prosto Баг внутри ядра October, по-моему в новых версиях все исправили