Как подсчитать количество элементов Инфосистемы, добавленных сегодня?

Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Ух, сделали
1. Вам нужно через внешние св-ва в метод показа передать текущую дату (в типовой дин. странице), назвать это поле, например, current_date:
$external_propertys['current_date'] = date('Ymd', time() - 60*60*24);

2.
<xsl:apply-templates select="item" />

заменяем на
            <!-- Ограничиваем элементы, у которых дата больше указанной -->
            <xsl:apply-templates select="item[concat(substring(date,7,4),substring(date,4,2),substring(date,1,2)) > current_date]" />
Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Так, это мы сделали вывод элементов только за 1 день, Вам же нужно выводить кол-во, поэтому вместо п. 2. из предыдущего ответа делаем следующее:
<xsl:template match="group" mode="groups">

      <xsl:variable name="current_group_id" select="@id" />

      <p style="margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px;">
         <a href="{/document/blocks/url}{fullpath}">
         <xsl:value-of disable-output-escaping="yes" select="name"/></a>&#xA0;<span style="color:#cacaca;font-size:10px;">(<xsl:value-of select="count_all_items"/>)
+<xsl:value-of select="count(//item[@group = $current_group_id and concat(substring(date,7,4),substring(date,4,2),substring(date,1,2)) > /shop/current_date])" /></span>
      </p>
   </xsl:template>
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
А причем тут Shop?
<span style="color:#cacaca;font-size:10px;">(<xsl:value-of select="count_all_items"/>)
+<xsl:value-of select="count(//item[@group = $current_group_id and concat(substring(date,7,4),substring(date,4,2),substring(date,1,2)) > /shop/current_date])" /></span>


Нужно в ИС это делать.
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Сделал так и не отображает новое:

<div style="margin: 1px 0px 1px 0px; padding: 1px 0px 1px 0px; font-size:13px; border-bottom: 1px dotted #efefef;">
            <img src="/hostcmsfiles/images/arrow_path.gif" style="margin: 6px 2px 2px 5px"/>
      <a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>&#xA0;<span style="color:#cacaca;font-size:11px;">(<xsl:value-of select="count_all_items"/>)</span>&#xA0;<span style="color:#d6206f;font-size:11px;">+<xsl:value-of select="count(//item[@group = $current_group_id and concat(substring(date,7,4),substring(date,4,2),substring(date,1,2)) >  item_propertys/item_property[@xml_name='current_date']/value])" /></span>
         </div>
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
1. в ИЭ ID группы group_id, а не group, как в магазине.
2. определение current_group_id не вижу
3. поле даты имеет значение item_date, а не date
4. о каком значении св-ва элемента может быть речь при нахождении в списке групп
item_propertys/item_property[@xml_name='current_date']/value
???
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Вот полный текст, тоже нолики одни показывает:

<xsl:template match="group" mode="groups">
      
<xsl:variable name="current_group_id" select="@id" />

<xsl:if test="count_all_items!=0">
<div style="margin: 1px 0px 1px 0px; padding: 1px 0px 1px 0px; font-size:13px; border-bottom: 1px dotted #efefef;">
<img src="/hostcmsfiles/images/arrow_path.gif" style="margin: 6px 2px 2px 5px"/>
<a href="{/document/blocks/url}{fullpath}">
<b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>&#xA0;<span style="color:#cacaca;font-size:11px;">(<xsl:value-of select="count_all_items"/>)</span>
&#xA0;<span style="color:#d6206f;font-size:11px;">+<xsl:value-of select="count(//item[@group = $current_group_id and concat(substring(item_date,7,4),substring(item_date,4,2),substring(item_date,1,2)) > current_date])" /></span>
         </div>
      </xsl:if>
   
   </xsl:template>


---------------------------------------------------
Вывод в шаблоне:

$InformationSystem = & singleton('InformationSystem');
$external_propertys=array();
$property=array();
$element = array();

$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;
$external_propertys['current_date'] = date('Ymd', time() - 60*60*24);
$property['show_item_type']='active';

$element['type'] = 1;
$element['property_id'] = 53;
$element['prefix'] = ' AND ';
$element['if'] = '=';
$element['value'] = 0;
$element['sufix']='';
$property['select'][] = $element;

$InformationSystemId = 36;

$item_count =20;

$InformationGroupId = false; // false - из всех групп, 0 - из корневой группы
$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'svideos_СписокВидеоНаГлавной',$item_count,0,array (), $external_propertys,$property);


ЧТО НЕ ТАК?
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
HostCMS писал(а):
1. Вам нужно через внешние св-ва в метод показа передать текущую дату (в типовой дин. странице), назвать это поле, например, current_date:
$external_propertys['current_date'] = date('Ymd', time() - 60*60*24);


Это где вставлять в типовую страницу?
Здесь:

<?php

/* ID Информационной системы */
$InformationSystem_id = to_int($GLOBALS['LA']['InformationSystemID']);

// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
   $SiteUsers = & singleton('SiteUsers');
   $site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
   $site_user_id = 0;
}

/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();

$external_propertys['current_date'] = date('Ymd', time() - 60*60*24);

/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{........ и т.д.
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Вы так и не сделали те изменения, о которых я написал выше
<xsl:template match="group" mode="groups">
      
<xsl:variable name="current_group_id" select="@id" />

<xsl:if test="count_all_items!=0">
<div style="margin: 1px 0px 1px 0px; padding: 1px 0px 1px 0px; font-size:13px; border-bottom: 1px dotted #efefef;">
<img src="/hostcmsfiles/images/arrow_path.gif" style="margin: 6px 2px 2px 5px"/>
<a href="{/document/blocks/url}{fullpath}">
<b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>&#xA0;<span style="color:#cacaca;font-size:11px;">(<xsl:value-of select="count_all_items"/>)</span>
&#xA0;<span style="color:#d6206f;font-size:11px;">+<xsl:value-of select="count(//item[@group_id = $current_group_id and concat(substring(item_date,7,4),substring(item_date,4,2),substring(item_date,1,2)) > /document/current_date])" /></span>
         </div>
      </xsl:if>
  
   </xsl:template>

сейчас еще перепроверю.
Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Неправильно передаются параметры, лишний array():
$InformationGroupId,'svideos_СписокВидеоНаГлавной',$item_count,0,array (), $external_propertys,$property);


также неправильно был передан show_item_type, правильно:
$property['show_item_type']=array('active');


#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Вот как сейчас выглядит вызов из шаблона:
<?
// НЕ АВТОРИЗОВАН
$InformationSystem = & singleton('InformationSystem';
$external_propertys=array();
$property=array();
$element = array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;
$property['show_item_type']=array('active';
$external_propertys['current_date'] = date('Ymd', time() - 60*60*24);
$element['type'] = 1;
$element['property_id'] = 53;
$element['prefix'] = ' AND ';
$element['if'] = '=';
$element['value'] = 0;
$element['sufix']='';
$property['select'][] = $element;
$InformationSystemId = 36;
$item_count =20;
$InformationGroupId = false; // false - из всех групп, 0 - из корневой группы
$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'svideos_СписокВидеоНаГлавной',$item_count,0, $external_propertys,$property);
?>
------------------------------------------
Так выглядит обработка и вывод в XLS-шаблоне:

<xsl:template match="group" mode="groups">
<xsl:variable name="current_group_id" select="@id" />
<a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
&#xA0;(<xsl:value-of select="count_all_items"/>&#xA0;+<xsl:value-of select="count(//item[@group_id = $current_group_id and concat(substring(item_date,7,4),substring(item_date,4,2),substring(item_date,1,2)) > /document/current_date])" />
</xsl:template>
------------------------------------------
Снова нолики выводятся...
Где внести изменения в типовой странице?
Можно подробнее что куда вставить?
current_date - куда вставлять в типовую динамическую страницу?
Как параметр дополнительный?
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Авторизация