Почему-то выдает ошибку!

#
Почему-то выдает ошибку!
Сделал вывод случайных позиций каталога: http://www.hostcms.ru/faq/useful/51/

Появилась ошибка:
ПРЕДУПРЕЖЕДЕНИЕ: Cannot modify header information - headers already sent by (output started at /home/www/ds421/htdocs/www.restory.ru/modules/Structure/Structure.class.php:1165) в файле /home/www/ds421/htdocs/www.restory.ru/templates/template1/template.htm (строка 190)


Вывод происходит следующим образом:
<?
###
# Случайный вывод несокльких записей из информационной системы
###

# Вывод информационнлй системы
$information_blocks = new information_blocks();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;

# Получение и установка куков
# Для хранение списка показанных записей используем кукисы

if (isset($_COOKIE['ShowInformBlock']))
$not_in = $_COOKIE['ShowInformBlock'];
else
$not_in = '';

$items_on_page=3;

$propertys=array();
$propertys['OrderField']='Rand()';
$propertys['Order']='desc';
$propertys['NotIn']=$not_in;

# В $mass содержится списко отображенных записей
$mass = $information_blocks->ShowInformationBlock(6,false,'РандомДляГлавной',$items_on_page,0,$external_propertys,$propertys);  

# Если было что показывать (не заблокированы все элементы)
if (!sizeof($mass))
{
# В кукисы пишем пустую строку
$not_in='';
$propertys['NotIn']=$not_in;

# Повторно показываем инф. систему, но уже без ограничений (т.к. в ограничения попали все элементы системы).
# Если в XSL-е отображается пустая система с заголовком, а потом заполненный блок с заголовком - необходимо
# в XSL добавить проверку на наличие выводимых записей, если их 0 - то и не ввыводить даже заголовок

$mass = $information_blocks->ShowInformationBlock(6,false,'РандомДляГлавной',$items_on_page,0,$external_propertys,$propertys);  
}

# Записываем в кукисы уже показанные записи
foreach ($mass as $key => $value)
{
# Если уже были значения - ставим запятую
if (!empty($not_in))
  $not_in .= ',';

$not_in .= $value['information_items_id'];
}

# Устанавливаем кукисы
# Период хранения кукисов в секундах (1 мес.)
setcookie("ShowInformBlock", $not_in, time()+2678400);

?>


Заведен новый xsl-шаблон для ИС "Каталог товаров":
<?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">
      <!-- Путь к группе -->
      <p><xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/></p>
   </xsl:if>

   <!-- ======================================================== -->
   <!-- Отображение записи информационного блока -->
   <!-- ======================================================== -->
   
   <!-- если есть элементы для отображения -->
   <xsl:if test="count(blocks/items/item[item_status=1]) > 0">
      <table border="0" cellspacing="5" cellpadding="5" width="100%" class="news_table">
            <xsl:apply-templates select="blocks/items/item[item_status=1]" />
      </table>
<p><a href="/place/">Добавить заведение</a></p>
   </xsl:if>

   <p>
   <!-- Строка ссылок на другие страницы информационного блока -->
   <xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1"><em>Страницы:</em>
      <xsl:call-template name="for">
        <xsl:with-param name="items_on_page" select="blocks/items/items_on_page" />
        <xsl:with-param name="current_page" select="blocks/items/current_page" />
        <xsl:with-param name="count_items" select="blocks/items/count_items" />
      </xsl:call-template>
   </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">

   <tr valign="middle">
   <!-- Первая ячейка - название и описание товара -->
   <td style="background-color: #eeeeee;">
<xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/type00"/> «<a href="{item_path}"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a>»
   </td>

   <!-- Четвертая ячейка - изображение товара -->
   <td style="background-color: #eeeeee;">
      <xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/adres"/>
   </td>
   <!-- Пятая ячейка - изображение товара -->
   <td style="background-color: #eeeeee;" align="center">
      <xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/tel"/>
   </td>

</tr>
</xsl:template>

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

<xsl:template match="group" mode="goup_path">
   <xsl:variable 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">&#8594;</span> <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>


<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
   <xsl:param name="i" select="0" />
   <xsl:param name="items_on_page" />
   <xsl:param name="current_page" />
   <xsl:param name="count_items" />
   
   <xsl:variable name="n" select="$count_items div $items_on_page" />
   
   <xsl:if test="$count_items > $items_on_page and $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}" class="page_link"><xsl:value-of select="$i + 1" /></a></xsl:if>
<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page"><b><xsl:value-of select="$i+1" /></b></xsl:if>

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

   </xsl:if>
</xsl:template>

</xsl:stylesheet>


Выручайте, пожалуйста!
ищу себя...
#
Re: Почему-то выдает ошибку!
Для начала соединитесь по FTP с сервером, откройте файл /templates/template1/template.htm и посмотрите, что же там в строке 190.
#
Re: Почему-то выдает ошибку!
Неужели куки не ставятся? Это 190 строка.


# Устанавливаем кукисы
# Период хранения кукисов в секундах (1 мес.)
setcookie("ShowInformBlock", $not_in, time()+2678400);


Что делать?
ищу себя...
#
Re: Почему-то выдает ошибку!
Как можно модифицировать скрипт, чтобы он выводил без использования рандомной функции, а по дате создания элемента инфосистемы?
ищу себя...
#
Re: Почему-то выдает ошибку!
Куки можно засунуть в настройки динамической страницы - тогда по идее должно работать. У Вас трабл в том, что куки можно записать только до начала вывода страницы, а код динамической страницы выводится после вывода всяких шаблонов. Для того, чтобы в динамической странице вывести что-то раньше - используются настройки динамической страницы (нижнее поле ввода).
А для чего Вам куки-то вообще? Код изучать - не хочется, но почему нельзя просто рандомить?
#
Re: Почему-то выдает ошибку!
granted, $property['OrderField'] - поле сортировки информационных элементов, если случайная сортировка, то записать RAND(). Для вывода инфоэлементов по возрастанию или убыванию используйте значение параметра ASC либо DESC

#
Re: Почему-то выдает ошибку!
granted, $property['OrderField'] - поле сортировки информационных элементов, если случайная сортировка, то записать RAND(). Для вывода инфоэлементов по возрастанию или убыванию используйте значение параметра ASC либо DESC

Авторизация