PHPackages                             ethicks/filtcms - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. ethicks/filtcms

ActiveLibrary[Admin Panels](/categories/admin)

ethicks/filtcms
===============

A Full featured CMS plugin for Filament PHP

3.0.1(5mo ago)210[2 PRs](https://github.com/MasterSJit/filtCMS/pulls)MITPHPPHP ^8.1|^8.2|^8.3CI passing

Since Nov 28Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/MasterSJit/filtCMS)[ Packagist](https://packagist.org/packages/ethicks/filtcms)[ Docs](https://github.com/MasterSJit/filtcms)[ GitHub Sponsors](https://github.com/MasterSJit)[ RSS](/packages/ethicks-filtcms/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (12)Versions (15)Used By (0)

FiltCMS - Full-Featured CMS Plugin for Filament PHP
===================================================

[](#filtcms---full-featured-cms-plugin-for-filament-php)

[![Latest Version on Packagist](https://camo.githubusercontent.com/143cbe412c9f2a56a937d6ef2731317fd072f47e6b12b2bd8abb4e3ae919deea/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f65746869636b732f66696c74636d732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ethicks/filtcms)[![Total Downloads](https://camo.githubusercontent.com/238fc01b5cf838351db3537e32fb644e47a7d6a99be60e1d7f06f718170a52d5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f65746869636b732f66696c74636d732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ethicks/filtcms)

A comprehensive Content Management System plugin for Filament PHP v3, providing a complete solution for managing pages, blogs, categories, and comments with built-in SEO features.

Features
--------

[](#features)

### 📄 Pages Management

[](#-pages-management)

- Create, edit, and delete pages
- Rich text editor `(CKEditor/TinyMCE comming support soon)`
- Featured image uploads
- SEO meta tags (title, description, keywords)
- URL slug auto-generation
- Publish status (Draft, Published, Scheduled)
- Category assignment
- View, likes, and comments tracking
- Show/hide columns in list view
- Inline editing and bulk actions

### 📁 Categories Management

[](#-categories-management)

- Hierarchical category structure (parent/child)
- Drag-and-drop reordering
- Category images
- SEO optimization per category
- Used for both pages and blogs

### 📰 Blog Management

[](#-blog-management)

- Full blog post creation and management
- Rich content editor
- Excerpt support
- Featured images with image editor
- SEO meta tags
- Tags support
- Trending and Featured toggles
- Scheduled publishing
- Author tracking
- Views, likes, and comments statistics
- Stats widgets (Total Posts, Published, Drafts, Scheduled, Views, Likes)
- Filter by status, category, trending, featured

### 💬 Comments Management

[](#-comments-management)

- Comment moderation system
- Approve/Disapprove/Spam marking
- Profanity filter (auto-flag inappropriate content)
- Reply to comments
- Comment threading (nested replies)
- Author tracking (logged-in users or guests)
- IP and User Agent tracking
- Bulk actions for moderation

### ⚙️ Settings Page

[](#️-settings-page)

- **General Settings**
    - Comment settings (enable/disable, moderation, notifications)
    - Blog settings (posts per page, guest posts, default status)
    - Page settings (templates, comments)
- **SEO Settings**
    - Default meta title, description, keywords
- **Social Media Settings**
    - Social media links
    - Share buttons configuration
- **Notification Settings**
    - Email notifications for comments and posts
- **Advanced Settings**
    - Custom CSS/JS injection

### 🌐 Frontend Features

[](#-frontend-features)

- Public blog and page viewing
- Category/subcategory URL structure
- Automatic 404 handling for unpublished content
- Blade components for easy integration
- Facade methods for content retrieval

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require ethicks/filtcms
```

Run the installation command:

```
php artisan filtcms:install && npm install && npm run build
```

This will:

1. Publish the configuration file
2. Publish the migrations
3. Optionally run migrations

OR You can publish and run the migrations with:

```
php artisan vendor:publish --tag="filtcms-migrations"
php artisan migrate
```

You can publish the config file with:

```
php artisan vendor:publish --tag="filtcms-config"
```

Optionally, you can publish the views using

```
php artisan vendor:publish --tag="filtcms-views"
```

Configuration
-------------

[](#configuration)

Register the plugin in your Filament panel provider (e.g., `app/Providers/Filament/AdminPanelProvider.php` or your custom panel provider name):

```
use EthickS\FiltCMS\FiltCMSPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugins([
            FiltCMSPlugin::make(),
        ]);
}
```

Usage
-----

[](#usage)

### Admin Panel

[](#admin-panel)

After installation, you'll see a new "FiltCMS" navigation group with:

1. Pages
2. Categories
3. Blog
4. Comments
5. Settings

### Creating Content

[](#creating-content)

#### Pages

[](#pages)

```
1. Navigate to FiltCMS > Pages
2. Click "New Page"
3. Fill in title (slug auto-generates)
4. Add content using the rich editor
5. Upload featured image
6. Configure SEO settings in the SEO tab
7. Set publish status and date
8. Assign to category (optional)
9. Save

```

#### Blog Posts

[](#blog-posts)

```
1. Navigate to FiltCMS > Blog
2. Click "New Blog"
3. Fill in title and content
4. Add excerpt and featured image
5. Configure SEO, tags, and settings
6. Toggle trending/featured if needed
7. Schedule or publish immediately
8. Save

```

#### Using Facade Methods

[](#using-facade-methods)

```
use EthickS\FiltCMS\Facades\FiltCMS;

// Get a page
$page = FiltCMS::page('about-us');

if ($page->exists()) {
    echo $page->getTitle();
    echo $page->getBody();
    echo $page->getExcerpt();
    echo $page->getFeaturedImage();
    echo $page->getViewsCount();
    echo $page->getLikesCount();
    echo $page->getCommentsCount();
}

// Get a blog post
$blog = FiltCMS::blog('my-post-slug');

if ($blog->exists()) {
    echo $blog->getTitle();
    echo $blog->getBody();
    print_r($blog->getTags());
    echo $blog->getCategory()->name;
    echo $blog->getAuthor()->name;
}
```

For more methods, refer to the [FILTCMS\_API.md](FILTCMS_API.md) documentation.

#### Blade Template Example

[](#blade-template-example)

```
@php
    $filtCms = app(\EthickS\FiltCMS\FiltCMS::class)->page('about-us');
@endphp

@if($filtCms->exists())
    {{ $filtCms->getTitle() }}
    {!! $filtCms->getBody() !!}
@endif
```

### Comment System

[](#comment-system)

Comments are automatically displayed on published blogs and pages (if enabled). The comment form includes:

- Profanity filtering
- Moderation queue
- Guest or authenticated user comments
- Reply threading

### Scheduling Posts

[](#scheduling-posts)

1. Set status to "Scheduled"
2. Set publish date to future date
3. Add this to your `app/Console/Kernel.php`:

```
use EthickS\FiltCMS\Models\Blog;
use EthickS\FiltCMS\Models\Page;

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        Blog::where('status', 'scheduled')
            ->where('published_at', '
