FilamentPHP용 페이지 빌더 및 테마 관리자를 사용하기 쉬운 전체 CMS 시스템
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
.env
에 YOUTUBE_KEY
추가하면 YouTube에서 콘텐츠 가져오기를 허용할 수 있습니다.
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
이제 패널 제공자 /app/Providers/Filament/AdminPanelProvider.php
에서 behanace 가져오기를 허용해야 합니다. 이 메소드를 추가하세요.
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowBehanceImport ())
AppServiceProvider boot()
메서드에서 Facade 메서드를 사용하여 CMS에 사용자 정의 유형을 추가할 수 있습니다.
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 ' )
]);
}
AppServiceProvider boot()
메소드에서 Facade 메소드를 사용하여 더 많은 작성자 유형을 추가할 수 있습니다.
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
Modules
디렉터리에 사용자 정의 module.json
파일이 있는 새 모듈이 있습니다.
페이지 빌더를 사용하면 페이지를 매우 쉽게 사용자 정의하고 자동 로드된 페이지를 생성하여 Sections
사용하여 웹사이트를 구축할 수 있습니다. 패널 제공자 /app/Providers/Filament/AdminPanelProvider.php
에 이 메소드를 추가해야 합니다.
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> usePageBuilder ())
먼저 AppServiceProvider 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 ())
이제 다음 명령을 실행하여 Shield를 설치하십시오.
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를 확인해 보세요