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

#
Re: Вывести все товары в переменную (массив)
Ясно. СПС! А где тут доп свойства?))) в тег select вывел для наглядности, вообще надо ж в переменную..
$aShop_Items - это массив, на сколько я понял?
да, в нем ID, название, картинки и прочее мало нужное((( доп свойств нет
Модератор
#
Re: Вывести все товары в переменную (массив)
Нигде там нет допсвойств, Вы в примере своем не показали никаких доп. св-в.
Теперь см. http://www.hostcms.ru/documentation/modules/properties/introduction/
#
Re: Вывести все товары в переменную (массив)
в первом посте было это  
<xsl:value-of select="shop_item/property_value[tag_name='sceplenie']/value"/>
, т.е. подразумевалось...
Модератор
#
Re: Вывести все товары в переменную (массив)
Создаете объект доп. св-ва и получаете его значение там же в цикле.
#
Re: Вывести все товары в переменную (массив)
Фух, пришлось попотеть)))
Вот что-то стало вырисоваться))):
<?php    
if (Core::moduleIsActive('shop'))
{
$oProperty = Core_Entity::factory('Property', 69);// Объект дополнительного свойства с идентификатором 69
$oShop = Core_Entity::factory('Shop', 3);
$aShop_Items = $oShop->Shop_Items->getAllByActive(1);
echo '<ul>';
foreach ($aShop_Items as $oShop_Item) {
echo '<li class="product_id_'.$oShop_Item->id.'">'.$oShop_Item->name.' - '.$oShop_Item->price;
$aPropertyValues = $oProperty->getValues($oShop_Item->id);
if (isset($aPropertyValues[0])) {echo ' - сцепление: '.$aPropertyValues[0]->value;};
echo ' <a href="'.$oShop_Item->path.'">link</a></li>';
};
echo '</ul>';
}
?>

Теперь два вопроса:
1. Так как напрямую вбил идентификатор дополнительного свойства (69), то выводится только оно. А если много свойств, то все перечислять будет не по фен-шую. Как вывести все свойства, но тобы их можно было опознать, т.е. например id рядом выводить или вообще ИМЯ свойства.
2.
$oShop_Item->path
- выводит конечную часть URL товара, а где взять полный URL от корня?
Модератор
#
Re: Вывести все товары в переменную (массив)
Подождите, изначальная задача была volgastar писал(а):
Хочу вывести все товары в переменную и дальше с ней работать. По 6 версии все перерыл, никто похоже не озадачивался)))
Пока что обхожусь костылем - вывожу в HTML страницы, затем через джиквери собираю в массив и сам код HTML удаляю)))

а теперь Вы на PHP генерируете HTML?! Может быть я не совсем понял задачу вывести на PHP товары в переменную?
#
Re: Вывести все товары в переменную (массив)
все также и остается! вывожу в html просто для наглядности. каждый раз там по массиву глазами бегать не гуд, столько инфы выводится....
Модератор
#
Re: Вывести все товары в переменную (массив)
volgastar,
1. После закрывающихся операторных скобок } не нужно ставить точку с запятой.
2. Если много св-в, то создаете соответствующее количество объектов и получаете значения. Если нужные все значения всех свойств товара, то есть другой способ, у объекта товара вызываете метод getPropertyValues(), если нужны не все значения свойств, а только некоторых свойств, то указываете идентификаторы этих свойств:
getPropertyValues(TRUE, array(69, 70, 71))

<?php
if (Core::moduleIsActive('shop'))
{
   // Объект дополнительного свойства с идентификатором 69
   $oProperty = Core_Entity::factory('Property', 69);
   
   $oShop = Core_Entity::factory('Shop', 3);
   
   $aShop_Items = $oShop->Shop_Items->getAllByActive(1);
   
   echo '<ul>';
   foreach ($aShop_Items as $oShop_Item)
   {
      echo '<li class="product_id_'.$oShop_Item->id.'">'.$oShop_Item->name.' - '.$oShop_Item->price;
      
      $aPropertyValues = $oProperty->getValues($oShop_Item->id);
      
      if (isset($aPropertyValues[0]))
      {
         echo ' - сцепление: '.$aPropertyValues[0]->value;
      }
      
      // А теперь все значания свойств
      $aAllPropertyValues = $oShop_Item->getPropertyValues();
      
      foreach ($aAllPropertyValues as $oPropertyValue)
      {
         // Ситуация с доп. св-вом типа файл не обрабатыывается!
         echo '<br />Св-во: ' . $oPropertyValue->property_id . ' значание: ' . htmlspecialchars($oPropertyValue->value);
      }
      
      echo ' <a href="'.$oShop_Item->path.'">link</a></li>';
   }
   echo '</ul>';
}
#
Re: Вывести все товары в переменную (массив)
ого, супер! спасибо!
1. почему-то выводит все нормально,  а основной контент слетел...
2.
.$oShop_Item->path
так и выводит неполный путь, где почитать?)))
Модератор
#
Re: Вывести все товары в переменную (массив)
1. Может из-за большого количества br-ов.
2. $oShop_Item->Shop->Structure->getPath() . $oShop_Item->getPath()
Авторизация