diff .cms/man/ru_RU.UTF-8/menu.html @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.cms/man/ru_RU.UTF-8/menu.html	Fri Oct 11 22:40:23 2024 +0000
@@ -0,0 +1,54 @@
+<!doctype html>
+<html lang="ru">
+
+    <head>
+        <meta charset="utf-8">
+        <title>Заготовки для шаблона</title>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+        <link rel="stylesheet" href="/man/css/prism.css">
+        <link rel="stylesheet" href="/man/css/styles.css">
+    </head>
+
+    <body>
+        <main>
+
+            <h2>Хуки</h2>
+
+            <p><code>menu_item_link</code> - замена пункта меню на момент когда сформирована ссылка.</p>
+            <p><code>menu_item</code> - пункт меню завернут в тег &lt;li> со ссылкой и подпунктами.</p>
+
+            <h2>Хук menu_item_link</h2>
+
+            <p>Модуль Меню позволяет изменить разметку пунктов меню благодаря хуку menu_item_link.
+            Он происходит после формирования ссылки. В переменную $cms помещаются данные.</p>
+
+<pre class="language-php"><code>$cms["menu.mod.php"]["item_link"] = array(
+    "link" => $link,
+    "has_submenu" => $has_submenu,
+);
+do_hook( "menu_item_link" );</code></pre>
+
+            <p>Создайте внутри вашего шаблона файл с именем tpl.mod.php с нижеприведенным содержимым.
+                По сути это модуль к CMS внутри вашего шаблона.
+            </p>
+
+<pre class="language-php"><code>hook_add_fn( "menu_item_link", "tpl_menu_item_link" );
+
+function tpl_menu_item_link() {
+    global $cms;
+
+    if ( $cms["menu.mod.php"]["item_link"]["has_submenu"] ) {
+        $cms["menu.mod.php"]["item_link"]["link"] = "
+            &lt;div class=plus>
+                {$cms['menu.mod.php']['item_link']['link']}
+                &lt;div class=icon>&lt;/div>
+            &lt;/div>";
+    }
+}</code></pre>
+
+            <p>При этом учитывайте что имя функции должно быть уникальным.</p>
+
+        </main>
+        <script src=/man/js/prism.js></script>
+    </body>
+</html>
\ No newline at end of file