ПРЕДУПРЕЖЕДЕНИЕ: 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();
# В $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 - то и не ввыводить даже заголовок
# Записываем в кукисы уже показанные записи
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-шаблон для ИС "Каталог товаров":
<!-- Получаем 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="$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>
Куки можно засунуть в настройки динамической страницы - тогда по идее должно работать. У Вас трабл в том, что куки можно записать только до начала вывода страницы, а код динамической страницы выводится после вывода всяких шаблонов. Для того, чтобы в динамической странице вывести что-то раньше - используются настройки динамической страницы (нижнее поле ввода).
А для чего Вам куки-то вообще? Код изучать - не хочется, но почему нельзя просто рандомить?
granted, $property['OrderField'] - поле сортировки информационных элементов, если случайная сортировка, то записать RAND(). Для вывода инфоэлементов по возрастанию или убыванию используйте значение параметра ASC либо DESC
granted, $property['OrderField'] - поле сортировки информационных элементов, если случайная сортировка, то записать RAND(). Для вывода инфоэлементов по возрастанию или убыванию используйте значение параметра ASC либо DESC