Sistema CMS completo con creador de páginas y administrador de temas fáciles de usar para FilamentPHP
composer require tomatophp/filament-cms
Después de instalar su paquete, ejecute este comando.
NOTA: si necesita personalizar alguna función, no utilice este comando y siga los siguientes pasos porque este paso ejecuta la migración y necesita personalizar la configuración antes de ejecutar la migración.
php artisan filament-cms:install
finalmente registre el complemento en /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentCms FilamentCMSPlugin :: make ()
-> useCategory ()
-> usePost ()
-> allowExport ()
-> allowImport ()
)
ahora publique y migre la tabla de medios
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
php artisan migrate
puedes permitir la importación de contenido desde youtube agregando YOUTUBE_KEY
a tu .env
YOUTUBE_KEY = YOUR_YOUTUBE_KEY
ahora en su proveedor de panel /app/Providers/Filament/AdminPanelProvider.php
agregue este método
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowYoutubeImport ())
En primer lugar, debe instalar dusk
como paquete principal para permitir esta función.
composer require laravel/dusk
ahora instale el controlador anochecer
php artisan dusk:install
ahora necesita permitir la importación de comportamiento en su proveedor de panel /app/Providers/Filament/AdminPanelProvider.php
agregue este método
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowBehanceImport ())
puede agregar un tipo personalizado al CMS utilizando el método Facade en su método boot()
de 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 ' )
]);
}
puede agregar más tipos de autores utilizando el método Facade en su método boot()
de 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)
]);
}
El administrador de temas está construido con módulos Laravel, por lo que primero debes instalarlo.
Nota: si está instalando tomatophp/filament-plugins
no necesita instalar nwidart/laravel-modules
porque ya está instalado
composer require nwidart/laravel-modules
ahora en su composer.json
agregue a la carga automática psr-4
{
"autoload" : {
"psr-4" : {
"App \ " : " app/ " ,
"Modules \ " : " Modules/ "
}
}
}
ahora ejecute este comando para cargar temas automáticamente
composer dump-autoload
y necesita otro paquete para almacenar en caché y devolver temas como modelo, usamos el paquete sushi
composer require calebporzio/sushi
ahora en tu configuración filament-cms
return [
/*
* ---------------------------------------------------
* Allow Features
* ---------------------------------------------------
*/
" features " => [
" theme-manager " => true ,
],
];
ahora necesitas activar la tabla de configuración
php artisan vendor:publish --provider= " SpatieLaravelSettingsLaravelSettingsServiceProvider " --tag= " migrations "
php artisan migrate
ahora puede usar el administrador de temas para administrar temas de múltiples interfaces en su aplicación, en su proveedor de panel /app/Providers/Filament/AdminPanelProvider.php
agregue este método
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> useThemeManager ())
ahora puede acceder /admin/themes
para administrar sus temas y puede crear un nuevo tema usando esta línea de comando
php artisan filament-cms:theme
Encontrará un nuevo módulo con un archivo module.json
personalizado en su directorio de Modules
.
El creador de páginas hace que sea muy fácil personalizar su página y generar páginas cargadas automáticamente para construir su sitio web usando Sections
. Para comenzar a usarlo, debe agregar este método en su proveedor de panel /app/Providers/Filament/AdminPanelProvider.php
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> usePageBuilder ())
Lo primero que necesita es crear una sección en su método boot()
de AppServiceProvider.
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 ' ),
])
]);
NOTA: la clave de sección debe ser única
Después de registrar su sección, puede comenzar a usar el creador de páginas, necesita crear una nueva ruta para su página como esta
use Illuminate Support Facades Route ;
Route :: get ( ' / ' , function () {
$ page = load_page ( ' / ' );
return view ( ' welcome ' , compact ( ' page ' ));
});
como ve, necesita usar el asistente load_page
para cargar su página y pasarla a su vista, este método verifica si la página existe mediante slug
y devuelve los datos de la página, si la página no existe o no se elimina, la restaurará o la creará para tú
en su archivo welcome.blade.php
necesita usar este componente blade
< x-tomato-builder-toolbar :page =" $page " allow-layout />
si necesita usar Filament Layout para facilitar la activación del estilo Livewire/Tailwind, use el atributo allow-layout
si necesita usarlo sin ningún estilo, puede usarlo sin este atributo
Ahora, si abres tu página, encontrarás una vista del constructor como esta.
Puede agregar más campos al creador de formularios utilizando este método en su proveedor.
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 ' ),
]);
Después de crear su formulario, puede usarlo con key
como esta
use TomatoPHP FilamentCms Services FilamentCMSFormBuilder ;
FilamentCMSFormBuilder :: make ( ' xvssd ' )-> build ()
Puede utilizar solicitudes de formulario para enviar los datos de su formulario utilizando este método en su proveedor.
use TomatoPHP FilamentCms Services FilamentCMSFormBuilder ;
FilamentCMSFormBuilder :: make ( ' xvssd ' )-> send ( $ data )
puede usar el escudo para proteger su recurso y permitir roles de usuario instalándolo primero
composer require bezhansalleh/filament-shield
Agregue el rasgo SpatiePermissionTraitsHasRoles a sus modelos de usuario:
use Illuminate Foundation Auth User as Authenticatable ;
use Spatie Permission Traits HasRoles ;
class User extends Authenticatable
{
use HasRoles ;
// ...
}
Publique el archivo de configuración y luego configure su configuración:
-> plugin ( BezhanSalleh FilamentShield FilamentShieldPlugin :: make ())
Ahora ejecute el siguiente comando para instalar escudo:
php artisan shield:install
Ahora podemos publicar los activos del paquete.
php artisan vendor:publish --tag= " filament-users-config "
ahora debes permitirlo en las opciones del complemento
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowShield ())
para más información consulte el Escudo de Filamento
A veces necesitas agregar alguna lógica personalizada a tu publicación, como enviar un correo electrónico o notificar al usuario. Puedes usar los eventos de publicación para hacer esto, y los eventos admitidos son:
TomatoPHP FilamentCms Events PostCreated ::class
TomatoPHP FilamentCms Events PostUpdated ::class
TomatoPHP FilamentCms Events PostDeleted ::class
puedes publicar el archivo de configuración usando este comando
php artisan vendor:publish --tag= " filament-cms-config "
puedes publicar archivos de vistas usando este comando
php artisan vendor:publish --tag= " filament-cms-views "
puedes publicar archivos de idiomas usando este comando
php artisan vendor:publish --tag= " filament-cms-lang "
puedes publicar el archivo de migraciones usando este comando
php artisan vendor:publish --tag= " filament-cms-migrations "
Echa un vistazo a nuestro impresionante TomatoPHP