Système CMS complet avec générateur de pages et gestionnaire de thèmes faciles à utiliser pour FilamentPHP
composer require tomatophp/filament-cms
après avoir installé votre package, veuillez exécuter cette commande
REMARQUE si vous devez personnaliser certaines fonctionnalités, n'utilisez pas cette commande et suivez les étapes suivantes, car cette étape exécute la migration et vous devez personnaliser la configuration avant d'exécuter la migration.
php artisan filament-cms:install
enregistrez enfin le plugin sur /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentCms FilamentCMSPlugin :: make ()
-> useCategory ()
-> usePost ()
-> allowExport ()
-> allowImport ()
)
maintenant, veuillez publier et migrer la table des médias
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
php artisan migrate
vous pouvez autoriser l'importation de contenu depuis YouTube en ajoutant YOUTUBE_KEY
à votre .env
YOUTUBE_KEY = YOUR_YOUTUBE_KEY
maintenant sur votre fournisseur de panneau /app/Providers/Filament/AdminPanelProvider.php
ajoutez cette méthode
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowYoutubeImport ())
tout d'abord, vous devez installer dusk
en tant que package principal pour activer cette fonctionnalité
composer require laravel/dusk
maintenant installez le pilote Dusk
php artisan dusk:install
vous devez maintenant autoriser l'importation Behanace sur votre fournisseur de panneau /app/Providers/Filament/AdminPanelProvider.php
ajoutez cette méthode
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowBehanceImport ())
vous pouvez ajouter un type personnalisé au CMS en utilisant la méthode Facade sur votre méthode 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 ' )
]);
}
vous pouvez ajouter plus de types d'auteurs en utilisant la méthode Facade sur votre méthode 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)
]);
}
le gestionnaire de thèmes est construit avec les modules Laravel, vous devez donc d'abord l'installer
Remarque : si vous installez tomatophp/filament-plugins
vous n'avez pas besoin d'installer nwidart/laravel-modules
car il est déjà installé.
composer require nwidart/laravel-modules
maintenant sur votre composer.json
ajoutez au chargement automatique psr-4
{
"autoload" : {
"psr-4" : {
"App \ " : " app/ " ,
"Modules \ " : " Modules/ "
}
}
}
maintenant, exécutez cette commande pour charger automatiquement les thèmes
composer dump-autoload
et vous avez besoin d'un autre package pour la mise en cache et les thèmes de retour comme modèle, nous utilisons le package sushi
composer require calebporzio/sushi
maintenant sur ta config filament-cms
return [
/*
* ---------------------------------------------------
* Allow Features
* ---------------------------------------------------
*/
" features " => [
" theme-manager " => true ,
],
];
maintenant vous devez activer le tableau des paramètres
php artisan vendor:publish --provider= " SpatieLaravelSettingsLaravelSettingsServiceProvider " --tag= " migrations "
php artisan migrate
vous pouvez maintenant utiliser le gestionnaire de thèmes pour gérer plusieurs thèmes frontend sur votre application, sur votre fournisseur de panneau /app/Providers/Filament/AdminPanelProvider.php
ajoutez cette méthode
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> useThemeManager ())
vous pouvez maintenant accéder à /admin/themes
pour gérer vos thèmes et vous pouvez créer un nouveau thème en utilisant cette ligne de commande
php artisan filament-cms:theme
vous trouverez un nouveau module avec le fichier module.json
personnalisé dans votre répertoire Modules
le générateur de pages facilite grandement la personnalisation de votre page et la génération de pages chargées automatiquement pour créer votre site Web à l'aide Sections
Pour commencer à l'utiliser, vous devez ajouter cette méthode sur votre fournisseur de panneau /app/Providers/Filament/AdminPanelProvider.php
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> usePageBuilder ())
première chose dont vous avez besoin pour créer une section sur votre méthode boot()
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 ' ),
])
]);
REMARQUE : la clé de section doit être unique
après avoir enregistré votre section, vous pouvez commencer à utiliser le générateur de pages, vous devez créer un nouvel itinéraire pour votre page comme celui-ci
use Illuminate Support Facades Route ;
Route :: get ( ' / ' , function () {
$ page = load_page ( ' / ' );
return view ( ' welcome ' , compact ( ' page ' ));
});
comme vous le voyez, vous devez utiliser l'assistant load_page
pour charger votre page et la transmettre à votre vue, cette méthode vérifie si la page existe par slug
et renvoie les données de la page si la page n'existe pas ou est supprimée, elle la restaurera ou la créera pour toi
sur votre fichier welcome.blade.php
, vous devez utiliser ce composant blade
< x-tomato-builder-toolbar :page =" $page " allow-layout />
si vous devez utiliser la disposition du filament pour faciliter l'activation du style Livewire / Tailwind, utilisez l'attribut allow-layout
si vous devez l'utiliser sans aucun style, vous pouvez l'utiliser sans cet attribut
maintenant, si vous ouvrez votre page, vous trouverez la vue du constructeur comme celle-ci
vous pouvez ajouter plus de champs au générateur de formulaire en utilisant cette méthode sur votre fournisseur.
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 ' ),
]);
après avoir créé votre formulaire, vous pouvez l'utiliser par key
comme ceci
use TomatoPHP FilamentCms Services FilamentCMSFormBuilder ;
FilamentCMSFormBuilder :: make ( ' xvssd ' )-> build ()
vous pouvez utiliser des demandes de formulaire pour soumettre vos données de formulaire en utilisant cette méthode sur votre fournisseur.
use TomatoPHP FilamentCms Services FilamentCMSFormBuilder ;
FilamentCMSFormBuilder :: make ( ' xvssd ' )-> send ( $ data )
vous pouvez utiliser le bouclier pour protéger votre ressource et autoriser les rôles d'utilisateur en l'installant d'abord
composer require bezhansalleh/filament-shield
Ajoutez le trait SpatiePermissionTraitsHasRoles à votre(vos) modèle(s) utilisateur :
use Illuminate Foundation Auth User as Authenticatable ;
use Spatie Permission Traits HasRoles ;
class User extends Authenticatable
{
use HasRoles ;
// ...
}
Publiez le fichier de configuration puis configurez votre configuration :
-> plugin ( BezhanSalleh FilamentShield FilamentShieldPlugin :: make ())
Exécutez maintenant la commande suivante pour installer Shield :
php artisan shield:install
Nous pouvons maintenant publier les actifs du package.
php artisan vendor:publish --tag= " filament-users-config "
maintenant vous devez l'autoriser dans les options du plugin
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowShield ())
pour plus d'informations, consultez le Filament Shield
Parfois, vous devez ajouter une logique personnalisée à votre publication, comme envoyer un e-mail ou informer l'utilisateur que vous pouvez utiliser les événements de publication pour ce faire, et les événements pris en charge sont :
TomatoPHP FilamentCms Events PostCreated ::class
TomatoPHP FilamentCms Events PostUpdated ::class
TomatoPHP FilamentCms Events PostDeleted ::class
vous pouvez publier le fichier de configuration en utilisant cette commande
php artisan vendor:publish --tag= " filament-cms-config "
vous pouvez publier un fichier de vues en utilisant cette commande
php artisan vendor:publish --tag= " filament-cms-views "
vous pouvez publier le fichier de langues en utilisant cette commande
php artisan vendor:publish --tag= " filament-cms-lang "
vous pouvez publier le fichier de migrations en utilisant cette commande
php artisan vendor:publish --tag= " filament-cms-migrations "
Découvrez notre génial TomatoPHP