1. Go to this page and download the library: Download tomatophp/filament-cms library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
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')
]);
}
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)
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Form\PostForm;
use Filament\Forms\Components\TextInput;
public function boot()
{
PostForm::register([
TextInput::make('custom_field')
->label('Custom Field')
->
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Table\PostTable;
use Filament\Tables\Columns\TextColumn;
public function boot()
{
PostTable::register([
TextColumn::make('custom_field')
->label('Custom Field')
->sortable()
->searchable(),
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Table\PostActions;
use Filament\Tables\Actions\Action;
public function boot()
{
PostActions::register([
Action::make('custom_action')
->label('Custom Action')
->icon('heroicon-o-bolt')
->action(function ($record) {
// Your custom action logic
}),
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Table\PostBulkActions;
use Filament\Tables\Actions\BulkAction;
public function boot()
{
PostBulkActions::register([
BulkAction::make('custom_bulk_action')
->label('Custom Bulk Action')
->icon('heroicon-o-bolt')
->action(function ($records) {
// Your custom bulk action logic
}),
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Table\PostFilters;
use Filament\Tables\Filters\Filter;
public function boot()
{
PostFilters::register([
Filter::make('custom_filter')
->form([
// Your filter form fields
])
->query(function ($query, array $data) {
// Your filter query logic
}),
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\InfoList\PostInfoList;
use Filament\Infolists\Components\TextEntry;
public function boot()
{
PostInfoList::register([
TextEntry::make('custom_field')
->label('Custom Field'),
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\CategoryResource\Form\CategoryForm;
use Filament\Forms\Components\TextInput;
public function boot()
{
CategoryForm::register([
TextInput::make('custom_field')
->label('Custom Field')
->
use TomatoPHP\FilamentCms\Filament\Resources\CategoryResource\Table\CategoryTable;
use Filament\Tables\Columns\TextColumn;
public function boot()
{
CategoryTable::register([
TextColumn::make('custom_field')
->label('Custom Field')
->sortable(),
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\CategoryResource\Table\CategoryActions;
use Filament\Tables\Actions\Action;
public function boot()
{
CategoryActions::register([
Action::make('custom_action')
->label('Custom Action')
->icon('heroicon-o-bolt')
->action(function ($record) {
// Your custom action logic
}),
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\CategoryResource\Table\CategoryBulkActions;
use Filament\Tables\Actions\BulkAction;
public function boot()
{
CategoryBulkActions::register([
BulkAction::make('custom_bulk_action')
->label('Custom Bulk Action')
->icon('heroicon-o-bolt')
->action(function ($records) {
// Your custom bulk action logic
}),
]);
}
use TomatoPHP\FilamentCms\Filament\Resources\CategoryResource\Table\CategoryFilters;
use Filament\Tables\Filters\Filter;
public function boot()
{
CategoryFilters::register([
Filter::make('custom_filter')
->form([
// Your filter form fields
])
->query(function ($query, array $data) {
// Your filter query logic
}),
]);
}
namespace App\Filament\Components\Post;
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Form\Component;
use Filament\Forms\Components\TextInput;
class CustomFieldComponent extends Component
{
public static function make(): \Filament\Forms\Components\Field | \Filament\Schemas\Components\Component
{
return TextInput::make('custom_field')
->label('Custom Field')
->
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Form\PostForm;
use App\Filament\Components\Post\CustomFieldComponent;
public function boot()
{
PostForm::register([
CustomFieldComponent::make(),
]);
}
namespace App\Filament\Columns\Post;
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Table\Column;
use Filament\Tables\Columns\TextColumn;
class CustomColumn extends Column
{
public static function make(): \Filament\Tables\Columns\Column
{
return TextColumn::make('custom_field')
->label('Custom Field')
->sortable()
->searchable();
}
}
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\Table\PostTable;
use App\Filament\Columns\Post\CustomColumn;
public function boot()
{
PostTable::register([
CustomColumn::make(),
]);
}
namespace App\Filament\Entries\Post;
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\InfoList\Entry;
use Filament\Infolists\Components\TextEntry;
class CustomEntry extends Entry
{
public static function make(): \Filament\Infolists\Components\Entry
{
return TextEntry::make('custom_field')
->label('Custom Field');
}
}
use TomatoPHP\FilamentCms\Filament\Resources\PostResource\InfoList\PostInfoList;
use App\Filament\Entries\Post\CustomEntry;
public function boot()
{
PostInfoList::register([
CustomEntry::make(),
]);
}
use TomatoPHP\FilamentCms\Facade\FilamentCMS;
use Filament\Actions\Action;
public function boot()
{
FilamentCMS::registerImportAction(Action::make('import'));
}