VersionLicenseFlatboard

Overview

EasyPages is a powerful and flexible custom pages management plugin for Flatboard 5. It allows administrators to create, manage, and display custom pages with full Markdown support, discussion integration, and fine-grained permission control.

Key Features

📝 Content Management

  • Markdown Editor - Full-featured EasyMDE editor with live preview
  • Multiple Content Types - Markdown pages, discussion integration, or external links
  • Rich Content - Support for images, code blocks, tables, and all Markdown features
  • Draft System - Save pages as drafts before publishing

🎨 Navigation & Display

  • Menu Integration - Automatically add pages to navigation menu
  • Custom Icons - Font Awesome icons for each page
  • Grouped Pages - Organize pages in dropdown menus
  • Drag & Drop - Reorder pages with intuitive drag & drop interface
  • Banner Support - Custom banner display for pages

🔐 Security & Permissions

  • Granular Permissions - Set view/edit permissions per page
  • Group-Based Access - Control access by user groups (Guest, Member, Moderator, Admin)
  • Rate Limiting - Built-in protection against abuse (10 creations/hour, 20 updates/hour)
  • Input Validation - Comprehensive validation of all user inputs
  • CSRF Protection - Full CSRF protection on all forms

🚀 Performance

  • Caching System - In-memory cache for faster page loading (5-minute TTL)
  • Atomic File Operations - Safe concurrent file access
  • Optimized Queries - Efficient file system operations

📊 Analytics

  • View Counter - Track unique page views per user/IP
  • View Statistics - Monitor page popularity
  • Audit Logging - Complete audit trail of all page operations

🔍 SEO Features

  • Meta Tags - Custom meta title, description, and keywords
  • SEO-Friendly URLs - Clean, readable slugs
  • Sitemap Ready - Pages are ready for sitemap inclusion

Installation

  1. Download the EasyPages plugin
  2. Extract to plugins/easypages/ directory
  3. Activate the plugin in Admin Panel → Plugins
  4. Configure plugin settings (optional)
  5. Access page management at /admin/pages

Quick Start

Creating Your First Page

  1. Navigate to Admin Panel → Pages
  2. Click "Create Page"
  3. Fill in the form:
    • Title: Page title (required)
    • Slug: URL-friendly identifier (auto-generated if empty)
    • Type: Choose Markdown, Discussion, or External Link
    • Content: Write your content in Markdown
    • Menu: Configure menu display options
    • Permissions: Set who can view/edit
    • SEO: Add meta tags for search engines
  4. Click "Save"

Adding Pages to Menu

  1. Edit your page
  2. Enable "Show in Menu"
  3. Set Menu Label and Icon
  4. Choose Menu Position (header or footer)
  5. Optionally set Group Label for dropdown menus
  6. Save the page

Setting Permissions

Each page can have custom permissions:

  • View Permissions: Control who can see the page

    • Guest (unregistered users)
    • Member (registered users)
    • Moderator
    • Admin
  • Edit Permissions: Control who can edit the page

    • Typically limited to Admin or Moderator

Content Types

Markdown Pages

Standard pages with Markdown content. Perfect for:

  • Documentation
  • About pages
  • Terms of Service
  • Privacy Policy
  • Custom content

Discussion Pages

Display forum discussions as pages. Useful for:

  • Featured discussions
  • Announcements
  • Pinned content

External Links

Redirect to external URLs. Options:

  • Open in same tab
  • Open in new tab

Advanced Features

Hierarchical Pages

  • Create parent-child relationships
  • Organize pages in a tree structure
  • Automatic hierarchy statistics

Page Templates

  • Reusable page structures
  • Consistent formatting
  • Easy content management

Custom Layouts

  • Frontend layout (default)
  • Backend layout (admin-style)
  • Customizable per page

API Endpoints

EasyPages provides REST API endpoints:

  • GET /api/pages - List all pages
  • GET /api/pages/{id} - Get specific page
  • PUT /api/pages/{id} - Update page
  • DELETE /api/pages/{id} - Delete page

All API endpoints require admin authentication.

Security Features

Input Validation

  • Slug format validation (alphanumeric, hyphens, underscores)
  • URL validation (HTTP/HTTPS only)
  • Content size limits (1MB maximum)
  • Type validation (allowed types only)
  • Permission validation (allowed groups only)

Rate Limiting

  • Page Creation: 10 pages per hour per user
  • Page Updates: 20 updates per hour per user
  • Automatic blocking of excessive requests
  • Security logging of rate limit violations

Audit Logging

All important actions are logged:

  • Page creation
  • Page updates
  • Page deletion
  • Rate limit violations

Performance

Caching

  • In-memory cache for page data
  • 5-minute cache TTL
  • Automatic cache invalidation on updates
  • Reduced file system operations

Optimization

  • Atomic file operations
  • Efficient file reading/writing
  • Optimized page tree building
  • Minimal database queries (JSON storage)

Configuration

Plugin settings available in Admin Panel:

  • Enable Plugin: Activate/deactivate the plugin
  • Show in Menu: Display pages in navigation
  • Auto Slug: Automatically generate slugs from titles
  • Show Views: Display view counters
  • Menu Position: Choose header or footer
  • Default Layout: Set default page layout

Permissions

EasyPages registers the following permissions:

  • View Pages: View public pages
  • Create Pages: Create new pages
  • Edit Pages: Edit existing pages
  • Delete Pages: Delete pages
  • View All Pages: Bypass page restrictions
  • Edit All Pages: Edit any page (bypass restrictions)
  • Delete All Pages: Delete any page
  • Manage Menu: Manage navigation menu

File Structure

CODE
easypages/  
├── EasyPagesPlugin.php # Main plugin class
├── EasyPagesController.php # Request handlers
├── EasyPagesService.php # Business logic
├── plugin.json # Plugin metadata
├── README.md # Documentation
├── assets/ # CSS and JavaScript
├── views/ # Template files
├── langs/ # Translations
└── data/ # Page storage
├── pages/ # Page JSON files
└── page_views/ # View tracking

Requirements



  • Flatboard 5.0+ (required)

  • PHP 8.0+ (required)

  • JSON extension (required)

  • Write permissions on data/ directory


Browser Support



  • Chrome/Edge (latest)

  • Firefox (latest)

  • Safari (latest)

  • Opera (latest)


Dependencies


All dependencies are included in Flatboard 5:

  • EasyMDE - Markdown editor
  • SortableJS - Drag & drop functionality
  • MarkdownHelper - Markdown parsing
  • Bootstrap 5 - UI components

No additional dependencies required.

Support

License

GPL3 License - Same as Flatboard 5

Credits

Developed by the Flatboard Team


Version: 1.1.0
Last Updated: December 25, 2025
Compatible with: Flatboard Pro 5.0.0-rc.4+

Edited on Dec 27, 2025 By Fred .