Как отобразить размер файла?

Модератор
#
Re: Как отобразить размер файла?
Покажите XML
Модератор
#
Re: Как отобразить размер файла?
3dkvadrat писал(а):
<xsl:value-of disable-output-escaping="yes" select="item_size"/>

откуда была взята информация про item_size? нет такого тега или атрибута.
есть атрибут size у тега value
#
Re: Как отобразить размер файла?
<xsl:template match="blocks/items/item">
<li>
   <b><xsl:value-of disable-output-escaping="yes" select="item_name"/></b>
   &#xA0;[<a href="/download_file.php?download_propertys_items_id={item_propertys/item_property/property_id}">Скачать</a>]
<xsl:param name="value" select="size"/> байт.<br/>
   <xsl:value-of disable-output-escaping="yes" select="item_description"/>
</li>
</xsl:template>

Как отобразить этот size у  value? не понимаю. МОжет ссылку на документацию дадите?
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Модератор
#
Re: Как отобразить размер файла?
3dkvadrat,
Еще раз прошу показать генерируемый XML, по нему покажу, каким образом определять пути.
#
Re: Как отобразить размер файла?
а зачем используется
<xsl:param name="value" select="size"/>

а не
<xsl:value-of disable-output-escaping="yes" select="size"/>

?
Модератор
#
Re: Как отобразить размер файла?
NeX,
В данном случае <param> вообще не нужен, необходимо выводить значение с помощью xsl:value-of, при этом disable-output-escaping="yes" указывать в данном случае не обязательно.
#
Re: Как отобразить размер файла?
вот, именно это я и имел ввиду
Думаю, у автора не отображается размер скорее всего именно из-за этого
Модератор
#
Re: Как отобразить размер файла?
проблема в неправильном указании пути к атрибуту, хочется на примере XML показать, как же правильно определять пути.
#
Re: Как отобразить размер файла?
Даю XML
Это ваш стандартный вариант с небольшими изменениями...

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />

<xsl:template match="/">
    <xsl:apply-templates/>
</xsl:template>

<xsl:template match="/document">
   
   <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
   
   <!-- Если в находимся корне - выводим название информационной системы -->
   <xsl:if test="blocks/parent_group_id=0">
      <h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/></h1>
      <xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
   </xsl:if>
   
   <!-- Если в находимся в группе - выводим название группы -->
   <xsl:if test="blocks/parent_group_id!=0">
      <h1><xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name"/></h1>

      <!-- Путь к группе -->
      <p><xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/></p>
   </xsl:if>
   
   <!-- Отображение подгрупп данной группы -->
   <ul>
      <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="goups"/>
   </ul>


   <!-- Отображение записи информационного блока -->
   <ul>
      <!-- Отображение записи информационного блока -->
      <xsl:apply-templates select="blocks/items/item[item_status=1]" />
   </ul>

   <p>
   <!-- Строка ссылок на другие страницы информационного блока -->
   <xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
      <xsl:if test="blocks/items/count_items > blocks/items/items_on_page">

         <strong>
            <xsl:call-template name="for">
              <xsl:with-param name="n" select="blocks/items/count_items div blocks/items/items_on_page"/>
              <xsl:with-param name="current_page" select="blocks/items/current_page"/>
            </xsl:call-template>
         </strong>

      </xsl:if>
   </xsl:if>
   </p>

   <!-- Ссылка на архив -->
   <xsl:if test="ОтображатьСсылкуНаАрхив=1">
      <p><a href="{blocks/url}">Архив "<xsl:value-of disable-output-escaping="yes" select="blocks/name"/>"</a></p>
   </xsl:if>
</xsl:template>

<xsl:template match="blocks/items/item">
<li>
   <b><xsl:value-of disable-output-escaping="yes" select="item_name"/></b>
   &#xA0;[<a href="/download_file.php?download_propertys_items_id={item_propertys/item_property/property_id}">Скачать</a>]
<xsl:param name="value" select="size"/> байт.<br/>
   <xsl:value-of disable-output-escaping="yes" select="item_description"/>
</li>
</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->

<xsl:template match="group" mode="goup_path">
   <xsl:param name="parent_id" select="@parent_id"/>

   <xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path"/>

   <xsl:if test="@parent_id=0">
      <a href="{/document/blocks/url}"><xsl:value-of disable-output-escaping="yes" select="/document/blocks/name"/></a>
   </xsl:if>

   <span class="path_arrow"><img hspace="4" src="/images/pointer.gif" /></span>

   <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>

</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит ссылки подгурппы инф. элемента -->
<!-- ======================================================== -->

<xsl:template match="group" mode="goups">
   <li>
      <xsl:if test="small_image!=''">
         <a href="{/document/blocks/url}{fullpath}" target="_blank"><img src="/upload/{small_image}"/></a>&#xA0;
      </xsl:if>
   <a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>
   </li>
</xsl:template>

<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
   <xsl:param name="i" select="0"/>
   <xsl:param name="n"/>
   <xsl:param name="current_page"/>
   
   <xsl:if test="$n > $i">

      <!-- Разделитель ссылок -->
      <xsl:if test="$i != 0 and $n > $current_page"> - </xsl:if>

      <!-- Ставим ссылку на страницу-->
      <xsl:if test="$i != $current_page">

         <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
         <xsl:variable name="parent_group_id" select="/document/blocks/parent_group_id" />

         <!-- Определяем группу для формирования адреса ссылки -->
         <xsl:variable name="group_link"><xsl:choose>
            <!-- Если группа не корневая (!=0) -->
            <xsl:when test="$parent_group_id != 0"><xsl:value-of select="/document/blocks//group[@id=$parent_group_id]/fullpath"/></xsl:when>
            <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
            <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>

         <!-- Определяем адрес ссылки -->
         <xsl:variable name="number_link"><xsl:choose>
            <!-- Если не нулевой уровень -->
            <xsl:when test="$i != 0">page-<xsl:value-of select="$i+1"/>/</xsl:when>
            <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
            <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>

         <a href="{/document/blocks/url}{$group_link}{$number_link}"><xsl:value-of select="$i+1"/></a>
      </xsl:if>
      
      <!-- Не ставим ссылку на страницу-->
      <xsl:if test="$i = $current_page">
         <span class="current"><xsl:value-of select="$i+1"/></span>
      </xsl:if>

      <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
      <xsl:call-template name="for">
         <xsl:with-param name="i" select="$i + 1"/>
         <xsl:with-param name="n" select="$n"/>
         <xsl:with-param name="current_page" select="$current_page"/>
      </xsl:call-template>
   </xsl:if>
</xsl:template>

</xsl:stylesheet>
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Как отобразить размер файла?
это xsl
надо xml
(на странице, где должне отображаться размер файла в адресной строке добавьте ?show_xml и скопируйте код, который отобразится в всплывающем окошке, сюда)
Авторизация