+30.2152151245-8 abuse@cms39.com

Documentation

A guide for developers who build themes, plugins or integrations with CMS39. The examples come from the actual core code and work as shown.

Before you start

  • The code is PHP 8.5, with strict types where possible, and the database is MariaDB through Doctrine DBAL.
  • A site is not changed by its theme: anything that belongs to the core or to a plugin is updated automatically.
  • In the admin, Theme → Site fields · Guide has the same material with the current values of your site.

Sections

Getting started

Installation, settings, updates.

Architecture

Folders, request lifecycle, database.

Themes & templates

Theme structure, templates, Twig, CSS / JS.

Site fields

Your own fields for texts, images, repeaters.

Menus

Menus and lists with unlimited depth.

Blocks

Sliders, cards, repeating parts.

Hooks

Filters and actions for themes and plugins.

Routing & URLs

Routes, language in the URL, custom pages.

Translations

The __() function, language files, overrides.

Cache & external APIs

Redis, tags, cms39_remember_external.

Pagination

Paginated lists in one call.

Plugin development

Structure, admin pages, ajax, database tables.

CLI & cron

Command line and scheduled tasks.

Webhooks

Notifications from external services.

Search

Search and autocomplete hooks.

E-shop

Products from the theme, cart hooks.

for more information contact us by
E-MAIL or by phone at (+30) +30.2152151245-8