Вы здесь

SEO-модуль
Модуль "SeoDolphin: фильтры + склонения слов"
Описание
Модуль содержит дополнительные функции-фильтры для использования в шаблонах настройки SEO-свойств инфоблоков. Дополнительные функции-фильтры модуля имеют аналогичный вид встроенным функциям-фильтрам в CMS Bitrix. Модуль позволяет массово изменять метатеги на сайте с возможностью использовать свойств карточек товара, а также поддерживает возможность автоматического склонения слов.
Данный модуль позволит существенно сократить время на оптимизацию сайта, а также формировать уникальные метатеги по шаблону.
Доступны следующие функции-фильтры:
- mmit_morphy — функция склонения слов
- mmit_ifempty — функция проверки параметра на пустое значение. Если пусто, то вернуть одно значение, иначе - другое.
- mmit_replace — функция регистрозависимой замены строки вхождения
- mmit_ireplace — функция регистронезависой замены строки вхождения
- mmit_substr — функция обрезки текста
- mmit_strip — функция удаления html-тегов
- mmit_ucfirst — функция преобразования первой буквы в заглавную
Внимание! Функция склонения позволяет склонять только слова, словосочетания и более сложный структуры склонять она не умеет. Также могут склоняться неправильно редкоиспользуемы слова, слова, склоняемые не по общепринятым правилам.
Примеры использования
- Создание мета-свойства description для карточки новостной ленты на основе заполненного свойства описания новости с html-тегами.
Данный способ подойдёт для SEO-оптимизации раздела новостей «малой кровью», когда новостная лента имеет уже довольно большой объём и необходимо изменить массово метатеги по шаблону.
Для применения данного подхода откроем настройки инфоблока новостной ленты, вкладку SEO, пункт «Настройки для элементов», поле «Шаблон META DESCRIPTION» и укажем следующую формулу:
{ =mmit_substr { =mmit_strip { =this.DetailText}} "0" "250"}...
После установки данной формулы в карточках новостей будет установлено в «Meta description» 250 первых символов детального описания новостей с удалёнными html-тегами и добавленным в конце многоточием.
- Создание уникального описания «Meta description» карточки товара каталога на основе свойств товара с применением склонений, а также с возможностью учёта незаполненных свойств.
Например, имеется раздел каталога «Машины». У каждого товара (под товаром следует понимать карточки товара, а не торговые предложения!) данного раздела имеются свойства:
- цвет (черный, красный, белый и т. д.);
- марка (BMW, Toyota...)
- страна производитель (Германия, Япония, Россия, Китай ...)
- мощность двигателя (может быть не заполнено);
Для карточек товаров необходимо составить «Meta description» следующего типа:
Новая высокотехнологичная {ЦВЕТ} машина марки {МАРКА}, произведённая по всем современным стандартам в {СТРАНА ПРОИЗВОДИТЕЛЬ}. Имеет надёжный двигатель мощностью {МОЩНОСТЬ}.
Если какое-либо свойство не заполнено, например, «мощность двигателя», то вывести «Meta description» такого вида:
Новая высокотехнологичная {ЦВЕТ} машина марки {МАРКА}, произведённая по всем современным стандартам в {СТРАНА ПРОИЗВОДИТЕЛЬ}. Имеет надёжный и мощный двигатель.
Необходимо в настройки раздела инфоблока «Машины» во вкладке SEO пункта «Настройки для элементов» ввести следующую формулу:
Новая высокотехнологичная {=mmit_morphy {=this.property.COLOR} "П" "ЖР ЕД"} машина марки {=this.property.BRAND},
произведённая по всем современным стандартам в {=mmit_ucfirst {=mmit_morphy {=this.property.COUNTRY} "С" "ПР ЕД"}}.
Имеет надёжный {=mmit_ifempty {=this.property.POWER} "и мощный двигатель" {=concat "двигатель мощностью" {=this.property.POWER} " "}}.
Установка
После установки модуля в SEO-шаблонах можно использовать дополнительные функции-фильтры.
Документация
1.Функция mmit_morphy
Функция склонения слов. Результат возвращается в нижнем регистре.
Синтаксис:
{=mmit_morphy Word Type Grammems}
Параметры:
- Word — слово, которое будет склоняться
- Type — тип части речи (дескриптор). Если Type — пустая строка, то тип части речи игнорируется.
- Grammems — граммемы
Части речи
Дескриптор | Константа PHP | Пример | Описание |
C | PMY_RP_NOUN | мама | существительное |
П | PMY_RP_ADJ_FULL | красный | прилагательное |
КР_ПРИЛ | PMY_RP_ADJ_SHORT | красива | краткое прилагательное |
ИНФИНИТИВ | PMY_RP_INFINITIVE | идти | инфинитив |
Г | PMY_RP_VERB | идет | глагол в личной форме |
ДЕЕПРИЧАСТИЕ | PMY_RP_ADVERB_PARTICIPLE | идя | деепричастие |
ПРИЧАСТИЕ | PMY_RP_PARTICIPLE | идущий | причастие |
КР_ПРИЧАСТИЕ | PMY_RP_PARTICIPLE_SHORT | построена | краткое причастие |
ЧИСЛ | PMY_RP_NUMERAL | восемь | числительное (количественное) |
ЧИСЛ-П | PMY_RP_NUMERAL_P | восьмой | порядковое числительное |
МС | PMY_RP_PRONOUN | он | местоимение-существительное |
МС-ПРЕДК | PMY_RP_PRONOUN_PREDK | нечего | местоимение-предикатив |
МС-П | PMY_RP_PRONOUN_P | всякий | местоименное прилагательное |
Н | PMY_RP_ADV | круто | наречие |
ПРЕДК | PMY_RP_PREDK | интересно | предикатив |
ПРЕДЛ | PMY_RP_PREP | под | предлог |
СОЮЗ | PMY_RP_CONJ | и | союз |
МЕЖД | PMY_RP_INTERJ | ой | междометие |
ЧАСТ | PMY_RP_PARTICLE | же, бы | частица |
ВВОДН | PMY_RP_INP | конечно | вводное слово |
ФРАЗ | PMY_RP_PHRASE | бухты-барахты, зги | фразеологизм |
Граммемы
Граммема | Константа PHP | Описание |
Род | ||
мр | PMY_RG_MASCULINUM | мужской род |
жр | PMY_RG_FEMINUM | женский род |
ср | PMY_RG_NEUTRUM | средний род |
мр-жр | PMY_RG_MASC_FEM | общий род (сирота, пьяница) |
Число | ||
ед | PMY_RG_SINGULAR | единственное число |
мн | PMY_RG_PLURAL | множественное число |
Падеж | ||
им | PMY_RG_NOMINATIV | именительный |
рд | PMY_RG_GENITIV | родительный |
дт | PMY_RG_DATIV | дательный |
вн | PMY_RG_ACCUSATIV | винительный |
тв | PMY_RG_INSTRUMENTALIS | творительный |
пр | PMY_RG_LOCATIV | предложный |
зв | PMY_RG_VOCATIV | звательный (отче, боже) |
2 | PMY_RG_SECOND_CASE | второй родительный или второй предложный падежи |
Время | ||
нст | PMY_RG_PRESENT_TENSE | настоящее время |
буд | PMY_RG_FUTURE_TENSE | будущее время |
прш | PMY_RG_PAST_TENSE | прошедшее время |
Лицо | ||
1л | PMY_RG_FIRST_PERSON | первое лицо |
2л | PMY_RG_SECOND_PERSON | второе лицо |
3л | PMY_RG_THIRD_PERSON | третье лицо |
Одушевленность | ||
од | PMY_RG_ANIMATIVE | одушевленное |
но | PMY_RG_NON_ANIMATIVE | неодушевленное |
Вид | ||
св | PMY_RG_PERFECTIVE | совершенный вид |
нс | PMY_RG_NON_PERFECTIVE | несовершенный вид |
Переходность | ||
нп | PMY_RG_NON_TRANSITIVE | переходный |
пе | PMY_RG_TRANSITIVE | непереходный |
Залог | ||
дст | PMY_RG_ACTIVE_VOICE | действительный залог |
стр | PMY_RG_PASSIVE_VOICE | страдательный залог |
Другое | ||
0 | PMY_RG_INDECLINABLE | неизменяемое |
безл | PMY_RG_IMPERSONAL | безличный глагол |
пвл | PMY_RG_IMPERATIVE | повелительное наклонение (императив) |
притяж | PMY_RG_POSSESSIVE | притяжательное (не используется) |
прев | PMY_RG_SUPERLATIVE | превосходная степень (для прилагательных) |
сравн | PMY_RG_COMPARATIVE | сравнительная степень (для прилагательных) |
кач | PMY_RG_QUALITATIVE | качественное прилагательное |
дфст | PMY_RG_DE_FACTO_SING_TANTUM | ??? прилагательное (не используется) |
Семантические признаки | ||
имя | PMY_RG_NAME | имя (Иван, Михаил) |
фам | PMY_RG_SUR_NAME | фамилия (Иванов, Сидоров) |
отч | PMY_RG_PATRONYMIC | отчество (Иванович, Михайлович) |
лок | PMY_RG_TOPONYM | топоним (Москва, Лена, Эверест) |
аббр | PMY_RG_INITIALISM | аббревиатура (КПСС, РОНО) |
орг | PMY_RG_ORGANISATION | организация |
вопр | PMY_RG_INTERROGATIVE | вопросительное наречие |
указат | PMY_RG_DEMONSTRATIVE | указательное наречие |
жарг | PMY_RG_SLANG | жаргонизм |
разг | PMY_RG_COLLOQUIAL | разговорный |
арх | PMY_RG_ARCHAISM | архаизм |
опч | PMY_RG_MISPRINT | опечатка |
поэт | PMY_RG_POETRY | поэтическое |
проф | PMY_RG_PROFESSION | профессионализм |
полож | PMY_RG_POSITIVE | ??? (не используется) |
Пример = результат:
По дороге ехала {=mmit_morphy "красный" "П" "ЖР ЕД"} машина.
=
По дороге ехала красная машина.
Недорогие квартиры в {=mmit_morphy "город" "С" "ЕД ПР"}.
=
Недорогие квартиры в городе.
{=mmit_ucfirst {=mmit_morphy this.Name "С" "ЕД ДТ"}} подарили подарок.
=
Маше подарили подарок.
2.Функция mmit_ifempty
Синтаксис:
{=mmit_ifempty CheckParam Param1 Param2 }
Функция проверки параметра на пустое значеник. Если параметр CheckParam имеет пустое значение, то будет возвращён параметр Param1, иначе — Param2.
Параметры
- CheckParam — параетр проверки на пустрое значение
- Param1 — параметр, который будет возвращён при пустом значение параметра CheckParam
- Param2 — параметр, параметр который будет возвращён при непустом значение параметра CheckParam
3.Функция mmit_replace
Синтаксис:
{=mmit_replace Search Replace Subject }
Функция возвращает строку, в котором все вхождения Search в Subject заменены на Replace .
Параметры
- Search — искомое значение
- Replace — значение замены, будет использовано для замены искомых значений Search
- Subject — строка или массив, в котором производится поиск и замена
4.Функция mmit_ireplace
Регистронезависимый вариант функции mmit_replace
5.Функция mmit_ substr
Синтаксис:
{=mmit_ substr String Start Length }
Функция возвращает подстроку строки String, начинающейся с Start символа по счету и длиной Length символов.
Параметры
- String — входная строка
- Start — начальная позиция
Если start неотрицателен, возвращаемая подстрока начинается с позиции start от начала строки, считая от нуля. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.
Если start отрицательный, возвращаемая подстрока начинается с позиции, отстоящей на start символов от конца строки string.
Если string меньше start символов, будет возвращено пустое значение.
- Length — необязательный парааметр длина
Если length положительный, возвращаемая строка будет не длиннее length символов, начиная с параметра start (в зависимости от длины string).
Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если start отрицателен). Если при этом позиция начала подстроки, определяемая аргументом start, находится в отброшенной части строки или за ней, возвращается пустое значение.
Если указан параметр length и является 0 или является не числом, то будет возвращена пустая строка.
Если параметр length опущен, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром start и длящейся до конца строки.
6.Функция mmit_ strip
Синтаксис:
{=mmit_strip String [AllowableTags] }
Функция пытается возвратить строку, из которой удалены все NULL-байты, HTML- и PHP-теги.
Параметры
- String — входная строка
- AllowableTags — второй необязательный параметр может быть использован для указания тегов, которые не нужно удалять.
7.Функция mmit_ucfirst
Синтаксис:
{=mmit_ucfirst String }
Возвращает строку String, в которой первый символ переведен в верхний регистр, если этот символ является буквой.
Параметры
- String — входная строка
Дополнительная информация
Для склонения используется библиотека phpMorphy http://phpmorphy.sourceforge.net/.
Функции-фильтры перестают быть доступны по окончание пробного периода. Однако использовать класс \phpMorphy можно и по окончание пробного периода в своём программном коде. Для этого необходимо подключить модуль «mmit.seodolphin.filters».
Также для использования доступен созданный по умолчанию объект класса \phpMorphy для склонений через singleton-класс \MMIT\SeoDolphin\Filters\Morphy. Пример использования:
Результат:
ИРКУТСКЕ
Методы:
- string Morphy::getDictsPath() — возвращает путь до словарей
- string Morphy::getLang() — возвращает языковые настройки
- array Morphy::getDictsOptions — возвращает массив настроек