Вывести все товары в переменную (массив)

#
Вывести все товары в переменную (массив)
Всем привет!
Хочу вывести все товары в переменную и дальше с ней работать. По 6 версии все перерыл, никто похоже не озадачивался)))
Пока что обхожусь костылем - вывожу в HTML страницы, затем через джиквери собираю в массив и сам код HTML удаляю)))
Вот так вывожу в шаблоне:
<?php
                        
            if (Core::moduleIsActive('shop'))
               {
                  $Shop_Controller_Show = new Shop_Controller_Show(
                     Core_Entity::factory('Shop', '3')
                  );
                  $Shop_Controller_Show
                     ->xsl(
                        Core_Entity::factory('Xsl')->getByName('ФильтрВсеТоварыСайт15')
                     )
                     
                     ->groupsMode('none')
                     ->group(FALSE)
                     ->limit(500);
                  $Shop_Controller_Show
                     ->shopItems()
                     ->queryBuilder()
                     ->clearOrderBy()
                     ->orderBy('shop_items.shop_group_id');
                  $Shop_Controller_Show->show();
               }
            ?>

Кусок из XSL:

<xsl:template match="/shop">
      <!-- Есть товары -->
      <xsl:if test="shop_item">
         <!-- Выводим товары магазина -->
         <ul class="filter_products">
            <xsl:apply-templates select="shop_item"/>
         </ul>
      </xsl:if>
   </xsl:template>
<xsl:template match="shop_item">
      <li class="filter_product filter_product_{@id}">
            <a class="filter_product_link" href="{url}">
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </a>
            <span class="filter_product_price">
               <xsl:value-of disable-output-escaping="yes" select="price"/>
            </span>
            <span class="filter_product_sceplenie">
               <xsl:value-of select="shop_item/property_value[tag_name='sceplenie']/value"/>
            </span>
      </li>
   </xsl:template>


И забираю сформированный код из тела страницы))), это в подключаемом скрипте:
var filter_full = $('.filter_products').remove();


Бред конечно и уже вижу что страница грузится дольше, хотя всего 300 товаров...

1. Какой есть более короткий путь для получения всех товаров?
2. В каждом товаре доп. свойства - одно из них sceplenie, сейчас они не выводятся через упомянутый код, как их выводить?
Модератор
#
Re: Вывести все товары в переменную (массив)
volgastar,
в какую переменную? Вывести просто на PHP? тогда при чем здесь контроллеры, XSL и Javascript/ Опишите задачу подробнее, без цели непонятно зачем и что вы делаете.
#
Re: Вывести все товары в переменную (массив)
да, необходимо вывести в php, если имеется ввиду php код формирования шаблона, по сути я сейчас наверное так и вывожу, в тело страницы, т.е. формируется список всех товаров, но скрытый через css стили, затем скриптом собираю весь список в переменную и далее удаляю со страницы список товаров, он остается только в переменной.
мне нужен перечень всех товаров, к каждому товару перечень доп свойств - для создания фильтра по доп. свойствам.
Модератор
#
Re: Вывести все товары в переменную (массив)
Почему Вы просто через ORM не выводите товары определенного магазина?
#
Re: Re: Вывести все товары в переменную (массив)
Пример дадите?
upd/ ясно, как обычно(((..
Модератор
#
Re: Вывести все товары в переменную (массив)
Что как обычно? Если беретесь за программирование, будьте добры самые основы хоть посмотреть и из них составить код, главное с контроллерами и JS вы справились, а с простейшим ORM нет? Давайте попробуем. См. http://www.hostcms.ru/documentation/modules/core/orm/
#
Re: Re: Вывести все товары в переменную (массив)
Цитата:
главное с JS
- это да, я с ним почти родился))) джикверю вдоль и поперек и еще напильником по ней прохожусь за один проход))) орм пошел читать
Модератор
#
Re: Вывести все товары в переменную (массив)
покажите что получилось и мы вместе добьем эту задачу
#
Re: Вывести все товары в переменную (массив)
в шаблоне получилось вывести список товаров и пока что все.
надеюсь, то что ниже - это ОРМ?))
<?php
                        
            if (Core::moduleIsActive('shop'))
               {
                  
                     
                  $oCore_QueryBuilder_Select = Core_QueryBuilder::select()
                     ->from('shop_items')
                     ->where('active', '=', 1);
                  $aRows = $oCore_QueryBuilder_Select->execute()->asAssoc()->result();
                  echo '<select>';
                  foreach ($aRows as $row) {
                     echo '<option value="'.$row['id'].'">'.$row['name'].'</option>';
                  };
                  echo '</select>';
               }
            ?>
Модератор
#
Re: Вывести все товары в переменную (массив)
это QueryBuider. Так:
<?php    
if (Core::moduleIsActive('shop'))
{
   // Первый магазин
   $oShop = Core_Entity::factory('Shop', 1);
  
   $aShop_Items = $oShop->Shop_Items->getAllByActive(1);

   echo '<select>';
   foreach ($aShop_Items as $oShop_Item) {
      echo '<option value="'.$oShop_Item->id.'">'.$oShop_Item->name.'</option>';
   };
   echo '</select>';
}
?>
Авторизация