Files
ave-cms/help/helpers/TagParser.md
T
2026-07-27 12:58:44 +03:00

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 …