Модификация тип дин страницы - помощь
Есть раздел /concerts где происходит вывод с логикой - будующие концерты.
Cделал модификацию тип дин страницы, сортировка по дополнительному свойству дата.
Вопрос - как организовать архив этих концертов ссылкой в разделе на подраздел /concerts/archive ?
Чтобы там элементы обрабатывались уже другим шаблоном xls?
Код дин страницы
Cделал модификацию тип дин страницы, сортировка по дополнительному свойству дата.
Вопрос - как организовать архив этих концертов ссылкой в разделе на подраздел /concerts/archive ?
Чтобы там элементы обрабатывались уже другим шаблоном xls?
Код дин страницы
<?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;
}
$form_user_name = to_str($_POST['comment_autor']);
$form_user_email = to_str($_POST['comment_email']);
$form_text = to_str($_POST['comment_text']);
$form_subject = to_str($_POST['comment_subject']);
$form_parent_id = to_int($_POST['comment_parent_id']);
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{
$param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);
/* XSL шаблон для отправки уведомления администратору о добавлении комментария */
$param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);
$xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);
/* Режим добавления комментария:
1 - публиковать сразу,
0 - публиковать после проверки.*/
if (to_bool($GLOBALS['LA']['TypeAddComment'])/* || $site_user_id > 0*/)
{
$param['status'] = 1;
}
else
{
$param['status'] = 0;
}
// Текст комментария
$_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));
// Типографируем текст, если доступен модуль типографирования
if (class_exists('typograph'))
{
$typograph = new typograph();
$_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
}
$param['comment_mail_type'] = to_int($GLOBALS['LA']['comment_mail_type']);
// ID родительского комментария
$param['comment_parent_id'] = to_int($_POST['comment_parent_id']);
$param['comment_autor'] = htmlspecialchars(to_str($_POST['comment_autor']));
$param['comment_email'] = htmlspecialchars(to_str($_POST['comment_email']));
$param['comment_subject'] = htmlspecialchars(to_str($_POST['comment_subject']));
$param['comment_text'] = to_str($_POST['comment_text']);
$param['comment_grade'] = to_int($_POST['comment_grade']);
$param['allowable_tags'] = '<b><strong><i><em><br><p><u><strike><ul><ol><li>';
ob_start();
$GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавлениеКомментария', $param);
$external_propertys['message'] = ob_get_clean();
if (strpos($external_propertys['message'], '<div id="error">') === false)
{
$form_user_name = '';
$form_user_email = '';
$form_text = '';
$form_subject = '';
$form_parent_id = to_int($_POST['comment_parent_id']);
}
}
if ($GLOBALS['INFSYS_result'] != false)
{
/* XSL шаблон для отображения списка элементов информационной системы */
$xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);
/* XSL шаблон для отображения элемента информационной системы */
$xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);
$InformationResult = $GLOBALS['InformationResult'];
/* Массив внешних параметров, передаваемых в XML */
$external_propertys['ОтображатьСсылкуНаАрхив'] = 0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы'] = 1;
/* Массив дополнительных параметров */
$property = array();
$property_id = 26; // Идентификатор доп. свойства типа "Дата"
// Заполняем первое условие
$element['type'] = 1;
$element['property_id'] = $property_id;
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = '';
$element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE) > CURDATE()";
$property['select'][] = $element;
/* Число элементов на страницу */
if (isset($InformationResult['items_on_page']))
{
if ($InformationResult['items_on_page'] !== true)
{
$InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
}
}
else
{
$InformationResult['items_on_page'] = 10;
}
/* Номер, с которого начинается показ */
if (isset($InformationResult['items_begin']))
{
$InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
}
else
{
$InformationResult['items_begin'] = 0;
}
/* Вывод списка */
if ($GLOBALS['INFSYS_result']['item'] == false)
{
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['INFSYS_result']['tag_name']))
{
if (class_exists('Tag'))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['INFSYS_result']['tag_name']);
$property['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$GLOBALS['INFSYS_result']['group'] = false;
}
}
// $property['xml_show_group_type'] = 'all';
// Разрешаем передачу в XML свойств групп
$property['xml_show_group_property'] = true;
/* Отображаем информационную систему */
$GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $GLOBALS['INFSYS_result']['group'], $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
}
else
{
/* Определяем идентификатор информационного элемента */
$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
if (to_bool($GLOBALS['LA']['ShowComments']))
{
$external_propertys['show_comments'] = '1';
}
else
{
$external_propertys['show_comments'] = '0';
}
// Кому разрешено добавление комментария
$external_propertys['show_add_comments'] = to_int($GLOBALS['LA']['ShowAddComment']);
$property['part'] = $GLOBALS['part_ii'];
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = false;
$external_propertys['form_user_name'] = $form_user_name;
$external_propertys['form_user_email'] = $form_user_email;
$external_propertys['form_text'] = $form_text;
$external_propertys['form_subject'] = $form_subject;
$external_propertys['form_parent_id'] = $form_parent_id;
// Выводим элемент информационной системы
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys, $property);
}
}
?>
/* 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;
}
$form_user_name = to_str($_POST['comment_autor']);
$form_user_email = to_str($_POST['comment_email']);
$form_text = to_str($_POST['comment_text']);
$form_subject = to_str($_POST['comment_subject']);
$form_parent_id = to_int($_POST['comment_parent_id']);
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{
$param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);
/* XSL шаблон для отправки уведомления администратору о добавлении комментария */
$param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);
$xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);
/* Режим добавления комментария:
1 - публиковать сразу,
0 - публиковать после проверки.*/
if (to_bool($GLOBALS['LA']['TypeAddComment'])/* || $site_user_id > 0*/)
{
$param['status'] = 1;
}
else
{
$param['status'] = 0;
}
// Текст комментария
$_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));
// Типографируем текст, если доступен модуль типографирования
if (class_exists('typograph'))
{
$typograph = new typograph();
$_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
}
$param['comment_mail_type'] = to_int($GLOBALS['LA']['comment_mail_type']);
// ID родительского комментария
$param['comment_parent_id'] = to_int($_POST['comment_parent_id']);
$param['comment_autor'] = htmlspecialchars(to_str($_POST['comment_autor']));
$param['comment_email'] = htmlspecialchars(to_str($_POST['comment_email']));
$param['comment_subject'] = htmlspecialchars(to_str($_POST['comment_subject']));
$param['comment_text'] = to_str($_POST['comment_text']);
$param['comment_grade'] = to_int($_POST['comment_grade']);
$param['allowable_tags'] = '<b><strong><i><em><br><p><u><strike><ul><ol><li>';
ob_start();
$GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавлениеКомментария', $param);
$external_propertys['message'] = ob_get_clean();
if (strpos($external_propertys['message'], '<div id="error">') === false)
{
$form_user_name = '';
$form_user_email = '';
$form_text = '';
$form_subject = '';
$form_parent_id = to_int($_POST['comment_parent_id']);
}
}
if ($GLOBALS['INFSYS_result'] != false)
{
/* XSL шаблон для отображения списка элементов информационной системы */
$xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);
/* XSL шаблон для отображения элемента информационной системы */
$xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);
$InformationResult = $GLOBALS['InformationResult'];
/* Массив внешних параметров, передаваемых в XML */
$external_propertys['ОтображатьСсылкуНаАрхив'] = 0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы'] = 1;
/* Массив дополнительных параметров */
$property = array();
$property_id = 26; // Идентификатор доп. свойства типа "Дата"
// Заполняем первое условие
$element['type'] = 1;
$element['property_id'] = $property_id;
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = '';
$element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE) > CURDATE()";
$property['select'][] = $element;
/* Число элементов на страницу */
if (isset($InformationResult['items_on_page']))
{
if ($InformationResult['items_on_page'] !== true)
{
$InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
}
}
else
{
$InformationResult['items_on_page'] = 10;
}
/* Номер, с которого начинается показ */
if (isset($InformationResult['items_begin']))
{
$InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
}
else
{
$InformationResult['items_begin'] = 0;
}
/* Вывод списка */
if ($GLOBALS['INFSYS_result']['item'] == false)
{
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['INFSYS_result']['tag_name']))
{
if (class_exists('Tag'))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['INFSYS_result']['tag_name']);
$property['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$GLOBALS['INFSYS_result']['group'] = false;
}
}
// $property['xml_show_group_type'] = 'all';
// Разрешаем передачу в XML свойств групп
$property['xml_show_group_property'] = true;
/* Отображаем информационную систему */
$GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $GLOBALS['INFSYS_result']['group'], $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
}
else
{
/* Определяем идентификатор информационного элемента */
$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
if (to_bool($GLOBALS['LA']['ShowComments']))
{
$external_propertys['show_comments'] = '1';
}
else
{
$external_propertys['show_comments'] = '0';
}
// Кому разрешено добавление комментария
$external_propertys['show_add_comments'] = to_int($GLOBALS['LA']['ShowAddComment']);
$property['part'] = $GLOBALS['part_ii'];
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = false;
$external_propertys['form_user_name'] = $form_user_name;
$external_propertys['form_user_email'] = $form_user_email;
$external_propertys['form_text'] = $form_text;
$external_propertys['form_subject'] = $form_subject;
$external_propertys['form_parent_id'] = $form_parent_id;
// Выводим элемент информационной системы
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys, $property);
}
}
?>
ку
compaq, можно в "Структуре сайта" создать раздел /concerts/archive/, его типом указать "Динамическая страница". В коде этой страницы организовать показ инфоэлементов определенной инфосистемы в нужном порядке и в нужном виде(вызвать метод ShowInformationSystem, передав в него имя заранее подготовленного для отображения архива XSL-шаблона).
natalya
ох точно! =)Спасибо, я так понимаю это разумный способ.
Просто возникают часто всякие костыли и интересно как бы другие решали поставленные задачи на системе.
ку
Подскажите - нужно не просто вывести а создать архив
Сделал как сказали:
Все отлично но у меня есть код и настройки типовой дин страницы которая представляет собой архив (взято отсюда решение )
выводит список годов / 2009 / 2008 / 2007
Так вот хотелось собственно это решение сюда и впихнуть, как правильно модицифировать ниже дин страницу чтобы вывести ИС с id = 16 и обработать шаблоном "АрхивЭлементовНовости" ?
Памагите 8)
Код дин. страницы
Настройки
Сделал как сказали:
<?
#
$InformationSystem = new InformationSystem();
$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=1;
$InformationSystem->ShowInformationSystem(16,false,'АрхивЭлементовНовости',20,
0,$external_propertys);
?>
#
$InformationSystem = new InformationSystem();
$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=1;
$InformationSystem->ShowInformationSystem(16,false,'АрхивЭлементовНовости',20,
0,$external_propertys);
?>
Все отлично но у меня есть код и настройки типовой дин страницы которая представляет собой архив (взято отсюда решение )
выводит список годов / 2009 / 2008 / 2007
Так вот хотелось собственно это решение сюда и впихнуть, как правильно модицифировать ниже дин страницу чтобы вывести ИС с id = 16 и обработать шаблоном "АрхивЭлементовНовости" ?
Памагите 8)
Код дин. страницы
<?php
// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_user_id = 0;
}
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{
$param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);
/* XSL шаблон для отправки уведомления администратору о добавлении комментария */
$param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);
$xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);
/* Режим добавления комментария:
1 - публиковать сразу,
0 - публиковать после проверки.*/
if (to_bool($GLOBALS['LA']['TypeAddComment'])/* || $site_user_id > 0*/)
{
$param['status'] = 1;
}
else
{
$param['status'] = 0;
}
// Текст комментария
$_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));
// Типографируем текст, если доступен модуль типографирования
if (class_exists('typograph'))
{
$typograph = new typograph();
$_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
}
$param['comment_mail_type'] = to_int($GLOBALS['LA']['comment_mail_type']);
// ID родительского комментария
$param['comment_parent_id'] = to_int($_POST['comment_parent_id']);
$param['comment_autor'] = to_str($_POST['comment_autor']);
$param['comment_email'] = to_str($_POST['comment_email']);
$param['comment_subject'] = to_str($_POST['comment_subject']);
$param['comment_text'] = to_str($_POST['comment_text']);
$param['comment_grade'] = to_int($_POST['comment_grade']);
$param['allowable_tags'] = '<b><strong><i><u><strike><ul><ol><li>';
ob_start();
$GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавлениеКомментария', $param);
$external_propertys[0]['xml_name'] = 'message';
$external_propertys[0]['value'] = ob_get_clean();
}
$InformationSystem_id = to_int($GLOBALS['InformationSystem_id']);
// XSL шаблон для отображения списка элементов информационной системы
$xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);
// XSL шаблон для отображения элемента информационной системы
$xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);
$InformationResult = $GLOBALS['InformationResult'];
$count_external_propertys = count($external_propertys);
$external_propertys[$count_external_propertys]['xml_name'] = 'ОтображатьСсылкуНаАрхив';
$external_propertys[$count_external_propertys]['value'] = 0;
$external_propertys[++$count_external_propertys]['xml_name'] = 'ОтображатьСсылкиНаСледующиеСтраницы';
$external_propertys[$count_external_propertys]['value'] = 1;
// Массив дополнительных параметров
$property = array();
// Число элементов на страницу
if (isset($InformationResult['items_on_page']))
{
if ($InformationResult['items_on_page'] !== true)
{
$InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
}
}
else
{
$InformationResult['items_on_page'] = 10;
}
/* Номер, с которого начинается показ */
if (isset($InformationResult['items_begin']))
{
$InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
}
else
{
$InformationResult['items_begin'] = 0;
}
/* Метод определения идентификатора информационной группы и идентификатора информационного элемента по значению URI */
//$result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);
if ($GLOBALS['INFSYS_result'] != false)
{
/* Вывод списка */
if ($GLOBALS['INFSYS_result']['item'] == false)
{
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['INFSYS_result']['tag_name']))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['INFSYS_result']['tag_name']);
$property['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$GLOBALS['INFSYS_result']['group'] = false;
}
// $property['xml_show_group_type'] = 'all';
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = true;
// Получаем список годов, для которых есть новости
$query = "SELECT DISTINCT DATE_FORMAT(information_items_date, '%Y') as news_date FROM information_items_table
WHERE information_systems_id = '1' AND information_items_status = '1'
ORDER BY news_date DESC";
$DataBase = & singleton ('DataBase');
$result = $DataBase->select($query);
$ExternalXml = new ExternalXml();
$param_ext_xml = array();
$year_ext_xml = array();
$i = 0;
while($row_date = mysql_fetch_assoc($result))
{
$year_ext_xml[$i]['xml_name'] = 'Год';
$year_ext_xml[$i++]['value'] = intval($row_date['news_date']);
}
//$xmlData = $ExternalXml->GenXml($year_ext_xml, 1);
$external_propertys[++$count_external_propertys]['xml_name'] = 'Годы';//$xmlData;
$external_propertys[$count_external_propertys]['value'] = $year_ext_xml;
// Передан год
if (isset($GLOBALS['year']))
{
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '>=';
$element['value'] = $GLOBALS['year'] . '-01-01 00:00:00';
$element['sufix']='';
$property['select'][] = $element;
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '<=';
$element['value'] = $GLOBALS['year'] . '-12-31 23:59:59';
$element['sufix']='';
$property['select'][] = $element;
$external_propertys[++$count_external_propertys]['xml_name'] = 'ТекущийГод';
$external_propertys[$count_external_propertys]['value'] = $GLOBALS['year'];
$group_id = false;
}
else // Год не передан - отображаем по умолчанию
{
$group_id = $GLOBALS['INFSYS_result']['group'];
}
$property['GenXml_type'] = 1;
/* Отображаем информационную систему */
$GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $group_id, $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
}
else
{
/* Определяем идентификатор информационного элемента */
$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$external_propertys = array();
/*$external_propertys[0]['xml_name'] = 'show_comments';
if (to_bool($GLOBALS['LA']['ShowComments']))
{
$external_propertys[0]['value'] = '1';
}
else
{
$external_propertys[0]['value'] = '0';
}*/
if (to_bool($GLOBALS['LA']['ShowComments']))
{
$external_propertys['show_comments'] = '1';
}
else
{
$external_propertys['show_comments'] = '0';
}
// Кому разрешено добавление комментария
$external_propertys['show_add_comments'] = to_int($GLOBALS['LA']['ShowAddComment']);
$property['part'] = $GLOBALS['part_ii'];
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = false;
// Выводим элемент информационной системы
// Для тех, кто поленился в структуре отредактировать и указать
if (!isset($GLOBALS['LA']['CommentsOnPage']))
{
$GLOBALS['LA']['CommentsOnPage'] = 10;
}
$begin = to_int($GLOBALS['comment-page']);
if ($begin <= 0)
{
$begin = 0;
$param['begin'] = 0;
}
else
{
$begin--;
$param['begin'] = $begin * to_int($GLOBALS['LA']['CommentsOnPage']);
}
$external_propertys['CommentsCurrentPage'] = $begin;
$param['count'] = to_int($GLOBALS['LA']['CommentsOnPage']);
$external_propertys['CommentsOnPage'] = $param['count'];
// Выводим элемент информационной системы
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys,
$param);
}
}
?>
// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_user_id = 0;
}
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{
$param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);
/* XSL шаблон для отправки уведомления администратору о добавлении комментария */
$param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);
$xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);
/* Режим добавления комментария:
1 - публиковать сразу,
0 - публиковать после проверки.*/
if (to_bool($GLOBALS['LA']['TypeAddComment'])/* || $site_user_id > 0*/)
{
$param['status'] = 1;
}
else
{
$param['status'] = 0;
}
// Текст комментария
$_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));
// Типографируем текст, если доступен модуль типографирования
if (class_exists('typograph'))
{
$typograph = new typograph();
$_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
}
$param['comment_mail_type'] = to_int($GLOBALS['LA']['comment_mail_type']);
// ID родительского комментария
$param['comment_parent_id'] = to_int($_POST['comment_parent_id']);
$param['comment_autor'] = to_str($_POST['comment_autor']);
$param['comment_email'] = to_str($_POST['comment_email']);
$param['comment_subject'] = to_str($_POST['comment_subject']);
$param['comment_text'] = to_str($_POST['comment_text']);
$param['comment_grade'] = to_int($_POST['comment_grade']);
$param['allowable_tags'] = '<b><strong><i><u><strike><ul><ol><li>';
ob_start();
$GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавлениеКомментария', $param);
$external_propertys[0]['xml_name'] = 'message';
$external_propertys[0]['value'] = ob_get_clean();
}
$InformationSystem_id = to_int($GLOBALS['InformationSystem_id']);
// XSL шаблон для отображения списка элементов информационной системы
$xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);
// XSL шаблон для отображения элемента информационной системы
$xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);
$InformationResult = $GLOBALS['InformationResult'];
$count_external_propertys = count($external_propertys);
$external_propertys[$count_external_propertys]['xml_name'] = 'ОтображатьСсылкуНаАрхив';
$external_propertys[$count_external_propertys]['value'] = 0;
$external_propertys[++$count_external_propertys]['xml_name'] = 'ОтображатьСсылкиНаСледующиеСтраницы';
$external_propertys[$count_external_propertys]['value'] = 1;
// Массив дополнительных параметров
$property = array();
// Число элементов на страницу
if (isset($InformationResult['items_on_page']))
{
if ($InformationResult['items_on_page'] !== true)
{
$InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
}
}
else
{
$InformationResult['items_on_page'] = 10;
}
/* Номер, с которого начинается показ */
if (isset($InformationResult['items_begin']))
{
$InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
}
else
{
$InformationResult['items_begin'] = 0;
}
/* Метод определения идентификатора информационной группы и идентификатора информационного элемента по значению URI */
//$result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);
if ($GLOBALS['INFSYS_result'] != false)
{
/* Вывод списка */
if ($GLOBALS['INFSYS_result']['item'] == false)
{
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['INFSYS_result']['tag_name']))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['INFSYS_result']['tag_name']);
$property['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$GLOBALS['INFSYS_result']['group'] = false;
}
// $property['xml_show_group_type'] = 'all';
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = true;
// Получаем список годов, для которых есть новости
$query = "SELECT DISTINCT DATE_FORMAT(information_items_date, '%Y') as news_date FROM information_items_table
WHERE information_systems_id = '1' AND information_items_status = '1'
ORDER BY news_date DESC";
$DataBase = & singleton ('DataBase');
$result = $DataBase->select($query);
$ExternalXml = new ExternalXml();
$param_ext_xml = array();
$year_ext_xml = array();
$i = 0;
while($row_date = mysql_fetch_assoc($result))
{
$year_ext_xml[$i]['xml_name'] = 'Год';
$year_ext_xml[$i++]['value'] = intval($row_date['news_date']);
}
//$xmlData = $ExternalXml->GenXml($year_ext_xml, 1);
$external_propertys[++$count_external_propertys]['xml_name'] = 'Годы';//$xmlData;
$external_propertys[$count_external_propertys]['value'] = $year_ext_xml;
// Передан год
if (isset($GLOBALS['year']))
{
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '>=';
$element['value'] = $GLOBALS['year'] . '-01-01 00:00:00';
$element['sufix']='';
$property['select'][] = $element;
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_date';
$element['if'] = '<=';
$element['value'] = $GLOBALS['year'] . '-12-31 23:59:59';
$element['sufix']='';
$property['select'][] = $element;
$external_propertys[++$count_external_propertys]['xml_name'] = 'ТекущийГод';
$external_propertys[$count_external_propertys]['value'] = $GLOBALS['year'];
$group_id = false;
}
else // Год не передан - отображаем по умолчанию
{
$group_id = $GLOBALS['INFSYS_result']['group'];
}
$property['GenXml_type'] = 1;
/* Отображаем информационную систему */
$GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $group_id, $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
}
else
{
/* Определяем идентификатор информационного элемента */
$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$external_propertys = array();
/*$external_propertys[0]['xml_name'] = 'show_comments';
if (to_bool($GLOBALS['LA']['ShowComments']))
{
$external_propertys[0]['value'] = '1';
}
else
{
$external_propertys[0]['value'] = '0';
}*/
if (to_bool($GLOBALS['LA']['ShowComments']))
{
$external_propertys['show_comments'] = '1';
}
else
{
$external_propertys['show_comments'] = '0';
}
// Кому разрешено добавление комментария
$external_propertys['show_add_comments'] = to_int($GLOBALS['LA']['ShowAddComment']);
$property['part'] = $GLOBALS['part_ii'];
// Запрещаем передачу в XML свойств групп
$property['xml_show_group_property'] = false;
// Выводим элемент информационной системы
// Для тех, кто поленился в структуре отредактировать и указать
if (!isset($GLOBALS['LA']['CommentsOnPage']))
{
$GLOBALS['LA']['CommentsOnPage'] = 10;
}
$begin = to_int($GLOBALS['comment-page']);
if ($begin <= 0)
{
$begin = 0;
$param['begin'] = 0;
}
else
{
$begin--;
$param['begin'] = $begin * to_int($GLOBALS['LA']['CommentsOnPage']);
}
$external_propertys['CommentsCurrentPage'] = $begin;
$param['count'] = to_int($GLOBALS['LA']['CommentsOnPage']);
$external_propertys['CommentsOnPage'] = $param['count'];
// Выводим элемент информационной системы
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys,
$param);
}
}
?>
Настройки
<?php
$kernel = & singleton('kernel');
/* ID Информационной системы */
$InformationSystem_id = to_int($GLOBALS['LA']['InformationSystemID']);
/* Количество записей на страницу */
$items_on_page = to_int($GLOBALS['LA']['ItemsOnPage']);
$GLOBALS['LA_InformationSystem'] = & singleton('InformationSystem');
if ($items_on_page !== true)
{
$items_on_page = to_int($items_on_page);
}
$property = to_array($property);
/* Текстовая информация для указания номера страницы, например "страница" */
if (isset($GLOBALS['LA']['page']))
{
$property['page'] = to_str($GLOBALS['LA']['page']);
}
else
{
$property['page'] = 'страница';
}
/* Разделитель в заголовке страницы */
if (isset($GLOBALS['LA']['separator']))
{
$property['separator'] = to_str($GLOBALS['LA']['separator']);
}
else
{
$property['separator'] = ' / ';
}
$GLOBALS['InformationResult'] = array();
$break_if_path_not_found = false;
// Если указание на страницу - не прерываем определение
if (ereg ("^part-([0-9]*)$", end($GLOBALS['URL_ARRAY']), $regs) && to_int($regs[1]) > 0)
{
$GLOBALS['part_ii'] = $regs[1];
}
else
{
$GLOBALS['part_ii'] = 1;
}
// Нумерация для комментариев
if (ereg ("^comment-page-([0-9]*)$", end($GLOBALS['URL_ARRAY']), $regs) && to_int($regs[1]) > 0)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$break_if_path_not_found = false;
$GLOBALS['comment-page'] = $regs[1];
}
/* получаем для пути ассоциативный массив с id группы и id/url элемента для данной инфосистемы */
$GLOBALS['INFSYS_result'] = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id, '', $break_if_path_not_found);
/* Если путь существует */
if ($GLOBALS['INFSYS_result'])
{
/* получаем массив с деревом от текущей группы до корня */
$GLOBALS['LA_InformationSystem']->GetInformationGroupsForXml($GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$group_path='';
$mas_information_groups_for_xml=$GLOBALS['LA_InformationSystem']->get_mas_information_groups_for_xml();
/* получаем данные о группе */
$group_result=$GLOBALS['LA_InformationSystem']->SelectInformationGroups($GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$row_group=mysql_fetch_assoc($group_result);
/* получаем данные из seo - полей для групп */
$seo_title = trim($row_group['information_groups_seo_title']);
$seo_description = trim($row_group['information_groups_seo_description']);
$seo_keywords = trim($row_group['information_groups_seo_keywords']);
/* цикл по массиву с деревом для формирования пути по группам */
for($i = count($mas_information_groups_for_xml)-1; $i >= 0; $i--)
{
/* seo_title для группы пустое, то в заголовок подставляем название */
if (trim($mas_information_groups_for_xml[$i]['information_groups_seo_title'])=='')
{
$group_path.=$property['separator'].$mas_information_groups_for_xml[$i]['information_groups_name'];
}
else
{
$group_path.=$property['separator'].$mas_information_groups_for_xml[$i]['information_groups_seo_title'];
}
}
/* определяем название информационной системы */
$row = $GLOBALS['LA_InformationSystem']->GetInformationSystem($InformationSystem_id);
/* имя информационной системы */
$InformationSystem_name = $row['information_systems_name'];
/* Если вывод информационного элемента */
if ($GLOBALS['INFSYS_result']['item'])
{
/* определяем id информационного элемента */
$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$GLOBALS['InformationResult']['item_id'] = $item_id;
/* получаем данные об элементе */
$row_item = $GLOBALS['LA_InformationSystem']->GetInformationSystemItem($item_id);
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_user_id = 0;
}
if ($GLOBALS['LA_InformationSystem']->GetAccessItem($site_user_id, $row_item['information_items_id'], $row_item))
{
/* проверяем если seo_title непустой, то в заголовок страницы подставляем его */
if (trim($row_item['information_items_seo_title']) != '')
{
$item_name = $property['separator'].trim($row_item['information_items_seo_title']);
}
else
{
/* имя элемента */
$item_name = $property['separator'].$row_item['information_items_name'];
}
}
}
else
{
/* Вывод информационной группы */
/* Определяем номер страницы для показа */
$end_array_item = end($GLOBALS['URL_ARRAY']);
$page = to_str($end_array_item);
if (ereg ("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$items_begin = ($regs[1] - 1) * $items_on_page;
/* Если показываем группу, а не элемент, то указываем страницу (страница N), если она не первая */
$page_number = "{$property['separator']}{$property['page']} {$regs[1]}";
$pre_end_array_item = prev($GLOBALS['URL_ARRAY']);
// Переданный в строке год
if (to_int($pre_end_array_item) > 0)
{
$GLOBALS['year'] = $pre_end_array_item;
}
/*
else // Текущий год
{
$GLOBALS['year'] = date('Y');
}
*/
}
else
{
$items_begin = 0;
$end_array_item = end($GLOBALS['URL_ARRAY']);
// Переданный в строке год
if (to_int($end_array_item) > 0)
{
$GLOBALS['year'] = $end_array_item;
}
/*else // Текущий год
{
$GLOBALS['year'] = date('Y');
}
*/
}
/* Массив, возвращаемый методом */
$GLOBALS['InformationResult']['items_begin'] = $items_begin;
}
if (isset($GLOBALS['INFSYS_result']['tag_name']))
{
$tag_name = "Метка: {$GLOBALS['INFSYS_result']['tag_name']} {$property['separator']}";
}
/* формируем заголовок страницы */
$new_title = to_str($tag_name) . $InformationSystem_name . $group_path . to_str($item_name) . to_str($page_number);
}
else
{
// Элемент/группа не найдены, возвращаем 404 ошибку.
ShowHeader404();
$site = & singleton('site');
$site_row = $site->GetSite(CURRENT_SITE);
if ($site_row['site_error404'])
{
$structure = & singleton('Structure');
$structure_id = intval($site_row['site_error404']);
$structure_row = $structure->GetStructureItem($structure_id);
// Если тип - страница
if ($structure_row['structure_type'] == 0)
{
$document = & singleton('documents');
$documents_version_row = $document->GetCurrentDocumentVersion($structure_row['documents_id']);
$documents_version_id = $documents_version_row['documents_version_id'];
// Текущая страница
$kernel->set_current_page(PAGE_DIR . 'documents' . $documents_version_id . '.html');
}
elseif ($structure_row['structure_type'] == 1)
{
// Текущая страница - модуль
$kernel->set_current_page(CMS_FOLDER . 'structure/Modules/Module' . $structure_id . '.php');
}
else
{
/* типовая динамическая страница */
$lib_id = intval($structure_row['lib_id']);
$kernel->set_current_page(CMS_FOLDER . "lib/lib_$lib_id/lib_$lib_id.php");
}
// Шаблон вывода для страницы
$kernel->set_current_page_data_template($structure_row['data_templates_id']);
}
elseif (to_str($_SERVER['REQUEST_URI']) != '/')
{
header('Location: /');
// Прекращаем выполнение
exit();
}
}
if (!empty($new_title))
{
/* отображаем группу, если не существует данных об элементе и родительская группа не является корнем */
if (!isset($row_item) && $GLOBALS['INFSYS_result']['group'] != 0 || !empty($tag_name) || !empty($page_number))
{
/* Заголовок для группы задан */
if (!empty($seo_title))
{
$kernel->set_title($seo_title);
}
else
{
$kernel->set_title($new_title);
}
/* Описание для группы задано */
if (!empty($seo_description))
{
$kernel->set_description($seo_description);
}
else
{
$kernel->set_description($new_title);
}
/* Ключевые слова для группы заданы */
if (!empty($seo_keywords))
{
$kernel->set_keywords($seo_keywords);
}
else
{
$kernel->set_keywords($new_title);
}
}
elseif (isset($row_item)) /* отображаем элемент */
{
if (!empty($row_item['information_items_seo_description']))
{
$kernel->set_title(trim($row_item['information_items_seo_title']));
}
else
{
$kernel->set_title($new_title);
}
/* Описание для элемента задано */
if (!empty($row_item['information_items_seo_description']))
{
$kernel->set_description(trim($row_item['information_items_seo_description']));
}
else
{
$kernel->set_description($new_title);
}
/* Ключевые слова для элемента заданы */
if (!empty($row_item['information_items_seo_keywords']))
{
$kernel->set_keywords(trim($row_item['information_items_seo_keywords']));
}
else
{
$kernel->set_keywords($new_title);
}
}
}
$GLOBALS['InformationResult']['items_on_page'] = $items_on_page;
?>
$kernel = & singleton('kernel');
/* ID Информационной системы */
$InformationSystem_id = to_int($GLOBALS['LA']['InformationSystemID']);
/* Количество записей на страницу */
$items_on_page = to_int($GLOBALS['LA']['ItemsOnPage']);
$GLOBALS['LA_InformationSystem'] = & singleton('InformationSystem');
if ($items_on_page !== true)
{
$items_on_page = to_int($items_on_page);
}
$property = to_array($property);
/* Текстовая информация для указания номера страницы, например "страница" */
if (isset($GLOBALS['LA']['page']))
{
$property['page'] = to_str($GLOBALS['LA']['page']);
}
else
{
$property['page'] = 'страница';
}
/* Разделитель в заголовке страницы */
if (isset($GLOBALS['LA']['separator']))
{
$property['separator'] = to_str($GLOBALS['LA']['separator']);
}
else
{
$property['separator'] = ' / ';
}
$GLOBALS['InformationResult'] = array();
$break_if_path_not_found = false;
// Если указание на страницу - не прерываем определение
if (ereg ("^part-([0-9]*)$", end($GLOBALS['URL_ARRAY']), $regs) && to_int($regs[1]) > 0)
{
$GLOBALS['part_ii'] = $regs[1];
}
else
{
$GLOBALS['part_ii'] = 1;
}
// Нумерация для комментариев
if (ereg ("^comment-page-([0-9]*)$", end($GLOBALS['URL_ARRAY']), $regs) && to_int($regs[1]) > 0)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$break_if_path_not_found = false;
$GLOBALS['comment-page'] = $regs[1];
}
/* получаем для пути ассоциативный массив с id группы и id/url элемента для данной инфосистемы */
$GLOBALS['INFSYS_result'] = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id, '', $break_if_path_not_found);
/* Если путь существует */
if ($GLOBALS['INFSYS_result'])
{
/* получаем массив с деревом от текущей группы до корня */
$GLOBALS['LA_InformationSystem']->GetInformationGroupsForXml($GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$group_path='';
$mas_information_groups_for_xml=$GLOBALS['LA_InformationSystem']->get_mas_information_groups_for_xml();
/* получаем данные о группе */
$group_result=$GLOBALS['LA_InformationSystem']->SelectInformationGroups($GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$row_group=mysql_fetch_assoc($group_result);
/* получаем данные из seo - полей для групп */
$seo_title = trim($row_group['information_groups_seo_title']);
$seo_description = trim($row_group['information_groups_seo_description']);
$seo_keywords = trim($row_group['information_groups_seo_keywords']);
/* цикл по массиву с деревом для формирования пути по группам */
for($i = count($mas_information_groups_for_xml)-1; $i >= 0; $i--)
{
/* seo_title для группы пустое, то в заголовок подставляем название */
if (trim($mas_information_groups_for_xml[$i]['information_groups_seo_title'])=='')
{
$group_path.=$property['separator'].$mas_information_groups_for_xml[$i]['information_groups_name'];
}
else
{
$group_path.=$property['separator'].$mas_information_groups_for_xml[$i]['information_groups_seo_title'];
}
}
/* определяем название информационной системы */
$row = $GLOBALS['LA_InformationSystem']->GetInformationSystem($InformationSystem_id);
/* имя информационной системы */
$InformationSystem_name = $row['information_systems_name'];
/* Если вывод информационного элемента */
if ($GLOBALS['INFSYS_result']['item'])
{
/* определяем id информационного элемента */
$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);
$GLOBALS['InformationResult']['item_id'] = $item_id;
/* получаем данные об элементе */
$row_item = $GLOBALS['LA_InformationSystem']->GetInformationSystemItem($item_id);
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_user_id = 0;
}
if ($GLOBALS['LA_InformationSystem']->GetAccessItem($site_user_id, $row_item['information_items_id'], $row_item))
{
/* проверяем если seo_title непустой, то в заголовок страницы подставляем его */
if (trim($row_item['information_items_seo_title']) != '')
{
$item_name = $property['separator'].trim($row_item['information_items_seo_title']);
}
else
{
/* имя элемента */
$item_name = $property['separator'].$row_item['information_items_name'];
}
}
}
else
{
/* Вывод информационной группы */
/* Определяем номер страницы для показа */
$end_array_item = end($GLOBALS['URL_ARRAY']);
$page = to_str($end_array_item);
if (ereg ("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$items_begin = ($regs[1] - 1) * $items_on_page;
/* Если показываем группу, а не элемент, то указываем страницу (страница N), если она не первая */
$page_number = "{$property['separator']}{$property['page']} {$regs[1]}";
$pre_end_array_item = prev($GLOBALS['URL_ARRAY']);
// Переданный в строке год
if (to_int($pre_end_array_item) > 0)
{
$GLOBALS['year'] = $pre_end_array_item;
}
/*
else // Текущий год
{
$GLOBALS['year'] = date('Y');
}
*/
}
else
{
$items_begin = 0;
$end_array_item = end($GLOBALS['URL_ARRAY']);
// Переданный в строке год
if (to_int($end_array_item) > 0)
{
$GLOBALS['year'] = $end_array_item;
}
/*else // Текущий год
{
$GLOBALS['year'] = date('Y');
}
*/
}
/* Массив, возвращаемый методом */
$GLOBALS['InformationResult']['items_begin'] = $items_begin;
}
if (isset($GLOBALS['INFSYS_result']['tag_name']))
{
$tag_name = "Метка: {$GLOBALS['INFSYS_result']['tag_name']} {$property['separator']}";
}
/* формируем заголовок страницы */
$new_title = to_str($tag_name) . $InformationSystem_name . $group_path . to_str($item_name) . to_str($page_number);
}
else
{
// Элемент/группа не найдены, возвращаем 404 ошибку.
ShowHeader404();
$site = & singleton('site');
$site_row = $site->GetSite(CURRENT_SITE);
if ($site_row['site_error404'])
{
$structure = & singleton('Structure');
$structure_id = intval($site_row['site_error404']);
$structure_row = $structure->GetStructureItem($structure_id);
// Если тип - страница
if ($structure_row['structure_type'] == 0)
{
$document = & singleton('documents');
$documents_version_row = $document->GetCurrentDocumentVersion($structure_row['documents_id']);
$documents_version_id = $documents_version_row['documents_version_id'];
// Текущая страница
$kernel->set_current_page(PAGE_DIR . 'documents' . $documents_version_id . '.html');
}
elseif ($structure_row['structure_type'] == 1)
{
// Текущая страница - модуль
$kernel->set_current_page(CMS_FOLDER . 'structure/Modules/Module' . $structure_id . '.php');
}
else
{
/* типовая динамическая страница */
$lib_id = intval($structure_row['lib_id']);
$kernel->set_current_page(CMS_FOLDER . "lib/lib_$lib_id/lib_$lib_id.php");
}
// Шаблон вывода для страницы
$kernel->set_current_page_data_template($structure_row['data_templates_id']);
}
elseif (to_str($_SERVER['REQUEST_URI']) != '/')
{
header('Location: /');
// Прекращаем выполнение
exit();
}
}
if (!empty($new_title))
{
/* отображаем группу, если не существует данных об элементе и родительская группа не является корнем */
if (!isset($row_item) && $GLOBALS['INFSYS_result']['group'] != 0 || !empty($tag_name) || !empty($page_number))
{
/* Заголовок для группы задан */
if (!empty($seo_title))
{
$kernel->set_title($seo_title);
}
else
{
$kernel->set_title($new_title);
}
/* Описание для группы задано */
if (!empty($seo_description))
{
$kernel->set_description($seo_description);
}
else
{
$kernel->set_description($new_title);
}
/* Ключевые слова для группы заданы */
if (!empty($seo_keywords))
{
$kernel->set_keywords($seo_keywords);
}
else
{
$kernel->set_keywords($new_title);
}
}
elseif (isset($row_item)) /* отображаем элемент */
{
if (!empty($row_item['information_items_seo_description']))
{
$kernel->set_title(trim($row_item['information_items_seo_title']));
}
else
{
$kernel->set_title($new_title);
}
/* Описание для элемента задано */
if (!empty($row_item['information_items_seo_description']))
{
$kernel->set_description(trim($row_item['information_items_seo_description']));
}
else
{
$kernel->set_description($new_title);
}
/* Ключевые слова для элемента заданы */
if (!empty($row_item['information_items_seo_keywords']))
{
$kernel->set_keywords(trim($row_item['information_items_seo_keywords']));
}
else
{
$kernel->set_keywords($new_title);
}
}
}
$GLOBALS['InformationResult']['items_on_page'] = $items_on_page;
?>
ку
Решил пока не делать архив путем кода динамической страницы, сделаю пока сортироку просто по годам на xls поэтому просьба моя пока отпадает.
....
Но заметил и прошу помощи вот в чем - в первом сообщении я привел код измененной тип динамической страницы, куда был вставлен только этот фрагмент
на основе этого Решения для вывода в макете или шаблоне:
Нужна сортировка возрастанием по дате но вставив решение в тип дин страницу оно не канает - элементы сортируются походу дела в зависимости от настроек у ИС
Помогите хотябы здесь...
....
Но заметил и прошу помощи вот в чем - в первом сообщении я привел код измененной тип динамической страницы, куда был вставлен только этот фрагмент
$property_id = 26; // Идентификатор доп. свойства типа "Дата"
// Заполняем первое условие
$element['type'] = 1;
$element['property_id'] = $property_id;
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = '';
$element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE) > CURDATE()";
$property['select'][] = $element;
// Заполняем первое условие
$element['type'] = 1;
$element['property_id'] = $property_id;
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = '';
$element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE) > CURDATE()";
$property['select'][] = $element;
на основе этого Решения для вывода в макете или шаблоне:
<?php
$InformationSystem = & singleton('InformationSystem');
$external_propertys = array();
$external_propertys['ПоказыватьСсылкиНаДругиеСтраницы'] = 1;
$property=array();
$property_id = 16; // Идентификатор доп. свойства типа "Дата"
// Заполняем первое условие
$element['type'] = 1;
$element['property_id'] = $property_id;
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = '';
$element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE) > CURDATE()";
$property['select'][] = $element;
// Выводим элементы
$InformationSystem->ShowInformationSystem(1, false, 'СписокЭлементовИнфосистемы', 10, 0, $external_propertys, $property);
?>
$InformationSystem = & singleton('InformationSystem');
$external_propertys = array();
$external_propertys['ПоказыватьСсылкиНаДругиеСтраницы'] = 1;
$property=array();
$property_id = 16; // Идентификатор доп. свойства типа "Дата"
// Заполняем первое условие
$element['type'] = 1;
$element['property_id'] = $property_id;
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = '';
$element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE) > CURDATE()";
$property['select'][] = $element;
// Выводим элементы
$InformationSystem->ShowInformationSystem(1, false, 'СписокЭлементовИнфосистемы', 10, 0, $external_propertys, $property);
?>
Нужна сортировка возрастанием по дате но вставив решение в тип дин страницу оно не канает - элементы сортируются походу дела в зависимости от настроек у ИС
Помогите хотябы здесь...
ку
Кто-нибудь подскажите! Жаль что не очень активны разработчики на форуме... 

ку
compaq,У Вас дополнительное свойство типа "Дата", по которому идет сортировка имеет идентификатор 16, а идентификатор информационной системы - 1?
Ivanov писал(а):
Амм выше код взят с форума - а у меня доп-свойство Дата имеет id=26, а ИС имеет 16
Грубо говоря так бы я выводил в макете:
Кстати вы же и приводили этот пример на форуме () =)
Теперь я пытаюсь мод тип динамическую страницу так чтобы код приведенный выше работал полностью (элементы выводятся с датой большей текущей но их сортировка происходит собственно не по дате)
Спасибо
compaq,У Вас дополнительное свойство типа «Дата», по которому идет сортировка имеет идентификатор 16, а идентификатор информационной системы — 1?
Амм выше код взят с форума - а у меня доп-свойство Дата имеет id=26, а ИС имеет 16
Грубо говоря так бы я выводил в макете:
<?php
$InformationSystem = & singleton('InformationSystem');
$external_propertys = array();
$external_propertys['ПоказыватьСсылкиНаДругиеСтраницы'] = 1;
$property=array();
$property_id = 26; // Идентификатор доп. свойства типа "Дата"
$property_id = 26; // Идентификатор доп. свойства типа "Дата"
$property['OrderField'] = 'CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE)';
$property['Order'] = 'ASC';
// Заполняем первое условие
$element['type'] = 1;
$element['property_id'] = $property_id;
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = '';
$element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE) > CURDATE()";
$property['select'][] = $element;
// Выводим элементы
$InformationSystem->ShowInformationSystem(16, false, 'СписокЭлементовИнфосистемы', 10, 0, $external_propertys, $property);
?>
$InformationSystem = & singleton('InformationSystem');
$external_propertys = array();
$external_propertys['ПоказыватьСсылкиНаДругиеСтраницы'] = 1;
$property=array();
$property_id = 26; // Идентификатор доп. свойства типа "Дата"
$property_id = 26; // Идентификатор доп. свойства типа "Дата"
$property['OrderField'] = 'CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE)';
$property['Order'] = 'ASC';
// Заполняем первое условие
$element['type'] = 1;
$element['property_id'] = $property_id;
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = '';
$element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)), DATE) > CURDATE()";
$property['select'][] = $element;
// Выводим элементы
$InformationSystem->ShowInformationSystem(16, false, 'СписокЭлементовИнфосистемы', 10, 0, $external_propertys, $property);
?>
Кстати вы же и приводили этот пример на форуме () =)
Теперь я пытаюсь мод тип динамическую страницу так чтобы код приведенный выше работал полностью (элементы выводятся с датой большей текущей но их сортировка происходит собственно не по дате)
Спасибо
ку
Авторизация
