コード例 #1
0
ファイル: test.php プロジェクト: altocms/php-qevix
 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;
 }
コード例 #2
0
ファイル: Text.class.php プロジェクト: Azany/altocms
 /**
  * Загружает конфиг Qevix'а
  *
  * @param string $sType     Тип конфига
  * @param bool   $bClear    Очищать предыдущий конфиг или нет
  */
 public function LoadQevixConfig($sType = 'default', $bClear = true)
 {
     // Временный костыль по методам, отсутствующим в Qevix
     $aExcludeConfig = array('cfgSetAutoReplace', 'cfgSetTagParamCombination');
     if ($bClear) {
         $this->oTextParser->tagsRules = array();
     }
     $aConfig = Config::Get('jevix.' . $sType);
     if (is_array($aConfig)) {
         foreach ($aConfig as $sMethod => $aExec) {
             foreach ($aExec as $aParams) {
                 if (!in_array($sMethod, $aExcludeConfig)) {
                     call_user_func_array(array($this->oTextParser, $sMethod), $aParams);
                 }
             }
         }
         // * Хардкодим некоторые параметры
         unset($this->oTextParser->entities1['&']);
         // разрешаем в параметрах символ &
         if (Config::Get('view.noindex') && isset($this->oTextParser->tagsRules['a'])) {
             $this->oTextParser->cfgSetTagParamDefault('a', 'rel', 'nofollow', true);
         }
     }
     $this->oTextParser->cfgSetTagBuildCallback('ls', array($this, 'CallbackTagLs'));
     if (C::Get('module.text.char.@')) {
         $this->oTextParser->cfgSetSpecialCharCallback('@', array($this, 'CallbackTagAt'));
     }
 }
コード例 #3
0
ファイル: test.php プロジェクト: artstar/php-qevix
// 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', 'tag_code_build');
// 20. Устанавливает на строку предварённую спецсимволом (@|#|$) callback-функцию
$qevix->cfgSetSpecialCharCallback('#', 'tag_sharp_build');
$qevix->cfgSetSpecialCharCallback('@', 'tag_at_build');
// 21. Устанавливает на тег событие
$qevix->cfgSetTagEventCallback('code', 'tag_code_event');
function tag_code_build($tag, $params, $content)
{
    return '<pre><code>' . $content . '<code><pre>' . "\n";
}
function tag_code_event($tag, $params, $content)
{
    // Что-то делаем...
}
function tag_sharp_build($string)
{
    if (!preg_match('#^[\\w\\_\\-\\ ]{1,32}$#isu', $string)) {
        return false;