PHP code example of tomatophp / filament-cms

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/ */

    

tomatophp / filament-cms example snippets


->plugin(
    \TomatoPHP\FilamentCms\FilamentCMSPlugin::make()
        ->useCategory()
        ->usePost()
        ->allowExport()
        ->allowImport()
)

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)
    ]);
}


\TomatoPHP\FilamentCms\Events\PostCreated::class
\TomatoPHP\FilamentCms\Events\PostUpdated::class
\TomatoPHP\FilamentCms\Events\PostDeleted::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'));
}
bash
php artisan filament-cms:install
bash
php artisan vendor:publish --tag="filament-cms-config"
bash
php artisan vendor:publish --tag="filament-cms-views"
bash
php artisan vendor:publish --tag="filament-cms-lang"
bash
php artisan vendor:publish --tag="filament-cms-migrations"
bash
composer analyse