mirror of
https://github.com/avecms/AVE.cms.git
synced 2026-08-01 00:45:44 +00:00
2.1 KiB
2.1 KiB
TagParser — разбор тегов в контенте
App\Helpers\TagParser — парсит спец-теги в шаблонах и контенте документов и
позволяет регистрировать собственные обработчики тегов.
use App\Helpers\TagParser;
Регистрация и разбор
registerHandler($tagName, $handler, $priority = 0, $pattern = null)
Зарегистрировать обработчик тега. $handler вызывается при встрече тега и
возвращает замену. $pattern — своя регулярка (иначе стандартный синтаксис тега).
TagParser::registerHandler('year', function () {
return date('Y');
});
parse($text)
Разобрать текст, заменив все известные теги результатами их обработчиков.
$html = TagParser::parse($template); // [year] → 2026
getRegisteredTags() — список зарегистрированных тегов.
Контекст документа
setCurrentDocument($document) / getCurrentDocument()
Задать/получить документ, в контексте которого разбираются теги полей.
parseDocumentFields($content, $document = null)
Подставить значения полей документа.
parseDocumentTags($content, $document = null)
Разобрать теги документа.
parseModuleTags($template, $installModules = null)
Разобрать теги модулей в шаблоне.
TagParser::setCurrentDocument($doc);
$content = TagParser::parseDocumentFields($rawContent, $doc);
clearCache() — сбросить внутренний кеш парсера.
Рецепт
Свой тег для вывода телефона из настроек:
TagParser::registerHandler('phone', function () {
return Settings::get('shop.phone');
});
echo TagParser::parse($blockHtml); // [phone] → +7 …