Табличная структура для информационных систем.

#
Табличная структура для информационных систем.
Всем привет. Такой вопрос. В информационных системах при добавлении новости она появляется снизу, т.е. как новая строка. Как сделать,чтобы новости состояли из 4 столбцов,а 5-ая новость добавлялась снизу образуя вторую строку из 4 столбцов и так далее.надеюсь нормально объяснил
#
Re: Табличная структура для информационных систем.
Насколько я понимаю,вы хотите чтобы было так:
Новости
1я новость | 2я новость | 3я новость | 4я новость
5я новость | 6я новость | ... ну и так далее



тогда в xsl-шаблоне вокруг вызова темплейта который выводит саму новость пишете
<table><tr>
<xsl:apply-template match="item" />
</tr></table>
, весь вывод темплейта item заключаете в <td> ... </td>, а после закрывающего <td> перед тегом </xsl:template> делаете проверку текущей позиции, и когда она кратна 4м выводите заэкранированные теги конца и начала строки:
<xsl:if test="position() mod 4 = 0">
<xsl:text disable-output-escaping="yes">
&lt;/tr&gt;&lt;tr&gt;
</xsl:text>
</xsl:if>


Идея понятна?
Заказов не беру. Консультирую редко.
#
Re: Табличная структура для информационных систем.
И вот еще полезная ссылка - там есть примеры xsl, правда для магазина, но разница не столь велика.
http://www.hostcms.ru/forums/17/3714/
Заказов не беру. Консультирую редко.
#
Re: Табличная структура для информационных систем.
идея понятна.ток как реализовать это в шаблоне не понял
#
Re: Табличная структура для информационных систем.
жук писал(а):
как реализовать это в шаблоне не понял
внимательно прочитать то что я написал выше и сделать, в соответствии с прочитанным. Не бойтесь экспериментировать, ключевые участки кода я вам показал.
Не будет получатся - выложите сюда свой шаблон с попытками сделать нужный вывод - подскажу где не так.
Заказов не беру. Консультирую редко.
#
Re: Табличная структура для информационных систем.
Так?
<!-- Шаблон вывода информационного элемента -->
   <table><tr><xsl:template match="blocks/items/item"><td>         
               
               <!-- Название -->
               <p class="news_title">
                  <a href="{item_path}">
                     <xsl:value-of disable-output-escaping="yes" select="item_name"/>
                  </a>
               </p>
               
               <!-- Изображение для информационного элемента (если есть)
               <xsl:if test="item_small_image!=''">
                  <a href="{item_path}" class="news_title">
                     <img src="{item_small_image}" class="news_img" alt="" align="left"/>
                  </a>
               </xsl:if>
               
               <xsl:value-of disable-output-escaping="yes" select="item_description"/>
               
               <xsl:if test="count(tags/tag) &gt; 0">
                  <p class="tags">
                     <img src="/hostcmsfiles/images/tags.gif" align="left" style="margin: 0px 5px -2px 0px"/>
                     <xsl:apply-templates select="tags/tag"/>
                  </p>
               </xsl:if> -->
               
               
               
               <p>
                  <xsl:if test="count(site_user) &gt; 0">
                     <img src="/hostcmsfiles/images/user.gif" style="margin: 0px 5px -4px 0px"/>
                     <strong>
                        <a href="/users/info/{site_user/site_user_login}/" class="c_u_l">
                           <xsl:value-of select="site_user/site_user_login"/>
                        </a>
                     </strong>
                  </xsl:if>
                  <xsl:if test="count(item_comments/comment) &gt; 0">
                     <img src="/hostcmsfiles/images/comments.gif" style="margin: 0px 5px -4px 0px"/>
                     <a style="color:#69b663" href="{item_path}#comments">
                        <xsl:value-of select="count(item_comments//comment)"/>&#xA0;<xsl:call-template name="declension">
                        <xsl:with-param name="number" select="count(item_comments//comment)"/></xsl:call-template></a>
                  </xsl:if>
               </p>
               
               <div style="clear: both;"></div>
   </td></xsl:template></tr></table>
#
Re: Табличная структура для информационных систем.
толь вот это куда добавить?
<xsl:if test="position() mod 4 = 0">
<xsl:text disable-output-escaping="yes">
&lt;/tr&gt;&lt;tr&gt;
</xsl:text>
</xsl:if>
#
Re: Табличная структура для информационных систем.
жук, не, не так. не очень внимательно читали мое сообщение.
Между <table><tr> и </tr></table> у меня написано <xsl:apply-template select="..." /> а не <xsl:template match="..." /> то есть должен быть вызов темплейта, а у вас - его описание. Так что нужно найти то место где вызывается этот шаблон и окружить вызов тегами таблицы и строки:
<!-- Отображение записи информационной системы -->
<table>
   <tr>
      <xsl:apply-templates select="blocks/items/item[item_status=1]"/>
   </tr>
</table>


А вот теги td вы расставили верно!

Теперь смотрим вот на эту фразу
Kotoff писал(а):
а после закрывающего <td> перед тегом </xsl:template> делаете проверку текущей позиции, и когда она кратна 4м...
после которой идет кусочек кода.

Закрывающий <td> это "</td>", который вы вставили куда положено. Соответственно сразу после него нужно и добавить кусок кода о котором вы спрашиваете.
Заказов не беру. Консультирую редко.
#
Re: Табличная структура для информационных систем.
ясно) спасибо! седня попробую и напишу результаты))
#
Re: Табличная структура для информационных систем.
сделал вот так. не получилось...ничего не показывает..белая страница
<!-- Отображение записи информационной системы -->
<table><tr>
<xsl:apply-templates select="blocks/items/item[item_status=1]"/>
<td>
</td><xsl:if test="position() mod 4 = 0">
<xsl:text disable-output-escaping="yes">
&lt;/tr&gt;&lt;tr&gt;
</xsl:text>
</xsl:if></xsl:template></tr></table>
Авторизация