function addChClass(&$table, $chars, $class) { foreach ($chars as $ch) { $ord = Qevix::ord($ch); $table[$ord] = (isset($table[$ord]) ? $table[$ord] : 0) | $class; } }
protected function makeText() { $sText = parent::makeText(); if (!empty($this->aAutoReplace)) { $sText = str_replace($this->aAutoReplace[0], $this->aAutoReplace[1], $sText); } return $sText; }
/** * Парсинг текста * * @param string $sText Исходный текст * @param array $aError Возвращает список возникших ошибок * * @return string */ public function TextParser($sText, &$aError = null) { // Если конфиг пустой, то загружаем его if (!count($this->oTextParser->tagsRules)) { $this->LoadJevixConfig(); } $sResult = $this->oTextParser->parse($sText, $aError); return $sResult; }
function addChClass(&$table, $chars, $class, $add = false) { foreach ($chars as $ch) { $ord = Qevix::ord($ch); if (!$add or !isset($table[$ord])) { $table[$ord] = $class; } else { $table[$ord] = (isset($table[$ord]) ? $table[$ord] : 0) | $class; } } }
protected function makeText() { $sText = parent::makeText(); if (!empty($this->aAutoReplace)) { if (isset($this->aAutoReplace['from']) && isset($this->aAutoReplace['to'])) { $sText = str_replace($this->aAutoReplace['from'], $this->aAutoReplace['to'], $sText); } if (isset($this->aAutoReplace['0']) && isset($this->aAutoReplace['1'])) { $sText = str_replace($this->aAutoReplace[0], $this->aAutoReplace[1], $sText); } } return $sText; }
<?php require 'qevix.php'; $qevix = new Qevix(); //Конфигурация // 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. Устанавливаем атрибуты тегов, которые будут добавлятся автоматически
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; }