Вы здесь

SEO-модуль

Не делаем дешевые некачественные сайта. Разрабатываем лучшие сайты Иркутска во многих областях бизнеса.

Модуль "SeoDolphin: фильтры + склонения слов"

Описание

Модуль содержит дополнительные функции-фильтры для использования в шаблонах настройки SEO-свойств инфоблоков. Дополнительные функции-фильтры модуля имеют аналогичный вид встроенным функциям-фильтрам в CMS Bitrix. Модуль позволяет массово изменять метатеги на сайте с возможностью использовать свойств карточек товара, а также поддерживает возможность автоматического склонения слов.
Данный модуль позволит существенно сократить время на оптимизацию сайта, а также формировать уникальные метатеги по шаблону.
Доступны следующие функции-фильтры:

  • mmit_morphy — функция склонения слов
  • mmit_ifempty — функция проверки параметра на пустое значение. Если пусто, то вернуть одно значение, иначе - другое.
  • mmit_replace — функция регистрозависимой замены строки вхождения
  • mmit_ireplace — функция регистронезависой замены строки вхождения
  • mmit_substr — функция обрезки текста
  • mmit_strip — функция удаления html-тегов
  • mmit_ucfirst — функция преобразования первой буквы в заглавную

Внимание! Функция склонения позволяет склонять только слова, словосочетания и более сложный структуры склонять она не умеет. Также могут склоняться неправильно редкоиспользуемы слова, слова, склоняемые не по общепринятым правилам.

 

Примеры использования

  1. Создание мета-свойства description для карточки новостной ленты на основе заполненного свойства описания новости с html-тегами.

Данный способ подойдёт для SEO-оптимизации раздела новостей «малой кровью», когда новостная лента имеет уже довольно большой объём и необходимо изменить массово метатеги по шаблону.

Для применения данного подхода откроем настройки инфоблока новостной ленты, вкладку SEO, пункт «Настройки для элементов», поле «Шаблон META DESCRIPTION» и укажем следующую формулу:

{ =mmit_substr { =mmit_strip { =this.DetailText}} "0" "250"}...

После установки данной формулы в карточках новостей будет установлено в «Meta description» 250 первых символов детального описания новостей с удалёнными html-тегами и добавленным в конце многоточием.

  1. Создание уникального описания «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

прошедшее время

Лицо

PMY_RG_FIRST_PERSON

первое лицо

PMY_RG_SECOND_PERSON

второе лицо

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. Пример использования:

if(CModule::IncludeModule('mmit.seodolphin.filters')){ print_r(\MMIT\SeoDolphin\Filters\Morphy::getInstance()->castFormByGramInfo( mb_strtoupper('Иркутск'), 'С', array('ПР', 'ЕД'), true )[0]); }

 

Результат:

ИРКУТСКЕ

 

Методы:

  • string Morphy::getDictsPath() — возвращает путь до словарей
  • string Morphy::getLang() — возвращает языковые настройки
  • array Morphy::getDictsOptions — возвращает массив настроек