Илья Васильевич Астафьев, автор справочника «Родоплеменной состав казахов (конец XIX - начало XX вв.). Этноисторический справочник», изготовитель сувениров с казахскими тамгами на сайте «Современное искусство Казахстана», автор справочника «Что означает мое имя?» Алматы, Казахстан, E-mail: ilya@astafyev.kz Skype: ilya.astafyev.home Моб. тел.: +7(777)-210-40-66

Многие сталкивались с созданным Олегом ZyX Микрюковым замечательным плагином SeoLinks, который предоставляет удобный инструмент SEO оптимизатора для внутренней перелинковки сайта. С его помощью можно было легко составить набор текстовых шаблонов и назначить им ссылки, которые автоматически проставлялись в тексте сайта. Я даже предложил автору вставить механизм добавления в шаблоны всплывающих подсказок к тексту ссылки, но он это в последнем релизе не учел. Кроме того, в шаблоне можно было указать ссылку только к отдельным словам, а иногда так хочется использовать в качестве шаблона какой-нибудь идиоматический оборот и выдать конкретное целеуказание для перемещения.

Все это и подтолкнуло меня к созданию собственного плагина CrossLinks, который и представляю вашему вниманию.

Набор шаблонов, из которых формируются ссылки, отделяется от назначенной им ссылки знаком "=" . Если одной ссылке вы хотите назначить несколько слов или словосочетаний, то их следует перечислить через разделитель, по умолчанию запятая, но можно и поэкспериментировать. В случае назначения нескольких пар <шаблон> "=" <ссылка>, их необходимо разделять переходом на новую строку. Из каждого набора шаблонов плагин ищет и делает столько ссылок в тексте, сколько указано в параметре «Ссылок на странице» или установлено в описании шаблона.

Важное замечание! По умолчанию в качестве допустимых символов в суффиксах шаблонов установлены буквы русского, английского, украинского и казахского (только кириллические символы) языков. Если вам требуются пробелы, буквы из других языков, цифры или спецсимволы, то вам их нужно будет включать в описание параметров ссылок.

Плагин не делает замену шаблонов на ссылки внутри любых тегов html, а также следующих парных тегов: ссылок (<a …>…</a>), стилей (<style…>…</style>), скриптов (<script…>…</script>), тэгов заголовков (типа <h1…>…</h1>). Плагин игнорирует содержимое html-комментариев (<!--…-->), а также html-текст, ограниченный следующими тегами: <!--crossLinks…-->…<!--/crossLinks…-->. Для обратной совместимости с плагином SeoLinks добавлена поддержка его тега исключения html-текста <!--seoLinks span-->…<!--/seoLinks span-->.

Я попробую описать текстовый шаблон и параметры ссылки к ним в нотации, использующей формы Бэкуса — Наура:

 ::= "0" | "1" | … | "9"
 ::= "a" | "b" | … | "z" |  "а" | "б" | … | "я"  "a" | "ё" | "ә" | "і" | "ң" | "ғ" | "ү" | "ұ" | "қ" | "ө" | "һ" | "і"  | "ї"  | "є"  | "ґ" 
 ::= "☺" | "☻" | … | "a" | "b" | … | "ç" | …
<.> ::=  
 ::=  {  } 
 ::= { <.> } |  
 ::=  {  |  }
 ::= 
 ::= "\b" | "\B" | "\d" | "\s" | … | "\W" 
 ::=  |   
 ::= "◄"  {  } "►"
 ::= "▼"
 ::= "▲"
 ::= "{"  |  "}"
 ::=  {  } 
 ::= "¶"  "¶" 
 ::= "☼"
 ::= "◙"
 ::= "{"  |  "}"
 ::=  "accessibility" | … |  "wlwmanifest" 
 ::= "§"  {  } "§"
 ::=  "," | ";" | "♣"
 ::= "‼"   | "-" | "_" {  | "-" | "_" |  } "‼" 
 ::=  {   } "="  {  |  |  |  }  }  }

Тут я немного по-кокетничал, какой я умный. А для нормальных людей объясню все на примерах.

Например, мы хотим, чтобы на сайта слова «Joomla! 1.5», «Joomla! 3.0», «Joomla! 2.5» и «Система управления контентом Joomla!» были со ссылкой на страницу, описывающую CMS Joomla!, при наведении на неё появлялась подсказка с текстом «Дистрибутив СМС Joomla!, последняя актуальная версия 3.9», и таких ссылок на странице было не более 4-х, по ссылкам не уходили бы ТИЦ и PR, и ссылка открывались бы в новом окне и оформлялась как кнопка в стиле Bootstrap'а. Если не обращать внимание на глобальные параметры плагина, то формируем для этого строку следующего вида в поле «Ссылки»:

Joomla! ... , Система управления контентом Joomla! = https://downloads.joomla.org/ru/ {4} {☼} §nofollow§ ◄\d\.► ‼ btn btn-info‼ ¶Дистрибутив СМС Joomla!, последняя актуальная версия 3.9¶ 

По умолчанию в качестве допустимых символов в суффиксах шаблонов установлены буквы русского, английского, украинского и казахского (только буквы кириллицы) языков. Обратите внимание, что пробелы внутри шаблона учитываются, а после суффиксов шаблонов — "." или "*" , до разделителя или знака "=" игнорируются. При этом нет никаких ограничений на набор символов, которые могут быть в постоянной части шаблона. В указанном выше примере это и восклицательный знак, и пробел. А вот для суффиксов шаблона мной указан в качестве допустимых точка, экранированная обратной косой чертой, и специальный метасимвол — "\d" , обозначающий любую цифру. Кроме того, обратите внимание, что индивидуальный css-класс — btn, указан с пробелом перед ним. Дело в том, что если в общих параметрах определено поле «CSS-класс для ссылок», то в формируемых плагином ссылках он учитывается как класс, а индивидуально определенные в шаблоне css-классы рассматриваются как суффиксы. Что бы этого избежать и нужно начинать начинать описание индивидуальных css-классов ссылок с пробела.

Если вам нужно, чтобы плагин не вставлял ссылки в определенные блоки страницы, то их следует окружить тегом: <!--crossLinks--><!--/crossLinks-->. Если вы воспользуетесь средством для просмотра содержимого веб-страницы используемого вами браузера, а как я понимаю все они открывают соответствующую закладку по F12 , то вы увидите, что от этой точки до этой в тексте статьи работа плагина исключена.

Важное замечание! Для совместимости с плагином SeoLinks оставлены его теги блокирования замены. В тегах <!--crossLinks--><!--/crossLinks--> после ключевого слова "crossLinks" можно писать все-что угодно, плагин проигнорирует любые символы до закрывающей скобки "-->" .

В случае, если в слове нужно использовать точку "." или звездочку "*", то в шаблоне перед ними нужно поставить обратную косую черту ( "\" ). Например, для правильного формирования шаблона к выражению «1 000 000 лет до н. э.», вам нужно его записать так:

1 000 000 лет до н\. э\. = https://ru.wikipedia.org/wiki/Миллион_лет_до_нашей_эры

В поле «Пропустить страницы» перечисляется список страниц, к которым плагин не применяется. В случае указания нескольких исключаемых страниц их необходимо разделять переходом на новую строку. Кроме указания полного адреса, в этом поле можно указывать и регулярные выражения, по которым исключаются страницы. Регулярное выражение должно начинаться и заканчиваться знаком "~" (тильда), после которой можно вставить модификаторы шаблонов, используемых в регулярных выражениях php. Например, мы хотим исключить из обработки следующие страницы:

  • страницу c абсолютным адресом «http:\\мой_домен.kz/about.html»,
  • все страницы, в которых часть адреса содержит «joomla-2.5», причем написанные в любом регистре,
  • страницы, где в url встречается слово "Ilya", написанное с заглавной буквы.

Тогда для этого нам в поле «Пропустить страницы» нужно написать следующие строки:

/about.html
~joomla-2.5~i
~Ilya~

Важное замечание! При разборе содержимого «Пропустить страницы» используются функции проверки регулярных выражений, следовательно можно написать любое корректное регулярное выражение, с помощью которого будет фильтроваться адрес текущей страницы. При этом анализируется только путь и параметры текущей страницы.

Устанавливается плагин стандартным способом в административной панели через «Менеджер расширений». Если у вас ранее был установлен плагин SeoLinks, то его не нужно удалять, плагин CrossLinks найдет его, извлечет сделанные в нем настройки и уже определенные шаблоны, сохранив их у себя и удалит его. Вам останется только дополнительно отредактировать шаблоны, если вы захотите добавить индивидуальности к ссылкам.

Теги:  
1 1 1 1 1 1 1 1 1 1 Рейтинг 5.00 [1 Голос]

Добавить комментарий


Защитный код
Обновить