+30.2152151245-8 abuse@cms39.com

Folders

public/entry points (index.php, update.php, whook.php), plugins/, themes/, media/
library/the core: content, database, cache, routing, translations, fields, menus
administrator/the admin (Bootstrap 5.3 + htmx)
config/site settings (config.json, config.php)
tmp/file cache, logs

A request, step by step

  1. public/index.php loads the core (library/shared.php): settings, database, cache.
  2. The router resolves the route and the language from the URL.
  3. Active plugins load, then the theme's functions.php, so the theme can change anything the plugins define.
  4. The theme template renders the page; shortcodes and Twig in the content run at that point.

Content

All content (pages, posts, products, blocks, files) lives in cms39_posts with a different type, and extra fields go to cms39_postmeta. That is why the same function works for everything:

$page = PageDetail(48);          // title, body, url, image — in the page language
echo $page['title'];
echo $page['url'];

$raw = cms39_post_db(48);        // the raw database row

The site shows only items with status 1 (published) and a date in the past. Other statuses: 0 draft, 2 pending, -1 trash.

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