Вопрос по дате

#
Re: Вопрос по дате
шаблон
   <xsl:template name="date_to_str">
      <xsl:param name="date" select="date"/>
      
      <xsl:variable select="substring-after($date, '')" name="month_postfixDate" />
      <xsl:variable select="substring-before($month_postfixDate, '')" name="month" />
      
      <xsl:value-of select="substring-before($date, '')"/>&#160;<xsl:choose>
         <xsl:when test="$month = 1">января</xsl:when>
         <xsl:when test="$month = 2">февраля</xsl:when>
         <xsl:when test="$month = 3">марта</xsl:when>
         <xsl:when test="$month = 4">апреля</xsl:when>
         <xsl:when test="$month = 5">мая</xsl:when>
         <xsl:when test="$month = 6">июня</xsl:when>
         <xsl:when test="$month = 7">июля</xsl:when>
         <xsl:when test="$month = 8">августа</xsl:when>
         <xsl:when test="$month = 9">сентября</xsl:when>
         <xsl:when test="$month = 10">октября</xsl:when>
         <xsl:when test="$month = 11">ноября</xsl:when>
<xsl:otherwise>декабря</xsl:otherwise>
      </xsl:choose>&#160;<xsl:value-of select="substring-after($month_postfixDate, '')"/>
   </xsl:template>

вызов
         <span class="date">
            <xsl:call-template  name="date_to_str" >
               <xsl:with-param name="date" select="item_datetime"/>
            </xsl:call-template>
         </span>

Лежат в стандартном "СписокЭлементовИнфосистемы"
Модератор
#
Re: Вопрос по дате
aNt1,
Вы заменили на пустую строку, а в апострофах должен быть пробел
#
Re: Вопрос по дате
HostCMS писал(а):
aNt1,
Вы заменили на пустую строку, а в апострофах должен быть пробел

Теперь показываются числа и год правильно, а месяц всегда декабрь
Модератор
#
Re: Вопрос по дате
aNt1,
Поменяйте формат вывода месяца, чтобы он выводился числом!
#
Re: Вопрос по дате
aNt1, по поводу декабря - у вас вот классический пример алгоритма, основанного на неявных умолчаниях, и в результате этого не защищенного от ошибочных данных.
Вы, прописывая условия в блоке choose предполагали, что в качестве месяца у вас могут быть переданы лишь числа от 1 до 12, и поэтому для чисел 1-11 сделали проверку, а для 12 написали otherwise, поскольку исходя из вашего предположения о составе данных вы думали что после проверки 11 условий ничего другого кроме цифры 12 остаться не может. А в данном случае у вас месяц передается скорее всего в виде двузначного числа - 01, 02, 03..., и поскольку при таком выводе из ваши условий сработают только "Октябрь" и "Ноябрь", то все остальные месяцы выводятся Декабрем
Отсюда какой вывод - декабрь надо писать 12м условием.
А otherwise вообще убрать, или засунуть в него, например, строку "13й месяц!" Это и вам сразу укажет на ошибку, и пользователя, в случае чего, позабавит
Заказов не беру. Консультирую редко.
#
Re: Вопрос по дате
HostCMS, спасибо, проблема простецкая оказалась, поддержка как всегда оперативна и грамотна.
#
Re: Вопрос по дате
Простите, столкнулся с маленькой проблемой, вывожу ИС "Пресс-релизы" на главной с целью показать несколько последних, как прикрутить XLS шаблон для вывода к блоку, выводимому в теле другой страницы, вот код вывода:
<?php
   $InformationSystem = & singleton('InformationSystem');
   $external_propertys=array();
   $external_propertys['ОтображатьСсылкуНаАрхив']=1;
   $external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;
   /* Количество выводимых элементов */
   $item_count = 3;
   $InformationSystemId = 26;
   $InformationGroupId = 0;  // false - из всех групп, 0 - из корневой группы
   $InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'press_release_list',$item_count,0,$external_propertys);
?>

Просто на другой странице кроме XLS ничего нет и в Узле структуры напрямую указана ИС и там он жаёт вручную выбрать XLS шаблоны для всех случаев. Извините за столько вопросов, просто задача возникла внезапно, читаю, но пока сложно понимаю XLS.
Авторизация