Вопросы по меню

#
Вопросы по меню
Добрый день!
Сильно не пинайте, поиск по форуму дал некоторое понимание, но вот этого достичь не удалось:

1. Есть левое меню и верхнее меню. В верхнем - основные разделы, в левом - подразделы. Сейчас при заходе в верхний пунт в левом меню показываются его подразделы. Соответственно, на страницах, у которых нет подразделов - висит пустой блок для меню. Как можно сделать, чтобы на таких страницах вместо пустоты висело свое меню или, к примеру, баннер?

Код вызова левого меню:
$Structure = new Structure();

    /* Получаем данные о текущем узле */
    $structure_row = $Structure->GetStructureItem(CURRENT_STRUCTURE_ID);
    $structure_parent_id = $structure_row['structure_parent_id'];
    $param = array();

    /* В качестве родительского узла указываем текущий */
    $param['parent_id'] = CURRENT_STRUCTURE_ID;

    /* В цикле передвигаем вверх, начиная от текущего элемента, до получения элемента, у которого родитель - корень */
    while ($structure_parent_id != 0)
    {
       $structure_row = $Structure->GetStructureItem($structure_parent_id);
       $structure_parent_id = $structure_row['structure_parent_id'];
       $param['parent_id'] = $structure_row['structure_id'];
    }

    $Structure->ShowStructure(false,'ЛевоеМеню', array('parent_id' => $param['parent_id']));


2. Как сделать, чтобы при нахождении в подпункте (левом меню) в верхнем меню пункт-родитель был активен? Понимаю, что надо из шаблона передать параметр в вызов верхнего меню, и там сделать проверку - но не понимаю, как.

Спасибо!
alikm
#
Re: Вопросы по меню
Так, второй вопрос почти решил!
Теперь при заходе в подменю (слева) в верхнем меню родительский пункт подсвечивается.
Единственное только, если заходишь в подраздел подраздела, верхнее выделение пропадает.

UPD. Решено и это!
P. S. Первый вопрос по-прежнему актуален!
alikm
#
Re: Вопросы по меню
alikm писал(а):
Как можно сделать, чтобы на таких страницах вместо пустоты висело свое меню или, к примеру, баннер?


Делаете проверку в xsl шаблоне этого меню на наличие узлов в структуре, например:


<xsl:if test="count(structure[show=1]) &gt; 0">
<ul>
    <xsl:apply-templates select="structure[show=1]" />
</ul>
</xsl:if>



Если нужно что-то выводить когда нет узлов то тогда например:


<xsl:choose>
  <xsl:when test="count(structure[show=1]) &gt; 0">
    <ul>
      <xsl:apply-templates select="structure[show=1]" />
    </ul>
  </xsl:when>
  <xsl:otherwise> другая логика
  </xsl:otherwise>
</xsl:choose>
Cоздание сайтов на базе HostCMS: верстка и интеграция макетов, настройка, обновление системы, консультации.
Авторизация