Example #1
0
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;
 }
Example #3
0
 /**
  * Парсинг текста
  *
  * @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;
 }
Example #4
0
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;
        }
    }
}
Example #5
0
 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;
 }
Example #6
0
<?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. Устанавливаем атрибуты тегов, которые будут добавлятся автоматически
Example #7
0
 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;
 }