How maxsite/cms works
Purpose and Runtime
MaxSite CMS is a PHP CMS for content sites, blogs, business sites, and landing pages. It runs on a web server with Apache .htaccess/mod_rewrite, PHP 7.1+ (recommended PHP 8), and MySQL/MariaDB 5.6+. The repository embeds a legacy CodeIgniter runtime plus the MaxSite application layer.
HTTP Entry and Framework Boot
index.php is the public front controller; it boots CodeIgniter, whose routing and request lifecycle reside in system/core/CodeIgniter.php, system/core/Router.php, and system/core/Output.php. Application routes/controllers are configured under application/config/routes.php and implemented primarily by application/controllers/maxsite.php. Requests are dispatched into MaxSite’s own content/admin/AJAX modes rather than a conventional controller-per-feature MVC structure.
MaxSite Core Initialization and Extension Points
The CMS runtime is centered on initialization, hooks, options, plugins, security, and output services in application/maxsite/common/core/init.php, application/maxsite/common/core/hooks.php, and application/maxsite/common/core/page-out.php. This is the main boundary between CodeIgniter infrastructure and CMS behavior. Hooks and plugin discovery allow core, templates, and extensions to inject behavior during request processing.
Content and Persistence Flow
Public content handling is organized around pages, categories, comments, and page-query/formatting modules: application/maxsite/common/page.php, application/maxsite/common/page/get-pages.php, and application/maxsite/common/comments.php. Database access is configured from application/config/database.php-distr during installation and uses CodeIgniter MySQL/MySQLi drivers (system/database/DB.php, system/database/drivers/mysqli/mysqli_driver.php); an additional PDO abstraction exists at application/maxsite/common/psr4/Pdo/PdoConnect.php. Runtime file storage is separated into uploads/ and protected application storage at application/storage/.htaccess.
Rendering, Types, and Themes
A request resolves to a CMS page type—home, page, archive, category, search, feeds, users, etc.—whose shared render definitions live in application/maxsite/shared/type/. Template selection and composition are managed by the core template services and the active template, shipped as application/maxsite/templates/default/index.php, application/maxsite/templates/default/main/main.php, and application/maxsite/templates/default/main/blocks/. Templates can supply PHP components, shortcodes, custom options, layouts, and front-end assets, making them an application-level customization boundary.
Administration and Authoring
The admin entry flow is in application/maxsite/admin/admin.php, with shared admin behavior in application/maxsite/admin/common.php and layout in application/maxsite/admin/template/default/template.php. Admin plugins implement content CRUD, category/menu/sidebar/user management, system options, plugins, files, and editors—for example application/maxsite/admin/plugins/admin_page/, application/maxsite/admin/plugins/admin_users/, and application/maxsite/admin/plugins/admin_options/. Several operations expose dedicated AJAX PHP endpoints, so authorization and input validation must be preserved across both page and AJAX flows.
Plugin Ecosystem and Integrations
Feature plugins are filesystem-discovered modules under application/maxsite/plugins/, conventionally with index.php execution and info.php metadata. They extend parsing, comments, feeds, caching, SEO, forms, authentication, scheduled work, and external services. Notable integration surfaces include SMTP email (application/maxsite/plugins/smtp_mail/), Facebook/Loginza authentication (application/maxsite/plugins/fbauth/, application/maxsite/plugins/loginza_auth/), RSS import (application/maxsite/plugins/rss_get/), and Markdown via bundled Parsedown (application/maxsite/plugins/parser_markdown/Parsedown/Parsedown.php).
Installation, Updates, and Cache
First-time installation begins at install/index.php; installer stages collect database settings and apply the bundled schema from install/installer/model.sql.txt. The remote updater is a separate secured entry point at update-maxsite/index.php, using update-maxsite/_key.php and archive extraction. Cache domains are filesystem-backed under application/cache/db/, application/cache/html/, and application/cache/rss/; the core cache layer is application/maxsite/common/core/cache.php.
Main entry points: init.php CMS initialization · maxsite.php MaxSite controller · get-pages.php Content queries · page-out.php CMS page output
Components 22
HTTP & Framework
- Public front controller
index.php - CodeIgniter lifecycle · Bootstraps routing and response output.
system/core/CodeIgniter.php - Router
system/core/Router.php - Application routes
application/config/routes.php - MaxSite controller · Selects CMS content, admin, or AJAX modes.
application/controllers/maxsite.php
CMS Runtime
- CMS initialization · Boundary from CodeIgniter infrastructure into CMS behavior.
application/maxsite/common/core/init.php - Hooks & plugin discovery
application/maxsite/common/core/hooks.php - Content queries · Loads and formats pages, categories, and comments.
application/maxsite/common/page/get-pages.php - Page handling
application/maxsite/common/page.php - CMS page output
application/maxsite/common/core/page-out.php - Page types
Administration
- Admin entry
application/maxsite/admin/admin.php - Admin plugins · CRUD and management for content, users, options, files, and editors.
- Admin layout
application/maxsite/admin/template/default/template.php
Themes & Plugins
- Default theme · Templates can add components, layouts, options, shortcodes, and assets.
application/maxsite/templates/default/index.php - Feature plugins · Filesystem modules extending CMS behavior and integrations.
Install, Data & Cache
- Database setup config
application/config/database.php-distr - MySQL / MariaDB
- Uploads & protected storage
- Filesystem cache · Manages database, HTML, and RSS cache domains.
application/maxsite/common/core/cache.php - Installer & schema · Collects database settings and applies the bundled schema.
install/index.php - Secure remote updater
update-maxsite/index.php
Connections 24
- Public front controller → CodeIgniter lifecycle: boots
- CodeIgniter lifecycle → Router: routes request
- Router → Application routes: loads
- Application routes → MaxSite controller: dispatches
- MaxSite controller → CMS initialization: enters CMS runtime
- CMS initialization → Hooks & plugin discovery: runs extension points
- CMS initialization → Content queries: serves content
- Content queries → Page handling: builds page data
- Content queries → MySQL / MariaDB: queries
- CMS initialization → Filesystem cache: uses
- CMS initialization → CMS page output: renders
- CMS page output → Page types: resolves type
- CMS page output → Default theme: composes
- Hooks & plugin discovery → Feature plugins: discovers and invokes
- Default theme → Hooks & plugin discovery: adds hooks and components
- MaxSite controller → Admin entry: admin mode
- Admin entry → Admin plugins: loads management modules
- Admin entry → Admin layout: renders
- Admin plugins → MySQL / MariaDB: manages content
- CMS initialization → Uploads & protected storage: reads and writes files
- Database setup config → MySQL / MariaDB: connects
- Installer & schema → Database setup config: writes settings
- Installer & schema → MySQL / MariaDB: applies schema
- Secure remote updater → CMS initialization: updates CMS files