Здравствуйте.
Для генерации крошек использую следующий код:
<?php
// Вывод строки навигации
$InformationSystem = & singleton('InformationSystem');
// Определяем информацию об информационной системе, связанной с текущим узлом
if (!isset($InformationSystem_id)) {
$InformationSystem_id = $InformationSystem->GetInformationSystemByStructureId(CURRENT_STRUCTURE_ID);
}
$property = array();
$external_propertys = array();
// Если с узлом структуры связана ИС
if ($InformationSystem_id)
{
$result = $InformationSystem->GetInformationFromPath($InformationSystem_id, '', false);
// определяем id информационного элемента
if ($result['item'])
{
$item_id = $InformationSystem->GetIdInformationItem($result['item'], $result['group'], $InformationSystem_id);
}
else
{
$item_id = false;
}
if (is_array($result) && ($item_id != 0 || $result['group'] > 0))
{
// Передаем во внешние параметры ID элемента и группы
$external_propertys['item'] = $item_id;
$external_propertys['group'] = $result['group'];
}
$property['show_groups'] = true;
$property['show_items'] = true;
$property['xml_show_structure_property'] = false;
// Данные для хлебных крошек заполняем только для текущей ИС
$property['show_information_systems'][] = $InformationSystem_id;
}
$structure = & singleton('Structure');
$structure->ShowStructure(false, 'ХлебныеКрошки', $property, $external_propertys);
?>
Он пожирает более 64мб памяти, пришлось memory_limit поставить 128мб, иначе выдаётся ошибка:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 286240 bytes) in /..../shop-host/modules/Structure/Structure.class.php on line 1945
Кроме того страница с хлебными крошками генерица 5с, без них таже страница генерица за секунду.
ИС по которой идёт генерация состоит из 173 групп/подгрупп и около 15тыс элементов.
Размер XML для крошек около 5мб.
Можно ли как-то оптимизировать? Я так понимаю надо из xml отсечь лишнюю информацию?