Собираем сведения о странице из bitrix
Запись от 28.05.2017
Понадобилось собрать сведения о произвольной странице на битриксе — параметры мета-тегов, заголовок и, собственно, сам контент.
Сведения о странице забираются просто:
В данном случает $pageContent содержит текстовое представление файла, как из file_get_contents(); а в $pageContentParsed находится массив с информацией о файле:
Далее нужно забрать данные о разделе, которые задаются рекурсивно файлами .section.php с помощью:
Остается только объединить эти два массива, если требуется, конечно.
Сделать это можно, например, так:
Сведения о странице забираются просто:
$pagePath = '/my-page/index.php';
$pageFilePath = $_SERVER['DOCUMENT_ROOT'] . $pagePath;
$pageContent = $APPLICATION->GetFileContent($pageContent);
$pageContentParsed = ParseFileContent($pageContent);
В данном случает $pageContent содержит текстовое представление файла, как из file_get_contents(); а в $pageContentParsed находится массив с информацией о файле:
Array
(
[PROLOG] => <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");...
[TITLE] => Заголовок именно этой страницы
[PROPERTIES] => Array()
[CONTENT] => some html code here
[EPILOG] => <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
)
Далее нужно забрать данные о разделе, которые задаются рекурсивно файлами .section.php с помощью:
$sectionProperyList = $APPLICATION->GetDirPropertyList($pagePath);
/* output:
Array
(
[DESCRIPTION] => Описание раздела
[KEYWORDS] => ключевые, слова
[TITLE] => Заголовок раздела
)
*/
Остается только объединить эти два массива, если требуется, конечно.
Сделать это можно, например, так:
$pageContentParsed['PROPERTIES'] = array_replace($sectionProperyList, $pageContentParsed['PROPERTIES']);