Конфигурацию любого компонента можно изменить (название, имя таблицы, используемые поля, используемую модель) или дополнить своими классами.

  1. Создайте файл config/larrock.php со следующим содержанием:

    <?php
    
    return [
        'components' => [
            'краткое название компонента' => Класс компонента
        ],
    
        'models' => [
      'краткое название компонента' => Класс модели компонента
        ]
    ];
  2. Создайте файл с новым конфигом компонента, например в папке app/Components, с наследованием от базового Components компонента:

    class НазваниеКомпонентаComponent extends \Larrock\ComponentНазваниеКомпонента\НазваниеКомпонентаComponent 
  3. По аналогии можете создать класс Модели

    Переназначьте конструктор и добавьте свои изменения:

    public function __construct()
    {
        parent::__construct();
        //Ваши классы или переназначенные атрибуты
    }

Например (переназначение конфига компонента LarrockFeed):

Добавим в компонент Feed новое поле status

  1. Добавляем в таблицу БД компонента feed новое поле status

    ALTER TABLE `feed`
    ADD `status` varchar(191) COLLATE 'utf8mb4_unicode_ci' NOT NULL AFTER `active`;
    
  2. Создаем app/Components/FeedComponent.php

    <?php
    
    namespace App\Components;
    
    use Larrock\Core\Helpers\FormBuilder\FormSelect;
    
    class FeedComponent extends \Larrock\ComponentFeed\FeedComponent
    {
        public function __construct()
        {
            parent::__construct();
            $this->addAdditionalRows();
        }
    
        protected function addAdditionalRows()
        {
            $row = new FormSelect('status', 'Статус вакансии');
            $this->rows['status'] = $row->setOptions(['Свободна', 'Закрыта'])->setDefaultValue('Свободна')->setFillable();
    
            return $this;
        }
    }

    Примечание: Метод setFillable() обязателен, если вы хотите сделать автоматическое сохранение данных поля в таблицу БД компонента.

  3. Прописываем новый конфиг компонента в файле config/larrock.php

    <?php
    
    use App\Components\FeedComponent;
    use App\Models\Feed;
    
    return [
        'components' => [
            'feed' => FeedComponent::class
        ],
        
        'models' => [
            'feed' => Feed::class
        ]
    ];

Другие материалы по теме:

Методы компонентов

Основой любого пакета с расширением является файл Component.php из larrock-core.

Все настройки и управляющая логика расширений наследуются от Component

Переназначение контроллеров компонентов

Контроллер используемый любым компонентом можно изменить.

Добавление панелей компонентов на Dashboard

Любой компонент можно вывести на главную страницу админки (dashboard). Метод можно использовать для вывода быстрых ссылок на создание новых материалов, вывода статистики или любых других данных.

Плагин addPluginImages (загрузка и вывод изображений)

Плагин для компонентов позволяющий реализовать загрузку изображений к материалам. Является составной частью ядра LarrockCMS.

Плагин addPluginFiles (загрузка и вывод файлов)

Плагин для компонентов позволяющий реализовать загрузку файлов к материалам. Является составной частью ядра LarrockCMS.

SaveAdminPluginsData Middleware (сохранение данных плагинов)

Middleware для работы функционала по сохранению данных плагинов у элементов компонентов в админке.

Пишем свой компонент

Какие методы использовать и как. Пояснение к автоматическому построению админки компонента.

Изменение списка подключаемых middleware

Что делать если вы создали свой middleware и хотите подключить его к компонентам LarrockCMS.

Загрузка...