Установка модуля

Для установки модуля воспользуйтесь инструкцией

Назначение модуля

Модуль предназначен для гибкого управления мета тегами для СЕО на сайте. Данное решение ориентированно на владельцев сайта при небольшой помощи программиста (действия которого заключаются в настройке ключей на необходимых типах страниц), т.к гибкое управление подразумевает задание необходимой информации на странице, с помощью API модуля это делается очень легко. 

Модуль поддерживает:
  • маски по ключам;
  • таргетинг (где задействовать механизм и где нет);
  • стандартное API битрикс для управления свойствами страницы (в настройках модуля можно указать любые соответствия с текущими свойствами страницы;
  • события перед и после установки мета данных;
  • информативную отладочную информацию, которая не даст вам запутаться где и как были установлены те или иные теги.

Настройка модуля

Опции модуля


После установки модуля, он готов к эксплуатации, никаких дополнительных настроек устанавливать не нужно. Чтобы изменить основные настройки модуля необходимо перейти на страницу в административной части: Настройки->Настройки продукта->Настройки модулей->SEO инструменты: Управление метатегами PRO

Настройки модуля

Настройки модуля:
  • Выводить отладочную информацию (вывод  информации в расширенном или в сжатом режиме в публичной части сайта). Работает при включенном режиме отладки битрикс.
Расширенный режим:
debug_mode_on.jpg

Сжатый режим:
debug_mode_off.jpg
  • Типы свойств страницы. Соответствуют типам свойств страницы в системе 1С БУС. В этих свойствах указываются коды типов страниц битрикс, которые отвечают за содержание того или иного мета тега. Просмотреть эти коды свойств можно перейдя на страницу административного раздела Настройки->Настройки продукта->Настройки модулей->Управление структурой. Если вы хотите, чтобы заголовок страницы на вашем сайте управлялся более гибко (т.е отличался от title), то необходимо создать новый тип страницы в модуле Управление структурой и его код разместить в настройках модуля SEO инструменты: Управление мета тэгами PRO и установить соответствующий код в поле Свойство страницы используемое для h1
Примечание: Заголовок окна браузера устанавливается при помощи метода CMain::SetTitle(), поэтому если вы используете метод CMain::ShowTitle() ознакомтесь со спецификой работы работы этих методов.

Информация, выводимая администратору:

Текущие мета тэги - это текущее значение мета тэгов (в независимости от того, каким способом они были установлены через API Битрикс или через модуль SEO инструменты: Управление мета тэгами PRO).

Мета тэги, установленные модулем "SEO инструменты: Управление мета тэгами PRO" - тэги, установленные данным модулем, при чем если установлена опция модуля Вывод отладочной информации то для каждого установленного тэга, выводится маска, по которой он был установлен. Эта маска задается в элементе инфоблока "Правила (для тэгов)" в соответствующем свойстве для конкртноего мета тэга. После вывода всех установленных тэгов выводится ссылка на элемент инфоблока "Правила (для тэгов)", которое было применено, что дает простоту использования модуля и возможность быстрого доступа к необходимой информации.

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

Настройка компонента

Вместе с установкой модуля устанавливается компонент вывода информации об установленных мета тегах (kuznica:metatags). 

Эксплуатация модуля

После установкинастройки и изучения принципов работы модуля можно приступать к его непосредственному использованию:
  1. Установить ключи на странице. В любом месте на странице необходимо установить ключи, которые будут использоваться (!Важно для корректной работы модуля должен быть установлен хотя бы один ключ на странице). Установить ключи можно либо в компоненте, либо на странице, либо в любом другом месте. Для этого существуют методы, описанные в API модуля
  2. Создать правило установки тегов для конкретного типа страницы. Создать элемент инфоблока "Правила (для тегов)":
Element_1.jpg
Element_2.jpg
Поля элемента инфоблока "Правила (для тэгов)":
  • Название. Носит информативный характер, не влияет на работу компонента.
  • Где НЕ показывать. Страницы, на которых это правило не применяется (таргетинг).
  • Где показывать. Страницы на которых это правило применяется (таргетинг).
  • Маска для заголовка (h1). Текст с учетом вставки ключей для заголовка h1 страницы.
  • Маска для заголовка браузера (title). Текст с учетом вставки ключей для заголовка браузера страницы.
  • Маска для ключевых слов (keywords). Текст с учетом вставки ключей для ключевых слов страницы.
  • Маска для описания(description). Текст с учетом вставки ключей для описания страницы.
Примечание: Ключи устанавливаются в формате #key# - где key - это строка.
Примечание: Для того, чтобы правило попало в выборку необходимо установить как минимум один ключ.
Примечание: Список всех установленных ключей отображается в поле Все ключи(служебное).
Примечание: Если поля Где показывать и Где НЕ показывать оставить пустыми, то правило будет применятся ко всем страницам сайта, с учетом того что установлен как минимум один ключ.
Примечание: О приоритетах выборки предпочтительного правила для установки мета тэгов на странице необходимо ознакомится с принципами работы модуля.

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

debug_mode_on.jpg

Принципы работы модуля

Правила использования модуля:

Выборка предпочтительного правила для установки мета тэгов страницы (в порядке убывания приоритета):

  1. ВСЕ ключи заданные в свойствах элемента инфоблока "Правила (для тэгов)" установлены на странице. То есть все ключи в свойстве элемента Все ключи (служебное) заданы (API модуля).
  2. Таргетинг (поля инфоблока Где показывать и Где НЕ показывать).
  3. В случае если в выборку под выполненные выше условия попадают больше двух элементов, выбирается тот, который имеет меньшую сортировку (поле SORT)
Примечание: Если необходима установка разного набора мета тэгов на одну и ту же страницу (причина: многодоменность, региональность и пр.) необходимо объявить глобальную переменную на странице, добавить в нее все необходимые данные для занесения в ключ кэша и добавить имя глобальной переменной в параметр компонента Переменная, для добавления в ключ кэша.

API модуля

API для работы с модулем

Классы

CMegaMetaKeys

CMegaMetaKeys - класс для работы с ключами модуля

setKey

bool CMegaMetaKeys::setKey(
   string key,
   mixed keyVal,
   mixed whereSet
 );
Возвращает true, если добавление ключа произошло успешно


Параметры функции

ПараметрОписание
key Ключ. Может быть только строчного типа
keyVal Значение ключа. Может быть строчного или числового типа
whereSet Где установлен. Может быть строчного типа или тип ССomponentObject

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

if(CModule::IncludeModule("alexkova.megametatags")){
   CMegaMetaKeys::setKey("SECTION_NAME","Ламинат","Установлено на ".__FILE__);
}

Если установка ключа происходит в компоненте, то в качестве третьего параметра можно передать переменную $this, указывающую на объект компонента битрикс, в таком случае модуль при выводе информации сам распознает в каком месте сайта была вызвана установка ключей:
if(CModule::IncludeModule("alexkova.megametatags")){
   CMegaMetaKeys::setKey("SECTION_NAME","Ламинат","$this);
}

setKeys

bool CMegaMetaKeys::setKeys(
   array arKeys,
 );
Возвращает true, если добавление ключей произошло успешно


Параметры функции

ПараметрОписание
arKeys Массив вида:
Array(
Array("KEY"=>key,"VALUE"=>value,"WHERE_SET"=>whereSet)
[, Array("KEY"=>key,"VALUE"=>value,"WHERE_SET"=>whereSet)][, ...]
)
,где:

key - идентификатор ключа (строчный тип)
value - значение ключа (строчный, числовой тип)
whereSet - местоположение установки ключа (строчный тип, объект типа CComponentObject)

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

if(CModule::IncludeModule("alexkova.megametatags")){
   $arKeys = array();
   $arKeys[] = array("KEY"=>"SECTION_NAME","VALUE"=>"Ламинат","WHERE_SET"=>"Установлено на ".__FILE__);
   $arKeys[] = array("KEY"=>"ELEMENT_NAME","VALUE"=>"Europe Line Evol. Дуб степной 31 AC3","WHERE_SET"=>"Установлено на ".__FILE__);
   CMegaMetaKeys::setKeys($arKeys);
}

Если установка ключа происходит в компоненте, то в качестве третьего параметра в массиве можно передать переменную $this, указывающую на объект компонента битрикс, в таком случае модуль при выводе информации сам распознает в каком месте сайта была вызвана установка ключей:
if(CModule::IncludeModule("alexkova.megametatags")){
   $arKeys[] = array("KEY"=>"SECTION_NAME","VALUE"=>"Ламинат","WHERE_SET"=>$this);
   $arKeys[] = array("KEY"=>"ELEMENT_NAME","VALUE"=>"Europe Line Evol. Дуб степной 31 AC3","WHERE_SET"=>$this);
   CMegaMetaKeys::setKeys($arKeys);
}

getKey

array CMegaMetaKeys::getKey(
   string key,
 );
Возвращает массив ключа вида Array("KEY"=>key,"VALUE"=>value,"WHERE_SET"=>whereSet) если добавление ключа произошло успешно, иначе возвращается false.


Параметры функции

ПараметрОписание
key Ключ. Может быть только строчного типа

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

if(CModule::IncludeModule("alexkova.megametatags")){
   $arKey = CMegaMetaKeys::getKey("SECTION_NAME");
   echo "<pre>"; print_r($arKey); echo "</pre>";
}

getKeys

array CMegaMetaKeys::getKeys(
   array arKeys,
 );
Возвращает массив ключей вида Array(Array("KEY"=>key,"VALUE"=>value,"WHERE_SET"=>whereSet))


Параметры функции

ПараметрОписание
arKeys Массив вида: Array(key1[,key2][,...]);
key - идентификатор ключа (строчный тип)

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

if(CModule::IncludeModule("alexkova.megametatags")){
   $arKeys = CMegaMetaKeys::getKeys(array("SECTION_NAME","ELEMENT_NAME"));
   echo "<pre>"; print_r($arKeys); echo "</pre>";
}
 

getAllKeys

array CMegaMetaKeys::getAllKeys();
Возвращает массив установленных на сайте ключей вида Array([Array("KEY"=>key1,"VALUE"=>value1,"WHERE_SET"=>whereSet1),][Array("KEY"=>key2,"VALUE"=>value2,"WHERE_SET"=>whereSet2)][,...])

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

if(CModule::IncludeModule("alexkova.megametatags")){
   $arKeys = CMegaMetaKeys::getAllKeys();
   echo "<pre>"; print_r($arKeys ); echo "</pre>";
}

delAllKeys

bool CMegaMetaKeys::detAllKeys();
Возвращает true, в случае успешного удаления.

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

if(CModule::IncludeModule("alexkova.megametatags")){
   CMegaMetaKeys::delAllKeys();
}

delKey

bool CMegaMetaKeys::delKey(
   string key,
 );
Возвращает true, если удаление ключа произошло успешно

Параметры функции

ПараметрОписание
key Ключ. Может быть только строчного типа

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

if(CModule::IncludeModule("alexkova.megametatags")){
   CMegaMetaKeys::delKey("SECTION_NAME");
}

delKeys

bool CMegaMetaKeys::delKeys(
   array arKeys,
 );
Возвращает true в случае успешного удаления


Параметры функции

ПараметрОписание
arKeys Массив вида: Array(key1[,key2][,...]);
key - идентификатор ключа (строчный тип)

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

if(CModule::IncludeModule("alexkova.megametatags")){
   CMegaMetaKeys::delKeys(array("SECTION_NAME","ELEMENT_NAME"));
}
 

События

OnBeforeSetTags

bool функция-обработчик(
   array &arData
);
Событие вызывается в методе установки мета тегов до непосредственной установки тегов.

Параметры функции

ПараметрОписание
arData Массив полей, содержащий данные, которыми оперирует модуль для установки мета тэгов на странице

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

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("alexkova.megametatags", "OnBeforeSetTags", Array("MyClass", "OnBeforeSetTagsHandler"));
class MyClass { // создаем обработчик события "OnBeforeSetTags" function OnBeforeSetTagsHandler(&$arFields) { if (CSite::inDir("/index.php")){ $arFields["TAGS"]["H1"]["VALUE"] = "Заголовок главной страницы"; } } } ?>

OnAfterSetTags

bool функция-обработчик(
   array &arData
);
Событие вызывается в методе установки мета тегов после непосредственной установки тегов.

Параметры функции

ПараметрОписание
arData Массив полей, содержащий данные, которыми оперирует модуль для установки мета тэгов на странице

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

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("alexkova.megametatags", "OnAfterSetTags", Array("MyClass", "OnAfterSetTagsHandler"));
class MyClass { // создаем обработчик события "OnAfterSetTags" function OnAfterSetTagsHandler(&$arFields) { global $APPLICATION; $arAddNavPageNumber = array(//сюда можно добавить раздел сайта, в котором нужно добавлять постраничку к метатэгам description, title(точное совпадение директории) "/otzyvy/", "/catalog/list/", "/news/", "/ads/", "/blog/", "/company/", "/faq/list/" ); /*Добавление страницы к тегам*/ foreach ($arAddNavPageNumber as $value) { if(CSite::InDir($value)){ $addPageNumber = true; break; } } $arUriParams = explode('?',$_SERVER['REQUEST_URI']); if ($arUriParams[1]){ $arUriParams = explode('&',$arUriParams[1]); foreach($arUriParams as $param){ if (strpos($param,'PAGEN_') !== false){ $arPageNumber = explode('=',$param); $pageNumber = $arPageNumber[1]; break; } } } if ($addPageNumber && $pageNumber){ $title = $APPLICATION->GetTitle(); $desc = $APPLICATION->GetPageProperty('description'); $APPLICATION->SetTitle($title." Страница ".$pageNumber); $APPLICATION->SetPageProperty('description',$desc." Страница ".$pageNumber); } /**/ } } ?>

Массив полей

Array(
   "TAGS" => array( //Массив данных тэгов
      "H1"=>array( //Массив данных тэга h1
         "VALUE" = "Значение", //Устанавливаемое значение тэга h1
         "MASK" = "Маска" //Маска для формирования значения тэга h1
      ),
      "TITLE"=>array( //Массив данных тэга title
         "VALUE" = "Значение", //Устанавливаемое значение тэга title
         "MASK" = "Маска" //Маска для формирования значения тэга title
      ),
      "KEYWORDS"=>array( //Массив данных тэга keywords
         "VALUE" = "Значение", //Устанавливаемое значение тэга keywords
         "MASK" = "Маска" //Маска для формирования значения тэга keywords
      ),
      "DESCRIPTION"=>array( //Массив данных тэга description
         "VALUE" = "Значение", //Устанавливаемое значение тэга description
         "MASK" = "Маска" //Маска для формирования значения тэга description
      ),
      "WHERE_SET" = > array( //Данные об установке ключей
         "<КОД_КЛЮЧА>" => "<ЗНАЧЕНИЕ или МАССИВ значений>",
         ["<КОД_КЛЮЧА>" => "<ЗНАЧЕНИЕ или МАССИВ значений>",]
         [...]
      ),
      "KEYS" => array(
         "<КОД_КЛЮЧА>" => "<ЗНАЧЕНИЕ_КЛЮЧА>",
         ["<КОД_КЛЮЧА>" => "<ЗНАЧЕНИЕ_КЛЮЧА>",]
         [...]
      )
   ),
);

Удаление модуля

Удаление модуля производится на странице административной части Marketplace -> Установленные решения. В списке доступных решений найти решение SEO инструменты: Управление мета тэгами PRO

del_module.jpg

После нажатия на пункт меню Удалить пользователю будет предложено удалить все таблицы модуля (в данном случае тип инфоблока СЕО тэги)

del_tables.jpg

Модуль удален.

Кастомизация

Кастомизация шаблона компонента вывода информации об установленных тэгах:

Производится в соответствии со всеми стандартами 1С Битрикс "Управление сайтом"


Компоненты

Вывод информации об установленных мета тэгах

Настройка компонента

Вместе с установкой модуля устанавливается компонент вывода информации об установленных мета тегах (kuznica:metatags).  Настройки компонента:

Без-имени-2.jpg

  • Шаблон компонента. Используется типовой шаблон модуля SEO инструменты: Управление мета тэгами PRO.
  • Тип кэширования, Время кэширования. Типовые настройки компонентов 1С Битрикс (2.0). В кэш попадают все запросы к БД, поэтому рекомендуется использовать кэширование, что увеличит скорость работы компонента, сделав незаметным его потребление ресурсов.
  • Переменная, для добавления в ключ кэша, позволит создавать для одной и той же страницы, разный кэш. Например если у вас на сайте существует региональность, достаточно объявить переменную глобальной и занести в нее необходимые значения и передать имя переменной в параметр Переменная, для добавления в ключ кэша.
Примечание: Данный компонент устанавливается автоматически и нет необходимости размещать его на сайте в ручную. Он подключается в конце страницы. 
    Примечание: Если модуль SEO инструменты: Управление мета тэгами был установлен, но для текущей страницы сайта не было выбрано ни одного правила компонент выводит мета тэги, которые были установлены на этой странице через типовой API Битрикс.

    Автоматическая установка ключей

    Вместе с установкой модуля устанавливается компонент автоматической установки ключей для инфоблока (kuznica:metatags.keysautoset). Компонент предназначен для автоматической установки ключей в зависимости от свойств элемента/раздела(ов)  инфоблока. Располагать компонент можно на любой странице сайта или в шаблоне сайта.

    Настройки компонента:

    1.jpg
    2.jpg
    • Шаблон компонента. Используется типовой компонента.
    • Тип кэширования, Время кэширования. Типовые настройки компонентов 1С Битрикс (2.0). В кэш попадают все запросы к БД, поэтому рекомендуется использовать кэширование, что увеличит скорость работы компонента, сделав незаметным его потребление ресурсов.
    • Режим работы компонента. Компонент может работать в 3 режимах. Режим "Авто" - компонент пытается автоматически определить входящие данные. Режим "Комплексный компонент" - компонент берет входящие данные из комплексного компонента. Режим "Переменные HTTP запроса" - компонент берет исходные данные из параметров.
    • Переменные HTTP запроса. Список переменных необходимых для режима работы "Переменные HTTP запроса".
    • Комплексный компонент. Параметры необходимые для определения комплексного компонента для получения входящих данных. Необходимы для режима работы "Комплексный компонент"
    Примечание: Чтобы узнать какие ключи установлены на странице необходимо перейти в режим правки.