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

Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Итак, проверенный фрагмент XSL:
         <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>


Фрагмент вызова (закомментированы фрагменты, которые были лишними при тестировании):
<?php
$InformationSystem = & singleton('InformationSystem');
$external_propertys=array();
$property=array();

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

/*
$element = array();
$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);
?>


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

Вставлять код

$external_propertys['current_date'] = date('Ymd', time() - 60*60*24);
$InformationGroupId = false; // false - из всех групп, 0 - из корневой группы
перед ShowInformationSystem ...
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Всё. Работает. Разобрался. Спасибо. Теперь может кому понадобится...
Это сделано на сайте: http://www.svideos.ru/
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Когда вызываю с главной страницы, все работает.
Если вызвать это отображение, напимер на странице с Элементами информационной системы, то выводятся нолики.

Что исправить в XSL?

/ - считает новые
/videos/ - уже не считает новые
(/videos/ - вывод инфосистемы)
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Вот вывод групп на любой странице сайта:

<?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 select="/document"/>
</xsl:template>
   
<xsl:template match="/document">
<xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
<h3>Рубрики видео</h3>
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
</xsl:template>

<xsl:template match="group" mode="groups">
<xsl:variable name="current_group_id" select="@id" />
<xsl:if test="count_all_items!=0">
<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:if>
</xsl:template>

</xsl:stylesheet>

На главной работает, на других - нет.
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Так у Вас значит не применяется
$InformationGroupId = false;
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
Вот сам вывод:

<?PHP      
// Вывод информационных систем
$InformationSystem = & singleton('InformationSystem');
$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;
$external_propertys['current_date'] = date('Ymd', time() - 60*60*24);
$property = array();
$property['show_item_type']=array('active');
$property['groups_activity']=1;
/* Количество выводимых элементов */
$item_count =0;
$InformationSystemId = 36;
$InformationGroupId = false; // false - из всех групп, 0 - из корневой группы
$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'svideos_СписокГруппВидео',$item_count,0,$external_propertys,$property);
?>
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
3dkvadrat,
здесь правильно, а когда вставляете в типовую, то там получается уже не заменяется, из-за чего элементы не выбираются и посчитать количество новых не получается.
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
И что делать?
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Модератор
#
Re: Как подсчитать количество элементов Инфосистемы, добавленных сегодня?
3dkvadrat,
Скопировать код типовой динамической страницы, внести в нее изменения, чтобы всегда выбирались элементы, а по группам их делить уже на XSL.
Авторизация