Глоссарий

#
Глоссарий
Мне совершенно не нравится теперешний вид глоссария. Было бы удобнее сделать следующим образом.
Список элементов с группами, расположен по-алфавиту:
<h2>Название группы А</h2>
<ul>
<li><a>А</a> - описание</li>
<li><a>Б</a> - описание</li>
<li><a>В</a> - описание</li>
</ul>
<h2>Название группы Б</h2>
<ul>
<li><a>А</a> - описание</li>
<li><a>Б</a> - описание</li>
<li><a>В</a> - описание</li>
</ul>


Один элемент:
Все как есть, только дополнительно выводится список остальных элементов из его группы.

Прошу помочь в реализации, либо даже добавить в релиз системы. Думаю так будет куда удобнее, чем теперь. Спасибо.
http://www.aiventa.ru
Модератор
#
Re: Глоссарий
hell0men,
это обычный вывод элементов из подгруппы, очень много раз обсуждался. Посмотрите поиск и FAQ.
Спасибо за подсказку, в демо-сайте также сделаем.
#
Re: Глоссарий
Поиск не помог. Нужно изменять и xsl и динамическую страницу, насколько я понимаю? Вот если с первым я еще могу покопаться, то второе не нашел где и что.
http://www.aiventa.ru
#
Re: Глоссарий
hell0men, в коде типовой динамической страницы, используемой для глоссария, в метод ShowInformationSystem в качестве идентификатора текущей группы передайте значение false(это для того, чтобы в XML-е все элементы оказались). А сортировки по алфавиту можно средствами XSL организовать.
Модератор
#
Re: Глоссарий
1. Скопировать типовую дин. страницу, применить скопированную тип. дин. страницу к узлу структуры, внести в скопированную тип. дин. страницу следующие изменения:
а) добавить перед выделенным жирным следующий фрагмент:

if($GLOBALS['INFSYS_result']['group'] == 0)
{
$GLOBALS['INFSYS_result']['group'] = false;
}

$GLOBALS['LA_InformationSystem']->ShowInformationSystem(


2. Вносим изменения в XSL-шаблон "СписокЭлементовГлоссарий", изменения выделены жирным:
   <xsl:template match="group" mode="goups">
      <li>
         <xsl:if test="small_image!=''">
            <a href="{/document/blocks/url}{fullpath}" target="_blank">
               <img src="{small_image}"/>
         </a>&#xA0;</xsl:if>
         <a href="{/document/blocks/url}{fullpath}">
            <b>
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </b>
         </a>
         <xsl:variable name="group_id" select="@id" />
         <xsl:if test="count(/document/blocks/items/item[@group_id=$group_id]) > 0">
            <ul>
               <xsl:apply-templates select="/document/blocks/items/item[@group_id=$group_id]"/>
            </ul>
         </xsl:if>

      </li>
   </xsl:template>


заменяем
<xsl:template match="blocks/items/item">
      <td valign="top" style="padding-bottom: 10px;" width="33%">
      <li>
         <!-- Название -->
         <a href="{item_path}">
            <xsl:value-of disable-output-escaping="yes" select="item_name"/>
         </a>
         
         <!-- Изображение для информационного элемента (если есть) -->
         <!--
         <xsl:if test="item_small_image!=''">
            <a href="{item_path}" class="news_title"><img src="{item_small_image}" class="partner_img" alt="" style="margin: 3px 10px 10px 0px" align="left" /></a>
         </xsl:if>
         -->
         
         <!--
         <xsl:value-of disable-output-escaping="yes" select="item_description" />
         -->
      </td>
      
      <!-- Перевод строки после каждого 3-го элемента -->
      <xsl:if test="position() mod 3 = 0">
         <xsl:text disable-output-escaping="yes">
            &lt;/tr&gt;
            &lt;tr&gt;
         </xsl:text>
      </xsl:if>


      </li>
   </xsl:template>


3. Заменяем

      <table cellpadding="0" cellspacing="0" border="0" width="100%">
         <tr>

      <ul>
            <!-- Отображение записи информационной системы -->
            <xsl:apply-templates select="blocks/items/item[@group_id=$parent_group_id]"/>
      </ul>
         </tr>
      </table>


Похожий вопрос ранее уже обсуждался: http://www.hostcms.ru/forums/17/2260/
#
Re: Глоссарий
Большое спасибо!

Для вопросов - ответов нужно что-то подобное сделать. Как привычно: сначала идет список вопросов, разбирый по под-группам, а ниже ответы с анкорами <a>
http://www.aiventa.ru
Модератор
#
Re: Глоссарий
hell0men,
Пожалуйста. Для вопросов и ответов сделать аналогично очень просто.
Авторизация