Maksoft.net

Hook системата позволява на темите и модулите да вмъкват динамично код (CSS, HTML, JS и PHP логика) в различни части от шаблона, без да се променя основната CMS логика.
Hook-овете се регистрират чрез $o_page->add_hook($name, $callback) и се изпълняват с $o_page->hook($name).
Файлът functions.php на темата се зарежда автоматично преди темплейта, за да регистрира собствени hook-ове.
Методът hook_renderBlocks() автоматично добавя hook-ове за css, html и js, базирани на активните блокове от базата.

Примерен functions.php на тема

<?php
// Templates/my-theme/functions.php

// Добавя глобални стилове в <head>
$o_page->add_hook('beforeRender', function() {
echo '<link rel="stylesheet" href="/Templates/my-theme/assets/style.css">';
});

// Добавя съдържание след основния <main>
$o_page->add_hook('afterRender', function() {
echo '<footer>© ' . date('Y') . ' Maksoft CMS</footer>';
});

// Добавя аналитичен JavaScript в края на <body>
$o_page->add_hook('js', function() {
echo '<script>console.log("Analytics loaded");</script>';
});

Примерен HTML темплейт с hook точки

<!DOCTYPE html>
<html lang="bg">
<head>
<meta charset="utf-8">
<title><?php echo htmlspecialchars($o_page->title); ?></title>
<?php $o_page->hook('beforeRender'); ?>
<?php $o_page->hook('css'); ?>
</head>
<body>

<header><?php include 'header.php'; ?></header>

<main>
<?php $o_page->hook('html'); ?>
</main>

<?php $o_page->hook('js'); ?>
<?php $o_page->hook('afterRender'); ?>

</body>
</html>

 

  • add_hook() – регистрира функция за дадено име.

  • hook() – изпълнява всички закачени функции по ред.

  • hook_renderBlocks() – генерира css, html, js hook-ове от съдържанието на страницата.
    → Резултатът е гъвкав темплейт, който може да вмъква блокове, стилове и скриптове динамично.

 


Начало /  /  / Документация / Хукове (Hooks)
Maksoft.Bg Maksoft.Net BrandIT
xxx