MODULE | Pico |
---|---|
Description | Pico content management module for XCL |
Render Engine | Smarty v2 and XCube Layout |
Version | 2.50.0 |
Author | Nobuhiro Yasutomi @nbuy XCL PHP8 |
Author | Nuno Luciano @gigamaster XCL PHP7 |
Author | Original by Gijoe (https://peak.ne.jp/) |
Copyright | 2005-2024 Authors |
License | GPL |
Apache, Nginx, etc. PHP 8.2.x
MySQL 8.x.x, MariaDB InnoDB utf8 / utf8mb4
XCL version 2.5.0
Pico is a duplicatable module, which means the public folder can be cloned and renamed to create a new instance with its own parameters, blocks and templates fully customizable (aka directory-free V3), otherwise known as D3 modules, e.g. D3Forum.
Pico features frontend content creation and editing with CKEditor4 connected to X-elFinder the file manager for the web with cloud storage possibilities. Each content can have its own header (css and javascript) and embed content, or forms, from other instances of the module.
- category hierarchy
- breadcrumbs
- page navigation
- XOOPS_TRUST_PATH/wraps/(dirname) manually page content-wrapping
- XOOPS_TRUST_PATH/wraps/(dirname) automatically page content-wrapping and transfer
- static URI (same as wraps)
- overridable options at each categories
- body filter system (smarty, wiki, php etc.)
- content preview
- content cache
- tell a friend link (tellafriend module supported natively)
- printer friendly view
- singlecontent view
- custom html header by module/categories
- custom html header by content
- search (with context)
- count views
- list block (duplicatable)
- menu block (duplicatable)
- content block (duplicatable)
- content controller for admin
- dynamic submenu
- native d3forum comment-integration
- Wysiwyg Editor (CKEditor)
- import from TinyD module
- import from pico module
- import from pico content
- plugin for sitemap module
- vote
- automated menu page
- approval system for creating contents
- approval system for modifying contents
- event notification for waiting approval
- plugin for waiting module
- RSS (both entire module and each categories)
- auto-registering wrapped files into DB
- xoops_breadcrumbs
- static URI by mod_rewrite (both wraps mode and normal mode)
- refer histories of contents
- language constants override system
- Xmobile plugin
- any number of extra fields or images as you like
- tag
- hierarchical permission system (succeeding or independent as you like)
- waiting/expiring contents
The filters feature in the Pico module is a powerful content processing system that transforms raw content into formatted output. Let's explore how it works:
Filters are processing functions that take raw content and transform it in some way before displaying it to users. They're essentially content processors that can:
- Convert markup to HTML
- Apply formatting rules
- Execute code within content
- Process templates
- Apply security measures
Looking at the codebase, Pico includes several built-in filters:
- pico_xcode - Processes BBCode and XOOPS codes
- pico_textwiki - Processes Wiki-style markup
- pico_xoopstpl - Processes Smarty templates within content
- pico_xoopsts - Uses XOOPS TextSanitizer for processing
- pico_eval - Evaluates PHP code (admin/moderator only)
- pico_wraps - Processes content from external files
- pico_xpwiki - Integration with xpWiki (currently disabled)
Filters can be configured at three levels:
- Global level - Set in module configuration
- Category level - Set in category options (what you're seeing in the form)
- Content level - Set for individual content items
The category form allows administrators to override global filter settings for a specific category.
This is done through the category options section where you can specify:
filters
- Filters to be appliedfilters_forced
- Filters that must be applied regardless of content settingsfilters_prohibited
- Filters that cannot be used in this category
When content is displayed, the system:
- Determines which filters should be applied based on the configuration
- Sorts filters by their weight (defined by constants like
_MD_PICO_FILTERS_XCODEINITWEIGHT
) - Applies each filter in sequence
- Returns the transformed content
Caution
Filters available only to administrators or moderators.
Some filters are marked as insecure (like pico_eval
and pico_xoopstpl
) and can only be used by administrators or moderators.
This is controlled by constants like _MD_PICO_FILTERS_EVALISINSECURE
.
Each filter defines which editor should be used when creating content with that filter through constants like _MD_PICO_FILTERS_XCODEEDITOR
.
This ensures the editing interface matches the expected input format.
The category options in the form allow administrators to customize these filter settings for all content within a specific category,
providing a flexible way to control content processing.