/** @test */ public function it_generates_url_to_item() { $menu = new MenuItem(); $menu->url('/'); $this->assertEquals('route-wildcard', $menu->getUrl()); Admin::model('\\MenuItemTestModel'); $menu = new MenuItem('\\MenuItemTestModel'); $this->assertEquals('route-to-model', $menu->getUrl()); }
protected function registerPatterns() { Route::pattern('adminModelId', '[0-9]+'); Route::pattern('adminModel', implode('|', Admin::modelAliases())); Route::bind('adminModel', function ($model) { $class = array_search($model, Admin::modelAliases()); if ($class === false) { throw new ModelNotFoundException(); } return Admin::model($class); }); Route::pattern('adminWildcard', '.*'); }
public function render() { $params = ['items' => $this->repository()->tree(), 'reorderable' => $this->reorderable(), 'url' => Admin::model($this->class)->displayUrl(), 'value' => $this->value(), 'creatable' => !is_null($this->model()->create()), 'createUrl' => $this->model()->createUrl($this->parameters() + Request::all()), 'controls' => [Column::treeControl()]]; return view(AdminTemplate::view('display.tree'), $params); }
/** @test */ public function it_creates_model_item() { $model = Admin::model('\\Foo\\Bar\\Model'); $this->assertInstanceOf('\\SleepingOwl\\Admin\\Models\\ModelItem', $model); }
<?php /** * Created by PhpStorm. * User: hlogeon * Date: 6/18/15 * Time: 5:39 AM */ use SleepingOwl\Admin\Admin; use SleepingOwl\Admin\Columns\Column; use SleepingOwl\Admin\Models\Form\FormItem; Admin::model('\\Hlogeon\\Scms\\Models\\Type')->title('Типы')->as('page-type')->with('typeLayout', 'listLayout')->columns(function () { // Describing columns for table view Column::string('id', 'ID'); Column::string('name', 'Название'); Column::string('alias', 'Алиас'); // Column::string('alias', 'Алиас'); })->form(function () { // Describing elements in create and editing forms FormItem::text('name', 'Название'); FormItem::text('alias', 'Алиас'); FormItem::checkbox('enable_in_menu', 'Разрешить добавлять в меню?'); FormItem::checkbox('enable_own_layout', 'Разрешить собственный лэйаут для каждой страницы?'); FormItem::checkbox('enable_own_sidebar', 'Разрешить собственный сайдбар для каждой страницы?'); FormItem::select('type_layout_id', 'Лэйаут страницы')->list('\\Hlogeon\\Scms\\Models\\Layout'); FormItem::select('list_layout_id', 'Лэйаут списка')->list('\\Hlogeon\\Scms\\Models\\Layout'); FormItem::select('sidebar', 'Сайдбар списка')->list('\\Hlogeon\\Scms\\Models\\Sidebar'); FormItem::select('item_sidebar', 'Сайдбар элемента')->list('\\Hlogeon\\Scms\\Models\\Sidebar'); FormItem::checkbox('type_in_menu', 'Отображать тип в меню?'); });
<?php /** * Created by PhpStorm. * User: hlogeon * Date: 6/18/15 * Time: 1:20 PM */ use SleepingOwl\Admin\Admin; use SleepingOwl\Admin\Columns\Column; use SleepingOwl\Admin\Models\Form\FormItem; Admin::model('\\App\\User')->title('Пользователи')->as('user')->columns(function () { // Describing columns for table view Column::string('id', 'ID'); Column::string('name', 'Имя'); Column::string('email', 'email'); // Column::string('alias', 'Алиас'); })->form(function () { // Describing elements in create and editing forms FormItem::text('name', 'Имя'); FormItem::text('email', 'Email'); FormItem::text('company_info', 'Компания и должность'); FormItem::password('password', 'Пароль'); FormItem::image('profile_image', 'Аватар'); FormItem::ckeditor('info', 'Информация'); });
/** * Get related form model configuration * @return ModelConfiguration */ public function model() { return Admin::model($this->class); }
/** * Get filter url * @return string */ public function getUrl() { $value = $this->getValue($this->instance, $this->field()); return Admin::model($this->model)->displayUrl([$this->name() => $value]); }
/** * Get related model configuration * @return ModelConfiguration */ protected function getModelItem() { return Admin::model($this->modelClass); }
/** * Get related model configuration * @return ModelConfiguration */ protected function model() { return Admin::model(get_class($this->instance)); }
<?php /** * Created by PhpStorm. * User: hlogeon * Date: 6/18/15 * Time: 6:31 AM */ use SleepingOwl\Admin\Admin; use SleepingOwl\Admin\Columns\Column; use SleepingOwl\Admin\Models\Form\FormItem; Admin::model('\\Hlogeon\\Scms\\Models\\Category')->title('Категории')->as('page-categories')->with('parent')->columns(function () { // Describing columns for table view Column::string('id', 'ID'); Column::string('name', 'Название'); Column::string('parent.name', 'Родитель'); // Column::string('alias', 'Алиас'); })->form(function () { // Describing elements in create and editing forms FormItem::text('name', 'Название'); FormItem::text('slug', 'Slug'); FormItem::select('parent_id', 'Родитель')->list('\\Hlogeon\\Scms\\Models\\Category'); });
<?php /** * Created by PhpStorm. * User: hlogeon * Date: 6/18/15 * Time: 11:33 AM */ use SleepingOwl\Admin\Admin; use SleepingOwl\Admin\Columns\Column; use SleepingOwl\Admin\Models\Form\FormItem; Admin::model('\\Hlogeon\\Scms\\Models\\Sidebar')->title('Сайдбар')->as('sidebar')->columns(function () { // Describing columns for table view Column::string('id', 'ID'); // Column::string('alias', 'Алиас'); })->form(function () { // Describing elements in create and editing forms FormItem::code('content', 'Контент'); });
<?php /** * Created by PhpStorm. * User: hlogeon * Date: 6/18/15 * Time: 5:39 AM */ use SleepingOwl\Admin\Admin; use SleepingOwl\Admin\Columns\Column; use SleepingOwl\Admin\Models\Form\FormItem; Admin::model('\\Hlogeon\\Scms\\Models\\Layout')->title('Лэйауты')->as('page-layout')->columns(function () { // Describing columns for table view Column::string('id', 'ID'); Column::string('name', 'Название'); Column::string('path', 'Путь'); // Column::string('alias', 'Алиас'); })->form(function () { FormItem::text('name', 'Название'); FormItem::text('path', 'Путь'); FormItem::checkbox('has_sidebar', 'Есть сайдбар?'); FormItem::code('sidebar', 'Сайдбар'); });
<?php /** * Created by PhpStorm. * User: hlogeon * Date: 6/18/15 * Time: 6:17 AM */ use SleepingOwl\Admin\Admin; use SleepingOwl\Admin\Columns\Column; use SleepingOwl\Admin\Models\Form\FormItem; Admin::model('\\Hlogeon\\Scms\\Models\\Page')->title('Страницы')->as('page')->with('layout', 'category', 'type')->columns(function () { // Describing columns for table view Column::string('id', 'ID'); Column::string('title', 'Название'); Column::string('slug', 'Slug'); Column::string('type.name', 'Тип'); Column::lists('category.name', 'Категория'); Column::string('layout.name', 'Лэйаут'); // Column::string('alias', 'Алиас'); })->form(function () { // Describing elements in create and editing forms FormItem::text('title', 'Название'); FormItem::text('second_title', 'Дополниетельная строка названия'); FormItem::text('seo_title', 'SEO Title'); FormItem::textarea('seo_description', 'SEO Description'); FormItem::text('seo_keywords', 'SEO Keywords'); FormItem::text('slug', 'Slug'); FormItem::select('type.id', 'Тип')->list('\\Hlogeon\\Scms\\Models\\Type'); FormItem::select('category.id', 'Категория')->list('\\Hlogeon\\Scms\\Models\\Category'); FormItem::select('layout_id', 'Лэйаут')->list('\\Hlogeon\\Scms\\Models\\Layout');
<?php /** * Created by PhpStorm. * User: hlogeon * Date: 6/18/15 * Time: 11:34 AM */ use SleepingOwl\Admin\Admin; use SleepingOwl\Admin\Columns\Column; use SleepingOwl\Admin\Models\Form\FormItem; Admin::model('\\Hlogeon\\Scms\\Models\\MenuItem')->title('Пункты меню')->as('menu-item')->columns(function () { // Describing columns for table view Column::string('id', 'ID'); Column::string('name', 'Название'); Column::string('url', 'URL'); // Column::string('alias', 'Алиас'); })->form(function () { // Describing elements in create and editing forms FormItem::text('name', 'Название'); FormItem::text('url', 'URL'); FormItem::checkbox('published', 'Активен?'); });
<?php /** * Created by PhpStorm. * User: hlogeon * Date: 6/18/15 * Time: 11:25 AM */ use SleepingOwl\Admin\Admin; use SleepingOwl\Admin\Columns\Column; use SleepingOwl\Admin\Models\Form\FormItem; Admin::model('\\Hlogeon\\Scms\\Models\\Footer')->title('Footer')->as('footer')->columns(function () { // Describing columns for table view Column::string('id', 'ID'); Column::string('name', 'Название'); // Column::string('alias', 'Алиас'); })->form(function () { // Describing elements in create and editing forms FormItem::code('content', 'Контент'); FormItem::checkbox('active', 'Активен?'); });