Как узнать из какого места bitrix устанавливает метатеги h1, description, keyword на страницу(например для случая если они переопределяются).

Была в практике ситуация, когда для модуля CMS Bitrix - каталог требовалось использовать в качестве метатега description часть описания DETAIL_TEXT страницы обрезанная до пробельного символа или знака препинания близкого к 200 символу. Для этого в result_modifier.php шаблона компонента был дописан PHP-код выполняющий эту операцию и устанавливающий мета-тег discription используя $APPLICATION->SetPageProperty("description",$newDescription); при этом в качестве description для страницы устанавливалось не обрезанное значение поля DETAIL_TEXT, а полное. Для того чтобы определить сколько раз и в каких местах вызывается установка значения используя метод SetPageProperty в файл ядра bitrix расположенному по адресу bitrix/modules/main/classes/general/main.php в начало указанного метода был дописан код из следующего листинга. В дописанном в метод коде присутствует условие сравнения IP-адреса пользователя запрашивающего страницу с явно указанным(а именно принадлежащим программисту осуществляющему поиск), чтобы информация отображалась только у конкретного пользователя и случайно зашедшие на сайт посетители её не видели, в этом же условии указывается что требуется отображать информацию только для устанавливаемого метатега description.

Таким образом удалось выяснить, что вызов метода SetPageProperty для установки метатега description выполняется 3 раза, причём вызов написанного под задачу кода в файле result_modifier.php был вторым, таким образом после его срабатывал ещё один вызов который переписывал занчение метатега description на полное содержание поля DETAIL_TEXT которое затем и выводилось в мета-тег description HTML-страницы. Так удалось выяснить что 3-ий вызов который переписывал требуемое значение осуществлялся в результате установленного значения в толе типа инфоблока с которым был связан рассматриваемый компонент, а именно на вкладке SEO в поле шаблон META-DESCRIPTION было указано что информацию необходимо копировать из поля DETAIL_TEXT. После того как значение поля шаблон META-DESCRIPTION было сохранено с пустым значением 3-ий вызов метода SetPageProperty для метатега description перестал осуществляться и значение метатега HTML-страницы приняло требуемый по задаче вид. После этого код файла bitrix/modules/main/classes/general/main.php был возвращён к исходному виду.

Комментарии

Если у Вас возникли вопросы, Вы можете задать их в форме ниже. В частности если Ваш вопрос по Bitrix и что то не получается - можно спросить. Ваш e-mail не публикуется, при этом я отвечу на него если будет что то по теме. Писать необходимо для людей - избегайте сленга, пишите орфографически правильно.

Имя:
E-mail:
Текст комментария:

Вы так же можете прочитать следующие статьи: