0
 следующая заметка >>
modules
Модули

Модуль — это короткий код (одной функции), написанный на языке PHP и вызываемый непосредственно из текста заметки или шаблона. Модуль — это файл МОДУЛЬ.php, который кладется в папку site_mod (или site_module, если автор счел его «системным», хотя физически разницы нет).

Вызов модуля происходит из HTML-кода (из текста заметки или темплейта дизайна) командой MODULE NOT FOUND: МОДУЛЬ, при этом должен существовать файл МОДУЛЬ.php, содержащий одноименную (это важно!) процедуру function МОДУЛЬ($параметр){}

Параметр (это может быть и слово и огромный кусок текста) передается модулю как один параметр. А то, что модуль вернул, вставляется вместо вызвавшей конструкции.

Пример простого файла-модуля B.php:

<?php function B($e) { return "<b>$e</b>"; } ?>
?>


Пишем в заметке "жырный", видим: жырный

А если надо передать несколько параметров? Универсальной процедуры разбора я не делал, здесь все на ваше усмотрение: придумывайте любые форматы и разбирайте параметр $e. Например, если мне надо получить два параметра, разделенных запятой, я пишу:


<?php

?>


Вчера, например, я делал модуль меню с двумерными параметрами: сперва делил на строки, затем в каждой строке разбирал через разделитель | перечисленные тексты, имена картинок, ссылки.

Штатно присутствующая в движке функция c() очищает текст от пробелов в начале и конце и прочего мусора. Изначально параметр $e очищен, но дальнейшие разборки я всегда чищу вручную — мало ли пробелов кто для красоты втиснет.

Заодно для простоты учтите, что h() — это htmlspecialchars() для тех, кто заебался всякий раз набирать эту непроизносимую строку, а e() — это mysqlescapespecial... блин, я даже не помню, как она называлась в оригинале, но вы поняли.

Итого: пишем любой модуль, кладем в site_mod/ и радуемся жизни, вызывая его из текста заметки или шаблона.

Хозяйке на заметку: уже достаточно давно модули можно сколь угодно (до 200 кажется) вкладывать друг в друга. То есть, можно писать:

В site_mod лежат все модули' border='0'>_}_}

_}
  следующая заметка >>
Оставить комментарий