Как добавить тег
Тег для компонента - это класс-обработчик в папке core/components/textadvs/handlers/tags/
. Сюда мы можем добавить наш кастомный класс и его подхватит компонент.
Требования для класса-обработчика
- Название класса в формате
txaTag{tag}
- Название файла в формате
txatag{tag}.class.php
- Класс должен расширять абстрактный класс
txaTagBase
- Класс должен иметь 2 публичных свойства:
$key
- ключ тега, по сути это сам тег,$name
- название тега (отображается менеджеру).
- Класс должен иметь публичный метод
prepare($content)
, в котором происходит вызов функцииpreg_replace_callback
с необходимым для обработки регулярным выражением и указанием колбека$this->pregReplaceCallback()
.
Давайте рассмотрим всё вышеописанное на конкретном примере! Допустим, мы хотим добавить тег hr
. Наш класс будет выглядеть так:
php
class txaTagHr extends txaTagBase
{
/** @var string $key */
public $key = 'hr';
/** @var string $name */
public $name = '<hr>';
/**
* @param string $content
*
* @return string
*/
public function prepare($content)
{
$this->idx = 0; // здесь мы обнуляем номер найденного тега
$content = preg_replace_callback('/<hr[^>]*>/usi', array($this, 'pregReplaceCallback'), $content);
return $content;
}
}
Называться файл должен txataghr.class.php
Вот так просто и легко мы можем расширять функционал компонента textAdvs
, если это требуется.