Как вывести похожие группы в элементе ис?

#
Как вывести похожие группы в элементе ис?
Добрый день.
Попросили помочь, но на hostcms раньше не работал.
Такая задача: Допустим у меня есть группа мрамором ИС, у нее есть подгруппы название мрамора, вот когда мы заходим в эту подгруппу, нужно в ней рандомно вывести несколько подгрупп, типу сопутствующих товаров.
Помогите пожалуйста.
Модератор
#
Re: Как вывести похожие группы в элементе ис?
В теме вы пишите activ214365 писал(а):
Как вывести похожие группы в элементе ис?
но далее в текстеactiv214365 писал(а):
вот когда мы заходим в эту подгруппу, нужно в ней рандомно вывести несколько подгрупп
. Так где же выводить будете?

Как именно должны определяться группы, подлежащие выводу?
#
Re: Как вывести похожие группы в элементе ис?
Извините похоже не правильно выразился.
У меня есть основная группа мрамор, в ней есть подгруппы название мрамора.
Вот когда мы заходим в любую подгруппу название мрамора, мне должно рандомно предоставить несколько позиций из основной группы.
1 Мрамор
1.1 acquasanta
   1.1.1 товар 1
   1.1.2 товар 2
1.2 arabescato
1.3 arabescato 2
1.3 arabescato 3
Вот когда мы заходим в acquasanta, мне нужно предложить людям рандомно 1.2, 1.3, 1.4 например только две из них
Модератор
#
Re: Как вывести похожие группы в элементе ис?
activ214365 писал(а):
мне должно рандомно предоставить несколько позиций из основной группы.

и
activ214365 писал(а):
мне нужно предложить людям рандомно 1.2, 1.3, 1.4 например только две из них

опять разночтение, предлагать группы или товары из групп?
#
Re: Как вывести похожие группы в элементе ис?
именно подгруппы, не товары, это все группы и подгруппы.
Модератор
#
Re: Как вывести похожие группы в элементе ис?
if ($Informationsystem_Controller_Show->item && $Informationsystem_Controller_Show->group)
{
   // Текущая группа
   $oInformationsystem_Group = Core_Entity::factory('Informationsystem_Group', $Informationsystem_Controller_Show->group);

   // Родительская группа
   $oParent_Informationsystem_Group = $oInformationsystem_Group->getParent();

   // Родитель не корень
   if ($oParent_Informationsystem_Group)
   {
      // Подгруппы родительской группы
      $oSubgroups = $oParent_Informationsystem_Group->Informationsystem_Groups;
      $oSubgroups->queryBuilder()
         // Исключаем текущую группу
         ->where('id', '!=', $Informationsystem_Controller_Show->group)
         // Сортируем случайно
         ->clearOrderBy()
         ->orderBy('RAND()')
         // Две группы
         ->limit(2);

      $aSubgroups = $oSubgroups->findAll(FALSE);

      if (count($aSubgroups))
      {
         $oXmlSameGroups = Core::factory('Core_Xml_Entity')->name('sameGroups');
         $Informationsystem_Controller_Show->addEntity($oXmlSameGroups);

         foreach ($aSubgroups as $oSubgroup)
         {
            $oTmpGroup = clone $oSubgroup;
            $oTmpGroup
               ->clearEntities()
               ->clearEntitiesAfterGetXml(FALSE)
               ->id($oSubgroup->id);

            $oXmlSameGroups->addEntity($oTmpGroup);
         }
      }
   }
}


Код вставляете в ТДС в самый конец перед
$Informationsystem_Controller_Show
   ->xsl(
      Core_Entity::factory('Xsl')->getByName($xslName)
   )
   ...
   ->show();


Группы будут в XML в узле /informationsystem/sameGroups
#
Re: Как вывести похожие группы в элементе ис?
Спасибо огромное)
#
Re: Как вывести похожие группы в элементе ис?
Можете еще ответить на один вопрос?
Все отлично работает, но что нужно дописать чтобы еще доп свойства этих групп были в узле /informationsystem/sameGroups?
Модератор
#
Re: Как вывести похожие группы в элементе ис?
Передать showXmlProperties(), пример:
            $oTmpGroup = clone $oSubgroup;
            $oTmpGroup
               ->clearEntities()
               ->clearEntitiesAfterGetXml(FALSE)
               ->id($oSubgroup->id)
               ->showXmlProperties(TRUE);
#
Re: Как вывести похожие группы в элементе ис?
Здесь работают лучшие модераторы))
Сколько бы я времени потратил на это все))
Если подскажите еще в каком русле двигаться, чтобы сортировка была не рандомная, а например по значение доп свойства группы в которой мы находимся, буду по век жизни обязан буду))
Все время на wp проработал, про вашу cms только недавно узнал, здесь в разы лучшие модераторы сидят.
Авторизация