1. Go to this page and download the library: Download mmaurice/modulate-project library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mmaurice / modulate-project example snippets
namespace Modulatte\Module\SiteContentModule;
class Module extends \mmaurice\modulatte\Support\Module
{
// Наименование модуля
public function name()
{
return 'Справочник ресурсов';
}
// Основная иконка модуля
public function icon()
{
return 'fa fa-folder-open';
}
// Номер позиции в общем списке модулей
public function position()
{
return 10;
}
// Массив табов, которые необходимо скрыть в панели табов. Сами страницы при этом продолжают функционировать (необходимо для иерархических сущностей)
// Необходимо перечислить slug табов, которые будут скрыты
public function hideTabs()
{
return [];
}
}
namespace Modulatte\Module\SiteContentModule\Controllers;
use Modulatte\Module\SiteContentModule\Models\SiteContent;
class MainController extends \mmaurice\modulatte\Support\Controllers\CrudController
{
// Порядковый номер позиции модуля в табах (не обязательно)
protected $position = 0;
// Уникальное наименование модуля (обязательно)
protected $slug = 'main';
// Наименование таба (Обязательно)
protected $name = 'Страны';
// Релевантная модель (используется расширенная базовая модель Eloquent)
protected $model = Countries::class;
// Ограничение в выодаче результатов на страницу пагинации (не обязательно)
// 0 для отключения. По-умолчанию, 25
protected $pagination = 25;
// Набор alias для выводимых в списочном интерфейсе кнопок в controlBar. По-умолчанию: edit, delete
// Кнопки выводятся в перечисленном порядке. Поддерживается кастомизация. (не обязательно)
protected $controlButtons = ['edit', 'delete'];
}
namespace Modulatte\Module\SiteContentModule\Models;
use Illuminate\Http\Request;
use mmaurice\modulatte\Support\Traits\Model\ModuleExtensionTrait;
class SiteContent extends \EvolutionCMS\Models\SiteContent
{
use ModuleExtensionTrait;
// Наименование PK-поля
// (не обязательно, по-умолчанию, id)
public static function pkField()
{
return 'id';
}
// Массив наименований полей
public function fieldsNames()
{
return [];
}
// Массив полей, выводимых в таблице общего списка
public function listFields()
{
return [];
}
// Массив полей, добавляемых автоматически в начало таблицы общего списка
// (не обязательно, по-умолчанию, только id)
public function prependListFields()
{
return ['id'];
}
// Массив полей, добавляемых автоматически в конец таблицы общего списка
// (не обязательно, по-умолчанию, не требуется)
public function appendListFields()
{
return [];
}
// Массив полей, выводимых в интерфейсе создания\изменения записи
public function itemFields()
{
return [];
}
// Массив полей, добавляемых автоматически в начало интерфейса создания\изменения записи
// (не обязательно, по-умолчанию, только id)
public function prependItemFields()
{
return ['id'];
}
// Массив полей, добавляемых автоматически в конец интерфейса создания\изменения записи
// (не обязательно, по-умолчанию, только created_at и updated_at)
public function appendItemFields()
{
return ['created_at', 'updated_at'];
}
// Массив полей, доступных для фильтрации
public function filterFields()
{
return [];
}
// Массив полей, доступных для сортировки общего списка
public function orderFields()
{
return [];
}
// Массив классов для полей в общем списке
public function listFieldsClasses()
{
return [];
}
// Массив классов для полей в интерфейсе создания\изменения записи
public function itemFieldsClasses()
{
return [];
}
// Массив классов для полей фильтра
public function filterFieldsClasses()
{
return [];
}
}
public function childs()
{
$this->addChild('regions', 'country_id', 'id');
}
use Illuminate\Database\Eloquent\Model;
protected function onList()
{
// ...
}
protected function onCreate()
{
// ...
}
protected function onUpdate(Model $item)
{
// ...
}
protected function onClone(Model $item)
{
// ...
}
protected function onDelete(Model $item)
{
// ...
}
// Кастомизация actionBar для действия index
public function actionBarIndex(Collection $actions)
{
// ...
}
// Кастомизация actionBar для действия list
public function actionBarList(Collection $actions)
{
// ...
}
// Кастомизация actionBar для действия create
public function actionBarCreate(Collection $actions)
{
// ...
}
// Кастомизация actionBar для действия update
public function actionBarUpdate(Collection $actions)
{
// ...
}
// Набор alias для выводимых в списочном интерфейсе кнопок в controlBar. По-умолчанию: edit, delete
// Кнопки выводятся в перечисленном порядке. Поддерживается кастомизация. (не обязательно)
protected $controlButtons = ['edit', 'delete'];
// Кастомизация controlBar для контрола edit
public function controlBarEdit(Model $model)
{
// ...
}
// Кастомизация controlBar для контрола delete
public function controlBarDelete(Model $model)
{
// ...
}
protected $groupBar = ['clone', 'delete'];
// Кастомизация groupBar для контрола clone
public function groupBarClone()
{
// ...
}
// Кастомизация groupBar для контрола delete
public function groupBarDelete()
{
// ...
}
protected function onGroupClone()
{
// ...
}
protected function onGroupDelete()
{
// ...
}
public function groupClone()
{
// ...
}
public function groupDelete()
{
// ...
}
protected $controlButtons = [];
public function filterRules()
{
return [
'date_start' => function ($query) {
$field = $this->mappedFilterFieldValue('date_start');
$query->when(!is_null($field) and !empty($field), function ($query) use ($field) {
$query->where('date_start', '>=', $field);
});
return $query;
},
'date_end' => function ($query) {
$field = $this->mappedFilterFieldValue('date_end');
$query->when(!is_null($field) and !empty($field), function ($query) use ($field) {
$query->where('date_end', '<=', $field);
});
return $query;
},
];
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.