Вывод всех элементов группы в каждом элементе этой группы

#
Вывод всех элементов группы в каждом элементе этой группы
надо что бы элементы группы выводились в самом элементе
код для группы такой:

<xsl:template match="blocks/items/item">
   <td>
      <div class="small-photo">
      <xsl:if test="item_propertys/item_property[@xml_name='foto1']/property_file_path/node()">
      <a href="{item_path}"><img src="/{item_propertys/item_property[@xml_name='foto1']/small_image/property_file_path}" /></a>
      </xsl:if>

      </div>
   </td>
   <xsl:if test="position() mod 3 = 0">
      <xsl:text disable-output-escaping="yes">
         &lt;/tr&gt;
         &lt;tr&gt;
      </xsl:text>
   </xsl:if>
</xsl:template>


а как сделать вывод элементов всех элементов группы в самом элементе не могу понять
#
Re: Вывод всех элементов группы в каждом элементе этой группы
kos писал(а):
элементы группы выводились в самом элементе
- т.е. при нахождении на странице инфоэлемента требуется вывод всех элементов той группы, к которой он принадлежит? Если да, то можно в коде тип. дин. страницы для инфосистемы при показе инфоэлемента(перед вызовом метода ShowInformationSystemItem) в буфер вывести результат вызова метода ShowInformationSystem, передав ему необходимые параметры для показа элементов именно той группы, которой принадлежит текущей элемент(т.е. группы с идентификатором $GLOBALS['INFSYS_result']['group']). Результат, записанный в буфер, можно передать в метод ShowInformationSystemItem в качестве элемента массива дополнительных параметров($external_propertys). А затем вывести значение полученного тэга в XSL-шаблоне для элемента. Организовать буферизацию можно с помощью php-функций ob_start() и ob_get_clean().
#
Re: Вывод всех элементов группы в каждом элементе этой группы
ничего не понял, отрыл и добавил
// Если находимся в корне - выбираем из всех групп
if ($GLOBALS['INFSYS_result']['group'] === 0)
{
$GLOBALS['INFSYS_result']['group'] = false;
}

но вывод элементов происходит непосредственно после вывода названий групп, а нужно

Группа
все ее элементы
Группа 2
все ее элементы
Группа 3
все ее элементы
Модератор
#
Re: Вывод всех элементов группы в каждом элементе этой группы
ivolkov,
Пожалуйста, перечитайте сообщение Натальи:
natalya писал(а):
Если да, то можно в коде тип. дин. страницы для инфосистемы при показе инфоэлемента (перед вызовом метода ShowInformationSystemItem) в буфер вывести результат вызова метода ShowInformationSystem, передав ему необходимые параметры для показа элементов именно той группы, которой принадлежит текущей элемент (т.е. группы с идентификатором $GLOBALS['INFSYS_result']['group']). Результат, записанный в буфер, можно передать в метод ShowInformationSystemItem в качестве элемента массива дополнительных параметров ($external_propertys). А затем вывести значение полученного тэга в XSL-шаблоне для элемента. Организовать буферизацию можно с помощью php-функций ob_start () и ob_get_clean ().
#
Re: Вывод всех элементов группы в каждом элементе этой группы
natalya писал(а):
— т.е. при нахождении на странице инфоэлемента требуется вывод всех элементов той группы, к которой он принадлежит? Если да, то можно в коде тип. дин. страницы для инфосистемы при показе инфоэлемента(перед вызовом метода ShowInformationSystemItem) в буфер вывести результат вызова метода ShowInformationSystem, передав ему необходимые параметры для показа элементов именно той группы, которой принадлежит текущей элемент(т.е. группы с идентификатором $GLOBALS['INFSYS_result']['group']). Результат, записанный в буфер, можно передать в метод ShowInformationSystemItem в качестве элемента массива дополнительных параметров($external_propertys). А затем вывести значение полученного тэга в XSL-шаблоне для элемента. Организовать буферизацию можно с помощью php-функций ob_start() и ob_get_clean().


тяжело осилить данный метод может кто подскажет на примере? кто нибудь делал так?
#
Re: Вывод всех элементов группы в каждом элементе этой группы
natalya писал(а):
можно в коде тип. дин. страницы для инфосистемы

Простите, а где находится тип. дин. страница и редактируется ли она в бесплатной версии cms?
Модератор
#
Re: Вывод всех элементов группы в каждом элементе этой группы
Peshehod писал(а):
а где находится тип. дин. страница

Типовая динамическая страница находится в разделе "Типовые динамические страницы". В теме речь, скорее всего, шла о ТДС "Информационная система".


Peshehod писал(а):
редактируется ли она в бесплатной версии cms?

Естественно.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Вывод всех элементов группы в каждом элементе этой группы
Приветствую!
Может ли кто поделиться php и xsl кодом для решения данного вопроса (для версии 6).

Т.е., чтобы при отображении Элемента Инфосистемы, на странице отображались бы и другие элементы группы, в которую входит текущий элемент.

Заранее благодарю!
Palmer
#
Re: Вывод всех элементов группы в каждом элементе этой группы
Так решение и не нашлось?
Модератор
#
Re: Вывод всех элементов группы в каждом элементе этой группы
Решается легко через ORM. Вот пример:


if ($Shop_Controller_Show->item)
{
   $limit = 6;

   $oShop = $Shop_Controller_Show->getEntity();

   /**
    * Похожие
    */

   // XML-сущность, к которй будут добавляться похожие приложения
   $oSimilarXmlEntity = Core::factory('Core_Xml_Entity')->name('similar');

   // Добавляем XML-сущность контроллеру показа
   $Shop_Controller_Show->addEntity($oSimilarXmlEntity);

   $oShop_Items = $oShop->Shop_Items;
   $oShop_Items
      ->queryBuilder()
      ->select('shop_items.*')
      ->where('shop_items.active', '=', 1)
      ->where('shop_items.shop_group_id', '=', $Shop_Controller_Show->group)
      ->where('shop_items.id', '!=', $Shop_Controller_Show->item)
      ->limit($limit)
      ->clearOrderBy()
      ->orderBy('RAND()');

   $aShop_Items = $oShop_Items->findAll(FALSE);
   foreach ($aShop_Items as $oShop_Item)
   {
      $oSimilarXmlEntity->addEntity(
         $oShop_Item->clearEntities()
            ->addForbiddenTag('text')
      );
   }
}


Для ИС просто Shop меняется на Informationsystem

Добавляется в ТДС показа перед блоком с ->show()

По итогу в XML попадет тег similar, в котором будут лежать элементы из этой же группы, исключая текущий элемент.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Авторизация