public static function setUpBeforeClass() { $qevix = new Qevix(); // 1. Задает список разрешенных тегов $qevix->cfgAllowTags(array('b', 'i', 'u', 'a', 'img', 'ul', 'li', 'ol', 'br', 'code', 'pre', 'div', 'cut', 'video')); // 2. Указавает, какие теги считать короткими (<br>, <img>) $qevix->cfgSetTagShort(array('br', 'img', 'cut', 'video')); // 3. Указывает преформатированные теги, в которых нужно всё заменять на HTML сущности $qevix->cfgSetTagPreformatted(array('code')); // 4. Указывает не короткие теги, которые могут быть пустыми и их не нужно из-за этого удалять $qevix->cfgSetTagIsEmpty(array('div')); // 5. Указывает теги внутри которых не нужна авто расстановка тегов перевода на новую строку $qevix->cfgSetTagNoAutoBr(array('ul', 'ol')); // 6. Указывает теги, которые необходимо вырезать вместе с содержимым $qevix->cfgSetTagCutWithContent(array('script', 'object', 'iframe', 'style')); // 7. Указывает теги, после которых не нужно добавлять дополнительный перевод строки, например, блочные теги $qevix->cfgSetTagBlockType(array('ol', 'ul', 'code', 'video')); // 8. Добавляет разрешенные параметры для тегов, значение по умолчанию шаблон #text. Разрешенные шаблоны #text, #int, #link, #regexp(...) (Например: "#regexp(\d+(%|px))") $qevix->cfgAllowTagParams('a', array('title', 'href' => '#link', 'rel' => '#text', 'target' => array('_blank'))); $qevix->cfgAllowTagParams('img', array('src' => '#text', 'alt' => '#text', 'title', 'align' => array('right', 'left', 'center'), 'width' => '#int', 'height' => '#int')); $qevix->cfgAllowTagParams('video', array('src' => ['#link' => ['youtube.com', 'vimeo.com']])); // 9. Добавляет обязательные параметры для тега $qevix->cfgSetTagParamsRequired('a', 'href'); $qevix->cfgSetTagParamsRequired('img', 'src'); $qevix->cfgSetTagParamsRequired('video', 'src'); // 10. Указывает, какие теги являются контейнерами для других тегов $qevix->cfgSetTagChilds('ul', 'li', true, true); $qevix->cfgSetTagChilds('ol', 'li', true, true); // 11. Указывает, какие теги не должны быть дочерними к другим тегам $qevix->cfgSetTagGlobal('cut'); // 12. Устанавливаем атрибуты тегов, которые будут добавлятся автоматически $qevix->cfgSetTagParamDefault('a', 'rel', 'nofollow', true); $qevix->cfgSetTagParamDefault('img', 'alt', ''); // 13. Указывает теги, в которых нужно отключить типографирование текста $qevix->cfgSetTagNoTypography(array('code', 'pre')); // 14. Устанавливает список разрешенных протоколов для ссылок (https, http, ftp) $qevix->cfgSetLinkProtocolAllow(array('http', 'https')); // 15. Включает или выключает режим XHTML $qevix->cfgSetXHTMLMode(false); // 16. Включает или выключает режим автозамены символов переводов строк на тег <br> $qevix->cfgSetAutoBrMode(true); // 17. Включает или выключает режим автоматического определения ссылок $qevix->cfgSetAutoLinkMode(true); // 18. Задает символ/символы перевода строки. По умполчанию "\n". Разрешено "\n" или "\r\n" $qevix->cfgSetEOL("\n"); // 19. Устанавливает на тег callback-функцию $qevix->cfgSetTagBuildCallback('code', [static::class, 'tagCodeBuild']); // 20. Устанавливает на строку предварённую спецсимволом (@|#|$) callback-функцию $qevix->cfgSetSpecialCharCallback('#', [static::class, 'tagSharpBuild']); $qevix->cfgSetSpecialCharCallback('@', [static::class, 'tagAtBuild']); static::$qevix = $qevix; }
/** * @param string $tag * @param array|string $params * * @throws Exception */ public function cfgAllowTagParams($tag, $params) { if (is_array($params) && count($params)) { foreach ($params as $attr => $rule) { if (is_array($rule) && isset($rule['#domain'])) { $params[$attr]['#link'] = $params[$attr]['#domain']; unset($params[$attr]['#domain']); } } } parent::cfgAllowTagParams($tag, $params); }
// 1. Задает список разрешенных тегов $qevix->cfgAllowTags(array('b', 'i', 'u', 'a', 'img', 'ul', 'li', 'ol', 'br', 'code', 'pre', 'div', 'cut')); // 2. Указавает, какие теги считать короткими (<br>, <img>) $qevix->cfgSetTagShort(array('br', 'img', 'cut')); // 3. Указывает преформатированные теги, в которых нужно всё заменять на HTML сущности $qevix->cfgSetTagPreformatted(array('code')); // 4. Указывает не короткие теги, которые могут быть пустыми и их не нужно из-за этого удалять $qevix->cfgSetTagIsEmpty(array('div')); // 5. Указывает теги внутри которых не нужна авто расстановка тегов перевода на новую строку $qevix->cfgSetTagNoAutoBr(array('ul', 'ol')); // 6. Указывает теги, которые необходимо вырезать вместе с содержимым $qevix->cfgSetTagCutWithContent(array('script', 'object', 'iframe', 'style')); // 7. Указывает теги, после которых не нужно добавлять дополнительный перевод строки, например, блочные теги $qevix->cfgSetTagBlockType(array('ol', 'ul', 'code')); // 8. Добавляет разрешенные параметры для тегов, значение по умолчанию шаблон #text. Разрешенные шаблоны #text, #int, #link, #regexp(...) (Например: "#regexp(\d+(%|px))") $qevix->cfgAllowTagParams('a', array('title', 'href' => '#link', 'rel' => '#text', 'target' => array('_blank'))); $qevix->cfgAllowTagParams('img', array('src' => '#text', 'alt' => '#text', 'title', 'align' => array('right', 'left', 'center'), 'width' => '#int', 'height' => '#int')); // 9. Добавляет обязательные параметры для тега $qevix->cfgSetTagParamsRequired('img', 'src'); $qevix->cfgSetTagParamsRequired('a', 'href'); // 10. Указывает, какие теги являются контейнерами для других тегов $qevix->cfgSetTagChilds('ul', 'li', true, true); $qevix->cfgSetTagChilds('ol', 'li', true, true); // 11. Указывает, какие теги не должны быть дочерними к другим тегам $qevix->cfgSetTagGlobal('cut'); // 12. Устанавливаем атрибуты тегов, которые будут добавлятся автоматически $qevix->cfgSetTagParamDefault('a', 'rel', 'nofollow', true); $qevix->cfgSetTagParamDefault('img', 'alt', ''); // 13. Указывает теги, в которых нужно отключить типографирование текста $qevix->cfgSetTagNoTypography(array('code', 'pre')); // 14. Устанавливает список разрешенных протоколов для ссылок (https, http, ftp)