Seditio 185 is the release where the engine adopts a clear, consistent modular architecture. The core now explicitly distinguishes full modules, their individual parts, and standalone plugins; module code paths are stored in the database and are actually used when loading PHP; functionality that used to live inside the core is largely moved into installable extensions. The goal is not architecture for its own sake, but making sites easier to run, extend, and upgrade.
Core architecture and database
Dynamic module paths. The sed_core table gains ct_path (relative path to the module directory from site root) and ct_admin (whether the entry is tied to the admin area). ct_path is actively used: in system/common.php the bootstrap resolves inc/{code}.functions.php from that directory on every request. ct_admin drives admin UI such as module menus and routing in the admin panel. On upgrade from 180 both fields are populated automatically via patch and upgrade script.
Clear split between plugins and module parts. sed_plugins gains pl_module (record belongs to a module part vs a standalone plugin), pl_version, pl_dependencies (JSON: required modules and plugins), pl_lock (blocks disabling sensitive parts). Helper APIs include sed_module_active(), sed_module_part_active(), sed_plug_active(), and dependency parsing — a single layer to verify a feature exists before relying on it.
Performance. An index on (config_owner, config_cat) for sed_config speeds loading settings each request; another index targets pl_module on sed_plugins.
Menus. menu_cssclass on the menu table; CSS classes for entries are editable from admin without patching templates manually.
Version patches. sed_apply_patches() in functions.php runs ordered files under system/upgrade/patch/ while $cfg['patchmode'] is enabled in datas/config.php. For 180 → 185 that includes patch_180_185_01.php: schema columns, indexes, and initial ct_path / ct_admin data.
Cache. Internal cache is restored before module API files load so heavy structures (e.g. forum section strings) are already in memory. The upgrade path also widens cache.c_value to MEDIUMTEXT for large serialized blobs. Pausing or resuming a module triggers URL rewrite regeneration and cache invalidation.
Routing. Legacy module=list requests 301 to module=page — list views are merged into the page module.
Administration and configuration
Module settings use owner=module like core settings, with sed_langfile(), reset from *.setup.php, and adding missing config keys from setup files after upgrades when new options appear.
Module control: pause / resume via sed_module_pause(); optional full pause lock via ct_lock from Lock_module in *.setup.php. Individual module parts can be toggled unless locked with pl_lock.
Users module is special: Lock_module=1 — cannot be uninstalled or paused as a whole. Non-critical parts remain togglable. The auth part (users.auth, Lock=1) cannot be disabled so login and permissions always work.
Also: module icons, extensions menu in admin header, referer/redirect hardening, orphaned rights sync, aligned default rights between forums and pages.
Plugins moved out of the monolith
- RSS and XML sitemap are standalone plugins with
*.setup.php: per-content-type feed toggles, limits, priorities,changefreqfor sitemap. - Comments plugin: threaded replies, configurable max depth and per-page tree size, SQL and template refinements.
- Tags: full subsystem for pages and forums, cloud with sort/limits, autocomplete, cloud blocks on home/category/page/forum, noindex for standalone tag search.
- Trashcan plugin: logic moved out of core; core helpers removed accordingly.
- Ratings, Captcha, thanks and others adopt shared hook patterns, including delete hooks for pages, polls, etc.
- Plugin languages load via
sed_langfile()for consistent paths.
Content modules and forums
- Pages: better filters/sorts in manager,
readmorein listings, templates, SEO/meta, print view, trailing-slash handling. - Forums: configurable subforum depth (
maxforumdepth), tags in topics, template work, list performance (tag batching, listing hooks). - PFS: audio file support.
- Media: more unified thumbnail generation and display across modules.
Users, security, forms
- Registration/profile: email format validation,
useremailchangebehavior, improved extra fields. - Passwords: strength hints;
strictpasschangemodule option requires current password before setting a new one. - Security: IP normalization in ban lists, CSRF token in page meta, referer checks tightened where it matters.
- Dates:
d.m.Yaligned in config and output.
UI, skins, assets
- jQuery 1.x removed from the bundle; autocomplete lives in
app.js. - JS/CSS tweaks in admin and front: CSS load order, uploader with drag-and-drop, CKEditor environment.
- Templates updated for forums, pages, polls, menus (
menu_cssclass), syscheck, skineditor.
Upgrading from Seditio 180
- Back up the database and
datas/(includingdatas/config.php). - In admin, disable all plugins; re-enable one by one after migration.
- Replace engine files: for a clean swap, keep only
datas/, deploy 185. Save customskins/andplugins/edits separately — they are not underdatas/. - Set
$cfg['patchmode'] = TRUEindatas/config.phpsosed_apply_patches()runspatch_180_185_01.php. Do not rely on editingsystem/functions.phpfor this. - Open the site, log in as admin, go to Admin → Upgrade, run database upgrade 180 → 185 (cache, forums, comments, menu, dictionaries, module paths, related data).
- Clear cache, verify modules and plugins (RSS, Sitemap, Comments, Tags, Trashcan), re-enable extensions.
- Review skins for
module=pageredirect, new tag/comment blocks — TPL updates may be needed.
Set patchmode back to FALSE once stable.
Summary
Seditio 185 tightens the core ↔ modules ↔ plugins model: each layer has an explicit DB representation, predictable loading rules, and dependency awareness. Major features (RSS, sitemap, comments, tags, trash) ship as extensions. Forums, pages, and the users module get targeted improvements. The 180 → 185 path is supported via patchmode and Admin → Upgrade.
Size: 5712KB, downloaded 4 times
Comments: (0)