ModX: Удаляется тег noindex в TinyMCE
Проблема заключается в том, что при вставке в тело страницы различных специфичных тегов, таких, как <noindex>, редактор их удаляет. Очень неудобно оптимизировать страницы с помощью, ноиндекс, когда, как только выйдешь из хтмл редактирования, нужные теги удаляются.
Способ 1. Простой.
Чтобы добавить в TinyMCE дополнительные тэги, к примеру noindex, необходимо в конфиг TinyMCE добавить строку
extended_valid_elements : “noindex”
Для MODx путь к конфигу редактора: /assets/plugins/tinymce321/xconfig.js
В нём необходимо строку
var tinymce_extended_valid_elements = "";
заменить на
var tinymce_extended_valid_elements = "noindex";
Способ 2. Noindex и Nofollow в ссылках на внешние ресурсы. Обрабатываем с помощью специального плагина.
Всем, кто занимается своим сайтом, должны быть известны основы сео оптимизации. Один из китов сео - ссылки на внешние ресурсы. Тут все просто: чем больше ссылок ведущих на чужой сайт, тем больше мы отдаем своего рейтинга. Чтобы сэкономить на этом деле на своем сайте был написан плагин обертывающий ссылки в noindex и вставляющий rel="nofollow".
Идем в элементы -> управление элементами -> плагины -> создать плагин, обзываем как хотим, и вставляем следующий код. На вкладке системные события ставим галочку на OnLoadWebDocument.
function preg_noindex($matches) { if(strpos($matches[2],'http')===false && strpos($matches[2],'ftp')===false ){ return $matches[0]; }else{ $arg=str_replace('rel="nofollow"','',$matches[1]); return '<noindex><a rel="nofollow" '.$arg.'href='.$matches[2].'> '.$matches[3].'</a></noindex>' ; } } $modx->documentObject['content'] = preg_replace_callback( '@<a([^<]+)href=([^<]+)>(.*)</a>@Ui', "preg_noindex", $modx->documentObject['content']);
Для тех кто занимается постингом кода на сайте можно сюда запихнуть еще и обработку html символов плюс замена {} и [], чтобы MODx не парсил служебные теги. Основан на плагине noParse и доделан под себя. После недолгих мучений с TinyMCE, в силу того что он постоянно засовывал лишние теги и вобще делал не то что я хотел, он был просто отключен. Так что если вы пользуетесь каким либо редактором то следующий код выдаст кашу, чтобы этого избежать убираем в $code_entities_match и $code_entities_replace символы &,&,<,>,<,>. Не забываем вставлять код, который мы желаем подсветить (я использую prettyprint) в теги <pre> </pre>. На выходе добавляется класс для prettyprint.
function replace_modxtags($matches){ global $modx; $code_entities_match = array('&','[', ']','{', '}','<','>'); $code_entities_replace = array( '&', '[', ']', '{', '}', '<', '>' ); $code = str_replace($code_entities_match,$code_entities_replace,$matches[1]); return '<pre class="prettyprint">'.$code.'</prе>'; } $modx->documentObject['content'] = preg_replace_callback("#<prе>(.*?)</prе>#s", "replace_modxtags", $modx->documentObject['content']);
Потом нужно подключить этот плагин. Чтобы в TinyMCE подключить плагины нужно всего лишь вписать в настройки TinyMCE в Конфигурации сайта (ModX) в строку Индивидуальные плагины список имен плагинов, разделенных запятыми, а в строки Индивидуальные кнопки — Row1 (2, 3, 4) имена соответствующих кнопок (иногда для одного плагина бывает несколько кнопок).
Ещё нужно установить настройку Тема WYSIWYG-редактора: Индивидуальная.
при использовании статьи - http://underwork.ru/modx/noindex-i-nofollow-ssyilok-plagin
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- 0 MODx: Настраиваем ЧПУ. Как убрать из URL расширение .html? (27.05.2013)
- Меню в MODX с помощью компонента pdoMenu (16.11.2017)
- MODx Revo: Как добавить кнопки работы с таблицей в TinyMCE (18.02.2013)
- Транслитерация псевдонимов из заголовков в MODX Revolution (23.12.2012)
- Установка MODx Evolution (1.x.x) вместе с Shopkeeper 1.3.5 (03.06.2012)
- Ошибки при переходе при переходе с PHP 5.2.x на PHP 5.3.x (Deprecated: function..., глобальные переменные, работа с сессиями) (21.12.2011)
- MODX Revo: Магазин на VisionCart (23.10.2011)
- ModX - Вывести pagetitle родителя (Display the parent's pagetitle) (10.03.2013)
- Введение в MODx Revolution 2.0 после её установки (23.10.2011)
- Обновление MODx до Revolution 2.0 (23.10.2011)
- ModX: Удаляется тег noindex в TinyMCE (22.10.2011) ← вы тут
- ModX: дополняем редактор TinyMCE кнопками вставки таблиц (Table controls) (23.10.2011)