<Расширенное> отображение новостей на главной

#
<Расширенное> отображение новостей на главной
И так что бы понятно сначала..

Создана информационная система, в системе присутствуют как информационные группы а в этих группах еще группы,  так и элементы  ( примере : Авто - > Статьи -- > Аudi, или Авто - > Тюнинг -> Внешний

Задача - что бы отображались На главной в случайном порядке элементы с разных групп, и внутри подгрупп..

т. е по примеру  Авто - > Тюнинг -> Внешний в тюнинг внешний есть элементы, так же они присутсвуют просто в  Авто - > Тюнинг ,

что было сделано :

<?
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=1;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;
$property['OrderField'] = 'RAND()';
/* Количество выводимых элементов */
$item_count =4;

$InformationSystemId = 38;

$InformationGroupId = 833;  // false - из всех групп, 0 - из корневой группы

$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'автотоп',$item_count,0,$external_propertys,$property);  
?>


где 38 - информационная система Авто
а 833 это раздел Тюнинг
__

что дало, выводит группы внутренние:

Тюнинг внешний
Музыка

и элементы те что в категории лежали Тюнинг

мне нада что бы выводило и из внутренних категорий, т.е к примеру из >> Тюнинг внешний, а не только из раздела тюнинг, т.е совместно...

возможно ли так сделать? ))

Спасибо)
#
Re: <Расширенное> отображение новостей на главной
Реализовать это можно. Попробуйте Ваш блок заменить на такой:

<?
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=1;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;
$property['OrderField'] = 'RAND()';
/* Количество выводимых элементов */
$item_count =4;

$InformationSystemId = 38;
$in = 833;
         $mas_group = $GLOBALS['InformationSystem']->GetGroupsInformationSystem(833, to_int($GLOBALS['InformationSystem_id']));
         foreach ($mas_group as $key => $value)
         {
            $in .= ','.$value['information_groups_id'];
   
         }
         $element['type']=0;
         $element['prefix'] = ' and ';
         $element['name'] = 'information_items_table.information_groups_id';
         $element['if'] = ' IN ('.$in.') ';
         $element['value'] = '';
         $element['sufix']='';
         $property['select'][]=$element;

      $InformationGroupId = false;

$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'автотоп',$item_count,0,$external_propertys,$property);  
?>
Модератор
#
Re: <Расширенное> отображение новостей на главной
voldemair,
$InformationGroupId передайте false, а через дополнительные параметры $property задайте внешнее условие, в котором укажите:

$element['type']=0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_items_table.information_groups_id';
$element['if'] = ' IN (';
$element['value'] = '38,833';  // здесь через запятую указываете ID групп, если известно только ID родительской - получите ее потомков и укажите через запятую, соответствующие методы есть в API
$element['sufix']='';
$property['select'][] = $element;
Модератор
#
Re: <Расширенное> отображение новостей на главной
Наталья выше более подробно уже написала.
#
Re: <Расширенное> отображение новостей на главной
Добрый день Наталья, добрый день ХостЦмс

вообщем не заработало, пишет фатальную ошибку вот в этой строчке

$mas_group = $GLOBALS['InformationSystem']->GetGroupsInformationSystem(833, to_int($GLOBALS['InformationSystem_id']));


а если ее удаляю, то вот че пишет...

ЗАМЕЧАНИЕ: Undefined variable: mas_group в файле z:\home\sibank\auto\data_templates\8.htm (строка 105)
ПРЕДУПРЕЖЕДЕНИЕ: Invalid argument supplied for foreach() в файле z:\home\sibank\auto\data_templates\8.htm (строка 105)
Ошибка выполнения запроса! - Column 'information_groups_id' in where clause is ambiguous


помогите , а пожалуйста..
Модератор
#
Re: <Расширенное> отображение новостей на главной
voldemair писал(а):
вообщем не заработало, пишет фатальную ошибку вот в этой строчке

Пожалуйста, не забывайте приводить текст ошибки, ошибки синтаксиса не вижу, вероятно отсутствует $GLOBALS['InformationSystem'], более подробно можно будет сказать после получения текста ошибки.
#
Re: <Расширенное> отображение новостей на главной
Действительно, ошибка в том, что отсутствует определение для $GLOBALS['InformationSystem']. Поэтому строку:
$mas_group = $GLOBALS['InformationSystem']->GetGroupsInformationSystem(833, to_int($GLOBALS['InformationSystem_id']));
замените на строку:
$mas_group = $InformationSystem->GetGroupsInformationSystem(833, $InformationSystemId);
#
Re: <Расширенное> отображение новостей на главной
неа помогло, ошибка не вылазит, как и не вылазят элементы
появились только группы...

Каталог автомобилей
Статьи, Обзоры  
Страхование и кредит
..  а элементов просто нет ( .. причем самое обидное .. вывелись все категории информационной системы, т.е он даже не брал как тут указано с группы Статьи, обзоры, а выкинул всю категорию автосправочника..  а элементов нету (
#
Re: <Расширенное> отображение новостей на главной
какой идентификатор у группы "Статьи, Обзоры"?
#
Re: <Расширенное> отображение новостей на главной
833 индификатор, вот этот код я вставил...

информационная система имеет код 38..

в статьях и обзорах есть еще под группы, а вних элементы..

вот сам код
<?
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=1;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;
$property['OrderField'] = 'RAND()';
/* Количество выводимых элементов */
$item_count =4;

$InformationSystemId = 38;
$in = 833;
         $mas_group = $InformationSystem->GetGroupsInformationSystem(833, to_int($GLOBALS['InformationSystem_id']));
         foreach ($mas_group as $key => $value)
         {
            $in .= ','.$value['information_groups_id'];
  
         }
         $element['type']=0;
         $element['prefix'] = ' and ';
         $element['name'] = 'information_items_table.information_groups_id';
         $element['if'] = ' IN ('.$in.') ';
         $element['value'] = '';
         $element['sufix']='';
         $property['select'][]=$element;

      $InformationGroupId = false;

$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'автотоп',$item_count,0,$external_propertys,$property);  
?>


вот что получилось в итоге

    Каталог автомобилей  (679)
    Статьи, Обзоры  (8)
    Страхование и кредит  (0)
    Тест - Драйвы  (19)
    Тюнинг  (32)
      Юридическая информация  (9)


    т.е он просто вывел основные категрии информационной группы без элементов

    _______
    Большое Вам спасиба за то что помогаете делать что бы сайт был приятный и могн радовать пользователей
Авторизация