Полная система CMS с простым в использовании конструктором страниц и менеджером тем для FilamentPHP.
composer require tomatophp/filament-cms
после установки пакета запустите эту команду
ПРИМЕЧАНИЕ. Если вам нужно настроить какую-либо функцию, не используйте эту команду и следуйте следующим шагам, поскольку на этом этапе выполняется миграция, и перед запуском миграции вам необходимо настроить специальную конфигурацию.
php artisan filament-cms:install
наконец, зарегистрируйте плагин в /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentCms FilamentCMSPlugin :: make ()
-> useCategory ()
-> usePost ()
-> allowExport ()
-> allowImport ()
)
теперь, пожалуйста, опубликуйте и перенесите медиа-таблицу
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
php artisan migrate
вы можете разрешить импорт контента с YouTube, добавив YOUTUBE_KEY
в свой .env
YOUTUBE_KEY = YOUR_YOUTUBE_KEY
теперь в вашем провайдере панели /app/Providers/Filament/AdminPanelProvider.php
добавьте этот метод
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowYoutubeImport ())
прежде всего вам необходимо установить dusk
в качестве основного пакета, чтобы включить эту функцию.
composer require laravel/dusk
теперь установи драйвер сумрака
php artisan dusk:install
теперь вам нужно разрешить импорт behanace для вашего провайдера панели /app/Providers/Filament/AdminPanelProvider.php
добавьте этот метод
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowBehanceImport ())
вы можете добавить собственный тип в CMS, используя метод Facade в методе boot()
вашего AppServiceProvider.
use TomatoPHP FilamentCms Facades FilamentCMS ;
use TomatoPHP FilamentCms Services Contracts CmsType ;
public function boot ()
{
FilamentCMS :: types ()-> register ([
CmsType :: make ( ' building ' )
-> label ( ' Buildings ' )
-> icon ( ' heroicon-o-home ' )
-> color ( ' danger ' )
]);
}
вы можете добавить больше типов авторов, используя метод Facade в методе boot()
AppServiceProvider.
use TomatoPHP FilamentCms Facades FilamentCMS ;
use TomatoPHP FilamentCms Services Contracts CmsAuthor ;
public function boot ()
{
FilamentCMS :: authors ()-> register ([
CmsAuthor :: make ( ' Admin ' )
-> model ( App Models User ::class)
]);
}
менеджер тем создан с использованием модулей Laravel, поэтому вам необходимо сначала установить его.
Примечание. Если вы устанавливаете tomatophp/filament-plugins
вам не нужно устанавливать nwidart/laravel-modules
поскольку они уже установлены.
composer require nwidart/laravel-modules
теперь в вашем composer.json
добавьте в автозагрузку psr-4
{
"autoload" : {
"psr-4" : {
"App \ " : " app/ " ,
"Modules \ " : " Modules/ "
}
}
}
теперь запустите эту команду для автозагрузки тем
composer dump-autoload
и вам нужен другой пакет для кэширования и возврата тем, в качестве модели мы используем пакет sushi
composer require calebporzio/sushi
теперь в вашей конфигурации filament-cms
return [
/*
* ---------------------------------------------------
* Allow Features
* ---------------------------------------------------
*/
" features " => [
" theme-manager " => true ,
],
];
теперь нужно активировать таблицу настроек
php artisan vendor:publish --provider= " SpatieLaravelSettingsLaravelSettingsServiceProvider " --tag= " migrations "
php artisan migrate
теперь вы можете использовать диспетчер тем для управления несколькими темами внешнего интерфейса в вашем приложении, в вашем поставщике панели /app/Providers/Filament/AdminPanelProvider.php
добавьте этот метод
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> useThemeManager ())
теперь вы можете получить доступ к /admin/themes
для управления своими темами и создать новую тему, используя эту командную строку
php artisan filament-cms:theme
вы найдете новый модуль с пользовательским файлом module.json
в каталоге Modules
.
Конструктор страниц позволяет очень легко настроить вашу страницу и генерировать автоматически загружаемые страницы для создания вашего веб-сайта с использованием Sections
. Чтобы начать его использовать, вам необходимо добавить этот метод в свой поставщик панели /app/Providers/Filament/AdminPanelProvider.php
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> usePageBuilder ())
первым делом вам нужно создать раздел в методе boot()
use TomatoPHP FilamentCms Services Contracts Section ;
use TomatoPHP FilamentCms Facades FilamentCMS ;
use Filament Forms Components TextInput ;
FilamentCMS :: themes ()-> register ([
Section :: make ( ' hero ' )
-> label ( ' Hero Section ' )
-> view ( ' sections.pages.hero ' )
-> form ([
TextInput :: make ( ' title ' )
-> label ( ' title ' ),
TextInput :: make ( ' description ' )
-> label ( ' description ' ),
TextInput :: make ( ' url ' )
-> url ()
-> label ( ' url ' ),
TextInput :: make ( ' button ' )
-> label ( ' button ' ),
])
]);
ПРИМЕЧАНИЕ. Ключ раздела должен быть уникальным.
после регистрации вашего раздела вы можете начать использовать конструктор страниц, вам нужно создать новый маршрут для вашей страницы, как показано ниже.
use Illuminate Support Facades Route ;
Route :: get ( ' / ' , function () {
$ page = load_page ( ' / ' );
return view ( ' welcome ' , compact ( ' page ' ));
});
как вы видите, вам нужно использовать помощник load_page
для загрузки вашей страницы и передачи ее вашему представлению. Этот метод проверяет, существует ли страница по slug
, и возвращает данные страницы, если страница не существует или удалена, она восстановит ее или создаст для ты
в вашем файле welcome.blade.php
вам нужно использовать этот компонент блейда
< x-tomato-builder-toolbar :page =" $page " allow-layout />
если вам нужно использовать макет нити, чтобы упростить активацию стиля Livewire / Tailwind, используйте allow-layout
, если вам нужно использовать его без какого-либо стиля, вы можете использовать его без этого атрибута
теперь, если вы откроете свою страницу, вы найдете такой вид конструктора
вы можете добавить больше полей в конструктор форм, используя этот метод у своего провайдера.
use TomatoPHP FilamentCms Services FilamentCMSFormFields ;
use TomatoPHP FilamentCms Services Contracts CmsFormFieldType ;
FilamentCMSFormFields :: register ([
CmsFormFieldType :: make ( ' code ' )
-> className ( CodeEditor ::class)
-> color ( ' warning ' )
-> icon ( ' heroicon-s-code-bracket-square ' )
-> label ( ' Code Editor ' ),
]);
после создания формы вы можете использовать ее по такому key
use TomatoPHP FilamentCms Services FilamentCMSFormBuilder ;
FilamentCMSFormBuilder :: make ( ' xvssd ' )-> build ()
вы можете использовать запросы форм для отправки данных формы, используя этот метод у своего провайдера.
use TomatoPHP FilamentCms Services FilamentCMSFormBuilder ;
FilamentCMSFormBuilder :: make ( ' xvssd ' )-> send ( $ data )
вы можете использовать щит для защиты своего ресурса и разрешения ролей пользователей, сначала установив его.
composer require bezhansalleh/filament-shield
Добавьте черту SpatiePermissionTraitsHasRoles к вашим моделям пользователей:
use Illuminate Foundation Auth User as Authenticatable ;
use Spatie Permission Traits HasRoles ;
class User extends Authenticatable
{
use HasRoles ;
// ...
}
Опубликуйте файл конфигурации, затем настройте свою конфигурацию:
-> plugin ( BezhanSalleh FilamentShield FilamentShieldPlugin :: make ())
Теперь выполните следующую команду для установки щита:
php artisan shield:install
Теперь мы можем опубликовать ресурсы пакета.
php artisan vendor:publish --tag= " filament-users-config "
теперь вам нужно разрешить это в настройках плагина
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowShield ())
для получения дополнительной информации проверьте экран накаливания.
иногда вам нужно добавить к своему сообщению некоторую пользовательскую логику, например отправить электронное письмо или уведомить пользователя, что вы можете использовать для этого события публикации, и поддерживаемые события:
TomatoPHP FilamentCms Events PostCreated ::class
TomatoPHP FilamentCms Events PostUpdated ::class
TomatoPHP FilamentCms Events PostDeleted ::class
вы можете опубликовать файл конфигурации с помощью этой команды
php artisan vendor:publish --tag= " filament-cms-config "
вы можете опубликовать файл представлений с помощью этой команды
php artisan vendor:publish --tag= " filament-cms-views "
вы можете опубликовать языковой файл с помощью этой команды
php artisan vendor:publish --tag= " filament-cms-lang "
вы можете опубликовать файл миграции с помощью этой команды
php artisan vendor:publish --tag= " filament-cms-migrations "
Ознакомьтесь с нашим удивительным TomatoPHP