Вывод подменю в отдельном месте макета сайта

#
Re: Вывод подменю в отдельном месте макета сайта
natalya писал(а):
/* Получаем данные о текущем узле */
$structure_row = $Structure->GerStructureItem(CURRENT_STRUCTURE_ID);
$structure_parent_id = $structure_row['structure_parent_id'];

if($structure_parent_id != 0)
{
$structure_row = $Structure->GerStructureItem($structure_parent_id);

print_r($structure_row['structure_menu_name']);
}
else
{
print_r($structure_row['structure_menu_name']);
}



Подскажите а как передать этот родитель в xml для обработки наравне с детьми (имя получить, путь) - в общем в меню детей добавить и родитель.

Я так понимаю надо пихнут в вызов метода меню подпунктов получаемый родитель, подскажите:


$Structure = new Structure();

   $structure_parent_id = CURRENT_STRUCTURE_ID;

   while ($structure_parent_id != 0)
   {
      $row_structure = $Structure->GetStructureItem($structure_parent_id);
      $structure_parent_id = $row_structure['structure_parent_id'];
   }
  
/* Получаем данные о текущем узле */
$structure_row = $Structure->GerStructureItem(CURRENT_STRUCTURE_ID);
$structure_parent_id = $structure_row['structure_parent_id'];

$structure_row = $Structure->GerStructureItem($structure_parent_id);

   $Structure->ShowStructure(false, 'Меню', array('parent_id' => $row_structure['structure_id'], 'show_groups' => false));
  
   ?>




Спасибо
ку
#
Re: Вывод подменю в отдельном месте макета сайта
Вроде разобрался, передал $structure_row через $external_propertys
ку
#
Re: Вывод подменю в отдельном месте макета сайта
Рано радовался. в xml cмог получить родитель только в корне
Подскажите как его получить когда и в детях находимся  

<?
   $Structure = new Structure();
   $structure_parent_id = CURRENT_STRUCTURE_ID;
   while ($structure_parent_id != 0)
   {
      $row_structure = $Structure->GetStructureItem($structure_parent_id);
      $structure_parent_id = $row_structure['structure_parent_id'];
   }
  
  
$structure_row = $Structure->GerStructureItem(CURRENT_STRUCTURE_ID);
$structure_parent_id = $structure_row['structure_parent_id'];

$external_propertys = array();
$external_propertys = $structure_row;
    
   $Structure->ShowStructure(false, 'ВверхнееМеню', array('parent_id' => $row_structure['structure_id'], 'show_groups' => false), $external_propertys);
   ?>
ку
Модератор
#
Re: Вывод подменю в отдельном месте макета сайта
namez,
если в корне получили, почему при нахождении в детях не получается? покажите код получения родителя в корне.
#
Re: Вывод подменю в отдельном месте макета сайта
Код выше - что смог то и привел на форуме.
В корне раздела в xml есть родитель а в детях в xml нет информации о родителе
ку
#
Re: Вывод подменю в отдельном месте макета сайта
И все же? Или подскажите хотябы как не выводить родителя когда нет детей, задача выводить структуру раздела тогда когда она есть, родителя добавили но он выводится теперь в каждом разделе чего не нужно делать.

natalya писал(а):
используйте:
/* Получаем данные о текущем узле */
$structure_row = $Structure->GerStructureItem(CURRENT_STRUCTURE_ID);
$structure_parent_id = $structure_row['structure_parent_id'];

if($structure_parent_id != 0)
{
$structure_row = $Structure->GerStructureItem($structure_parent_id);

print_r($structure_row['structure_menu_name']);
}
else
{
print_r($structure_row['structure_menu_name']);
}



Спасибо
ку
#
Re: Вывод подменю в отдельном месте макета сайта
Подскажите пожалуйста
ку
#
Re: Вывод подменю в отдельном месте макета сайта
Хорошая вещь, давно искал. А как сделать чтоб например не выводилось это меню для не зарегистрированных. Так как я вставил приведенный код в шаблон, который могут просматривать как зарегистрированные так и не зарегистрированные пользователи. Надо что это подменю видели только зарегистрированные.
#
Re: Вывод подменю в отдельном месте макета сайта
namez писал(а):
И все же? Или подскажите хотябы как не выводить родителя когда нет детей, задача выводить структуру раздела тогда когда она есть, родителя добавили но он выводится теперь в каждом разделе чего не нужно делать.

natalya писал(а):используйте:
/* Получаем данные о текущем узле */
$structure_row = $Structure->GerStructureItem(CURRENT_STRUCTURE_ID);
$structure_parent_id = $structure_row['structure_parent_id'];

if($structure_parent_id! = 0)
{
$structure_row = $Structure->GerStructureItem($structure_parent_id);

print_r($structure_row['structure_menu_name']);
}
else
{
print_r($structure_row['structure_menu_name']);
}


Спасибо


up. Подскажите пожалуйста все-таки эту маленькую деталь хотябы
ку
Модератор
#
Re: Вывод подменю в отдельном месте макета сайта
ffardz писал(а):
А как сделать чтоб например не выводилось это меню для не зарегистрированных. Так как я вставил приведенный код в шаблон, который могут просматривать как зарегистрированные так и не зарегистрированные пользователи. Надо что это подменю видели только зарегистрированные.

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