#1
9 декабря 2016 в 15:08
То геморрой, то золотуха. Столкнулся с очередной проблемой: типограф режет якоря, без типографа ссылки остаются без редиректа. Дилемма.
Надо и то, и то. Возможно ли свести к консенсусу?
Надо и то, и то. Возможно ли свести к консенсусу?
#2
10 декабря 2016 в 01:53
Актуально. Какой файл отвечает за работу типогрофа, можно ли добавить исключение, чтобы якоря не вырезались?… или сделать редирект без включенного типографа?
#3
10 декабря 2016 в 14:48
/system/controllers/typograph/hooks/html_filter.php
<?php class onTypographHtmlFilter extends cmsAction { public function run($data){ $errors = null; $is_auto_br = true; $build_redirect_link = true; $text = $data['text']; $is_auto_br = $data['is_auto_br']; $build_redirect_link = $data['build_redirect_link']; } } else { $text = $data; } return $this->getJevix($is_auto_br, $build_redirect_link)->parse($text, $errors); } private function getJevix($is_auto_br, $build_redirect_link){ cmsCore::loadLib('jevix.class', 'Jevix'); $jevix = new Jevix(); // Устанавливаем разрешённые теги. (Все не разрешенные теги считаются запрещенными.) 'p', 'br', 'span', 'div', 'a', 'img', 'b', 'i', 'u', 's', 'del', 'em', 'strong', 'sup', 'sub', 'hr', 'font', 'ul', 'ol', 'li', 'table', 'tbody', 'thead', 'tfoot', 'tr', 'td', 'th', 'h1','h2','h3','h4','h5','h6', 'pre', 'code', 'blockquote', 'video', 'audio', 'youtube','facebook', 'object', 'param', 'embed', 'iframe' )); // Устанавливаем коротие теги. (не имеющие закрывающего тега) 'br', 'img', 'hr', 'embed' )); // Устанавливаем преформатированные теги. (в них все будет заменятся на HTML сущности) 'pre', 'video' )); // Устанавливаем теги, которые необходимо вырезать из текста вместе с контентом. 'script', 'style', 'meta' )); 'param','embed','a','iframe','div' )); // Устанавливаем разрешённые параметры тегов. Также можно устанавливать допустимые значения этих параметров. $jevix->cfgAllowTagParams('a', array('href' => '#link', 'name' => '#text', 'target' => '#text', 'class' => '#text')); $jevix->cfgAllowTagParams('table', array('width' => '#int', 'height' => '#int', 'cellpadding' => '#int', 'cellspacing' => '#int', 'border' => '#int', 'style' => '#text', 'align'=>'#text', 'valign'=>'#text')); $jevix->cfgAllowTagParams('td', array('width' => '#int', 'height' => '#int', 'style' => '#text', 'align'=>'#text', 'valign'=>'#text', 'colspan'=>'#int', 'rowspan'=>'#int')); $jevix->cfgAllowTagParams('th', array('width' => '#int', 'height' => '#int', 'style' => '#text', 'align'=>'#text', 'valign'=>'#text', 'colspan'=>'#int', 'rowspan'=>'#int')); // Устанавливаем параметры тегов являющиеся обязательными. Без них вырезает тег оставляя содержимое. $jevix->cfgSetTagParamsRequired('img', 'src'); $jevix->cfgSetTagParamsRequired('a', 'href'); // Устанавливаем теги которые может содержать тег контейнер // Устанавливаем автозамену // включаем режим замены переноса строк на тег <br/> $jevix->cfgSetAutoBrMode($is_auto_br); // включаем режим автоматического определения ссылок $jevix->cfgSetAutoLinkMode(true); // если нужно обрабатывать внешние ссылки в редирект if($build_redirect_link){ } // Отключаем типографирование в определенном теге $jevix->cfgSetTagNoTypography('pre','youtube', 'iframe'); // Ставим колбэк для youtube // Ставим колбэк для facebook $jevix->
Сегодня в 22:40
#5
10 декабря 2016 в 15:27
Fuze, благодарю! С id вопрос решен.
Но якоря по прежнему режет. Здесь одна строка мешает, устанавливающая href, как обязательный атрибут для ссылки..
Можно ли удалить без последствий?
Но якоря по прежнему режет. Здесь одна строка мешает, устанавливающая href, как обязательный атрибут для ссылки..
Можно ли удалить без последствий?
$jevix->cfgSetTagParamsRequired('a', 'href');
Если ты удалишь хреф то как ты будешь переходить на якорь?
Можно ли удалить без последствий?
$jevix->cfgSetTagParamsRequired('a', 'href');
<a href="#syda"> К врачу </a> если геморой <a id="syda"> Геморой?</a>
#7
15 октября 2019 в 13:11
Тут другой геморой, при добавлении ссылки на якорь он дублирует ее сам дальше по тексту между тегами <p> или вот так вставляет <="" a=""> хрень какую то. С этим как бороться?