Вывод новостей/статей

#
Re: Вывод новостей/статей
вместо $InformationSystemIdArray = 25,5,27;
нужно использовать: $InformationSystemIdArray = array(25,5,27);
#
Re: Вывод новостей/статей
Господа, что-то копался-копался, но не нашел. Пытаюсь изменить отображение разделов инфосистемы.
В шаблоне "СписокЭлементовИнфосистемы" есть такой код
<ul class="news_group">
            <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
         </ul>

Не подскажете, где находится описание класса "news_group"?
Модератор
#
Re: Вывод новостей/статей
ironwayru,
Сейчас в CSS типовых макетов описания news_group нет. Вы можете добавить свое описание этого класса.
#
Re: Вывод новостей/статей
Спасибо. Сейчас решил сделать отображение групп так же, как и каталог интернет-магазина.
Для этого заменил в шаблоне "СписокЭлементовИнфосистемы" код
<ul class="news_group">
            <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/></ul>

на вот такой код
<table width="100%" border="0" cellpadding="3" cellspacing="0">
                  <tr>
                     <td valign="top">
            <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
                     </td>
                  </tr>
               </table>

Но, увы, ничего не изменилось. Не подскажете, где копать?
#
Re: Вывод новостей/статей
Вобщем, я как всегда забыл посмотреть шаблон чуть ниже, где и обнаружился шаблон, определяющий вывод элементов.
Все получилось сделать, вот только не совсем полностью.
В шаблоне "МагазинКаталогТоваров" есть такой код
<xsl:if test="position()= round(count(//group[@parent = $parent_id]) div 2)">
               <xsl:text disable-output-escaping="yes">
                  &lt;/td&gt;
                  &lt;td valign="top" width="50%"&gt;
               </xsl:text>
            </xsl:if>

Как я понял, именно этот код отвечает за то, что подгруппы каталога товаров выводятся в 2 столбца. Попробовал втиснуть этот же код в "СписокЭлементовИнфосистемы", но не помогает. Я его изменил только по части переменных следующим образом:
<xsl:if test="position()= round(count(.//group[@parent_id = $parent_group_id]) div 2)">
               <xsl:text disable-output-escaping="yes">
                  &lt;/td&gt;
                  &lt;td valign="top" width="50%"&gt;
               </xsl:text>
            </xsl:if>

Не подскажете, как сделать так, чтобы элементы отображались в 2 столбца?
#
Re: Вывод новостей/статей
После долгих часов попыток все получилось сделать!
Вдруг кому пригодится.
Нужно в этой части шаблона «СписокЭлементовИнфосистемы»
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->

добавить такую строчку:
<xsl:variable name="parent_id" select="@parent_id"/>

А сам код будет такой же, как я в предыдущем сообщении приводил, только переменные там также нужно переименовать:
<xsl:if test="position()= round(count(//group[@parent_id = $parent_id]) div 2)">


Заодно такой вопрос появился по синтаксису. Зачем ставится точка во многих местах такого типа
round(count(.//group[@parent_id = $parent_id]

При удалении точки ничего вообще не меняется. Но ведь зачем-то она нужна?
Модератор
#
Re: Вывод новостей/статей
ironwayru писал(а):
Зачем ставится точка во многих местах такого типа

Точка говорит выбирать подузлы
.//
только от текущего уровня и ниже. Просто
//
говорит обойти все дерево, что может быть намного дольше!
#
Re: Вывод новостей/статей
Спасибо за инфу!
Но что интересно - в данном конкретном случае, если поставить точку, то код перестает работать и вывод снова идет в одну колонку.
Модератор
#
Re: Вывод новостей/статей
ironwayru,
Пожалуйста. Так может быть у Вас по логике нужно обходит дерево групп с начала. Кстати, чтобы тоже только дерево групп, а не весь XML, можно указывать так:
/путь_до_первого_родительского_узла_группы//group[@parent_id = $parent_id]
#
Re: Вывод новостей/статей
HostCMS,
спасибо, но если б я еще понимал всю структуру и знал бы, какой там путь...
Я же все просто по логике делаю
Авторизация