Работа с дополнительными свойствами в HostCMS v. 6

Re: Работа с дополнительными свойствами в HostCMS v. 6
почему-то ругается Parse error: syntax error, unexpected T_STRING, expecting '' in /home/u157042/koketkaproru/www/templates/template14/template.htm on line 122
<div class="left_content">

   <div class="right_box">
      <?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('МагазинГруппыТоваровСайт34')
            )
            ->groupsMode('tree')
            //->itemsForbiddenTags(array('text'))
            ->group(0)
            ->limit(0)
            ->show();

         // Производители
         $oShop_Producer_Controller_Show = new Shop_Producer_Controller_Show(
            Core_Entity::factory('Shop', '3')
         );

         $oShop_Producer_Controller_Show
         ->xsl(
            Core_Entity::factory('Xsl')->getByName('МагазинСписокПроизводителейСайт34')
         )
         ->limit(20)
         ->show();
      }
      ?>
    </div>

<div class="clear"><br/><br/><br/></div>

   <?php

   // Новости
   if (Core::moduleIsActive('informationsystem'))
   {
      $Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
         Core_Entity::factory('Informationsystem', '15')
      );
      $Informationsystem_Controller_Show
         ->xsl(
            Core_Entity::factory('Xsl')->getByName('СписокНовостейНаГлавнойСайт34')
         )
         ->groupsMode('none')
         ->itemsForbiddenTags(array('text'))
         ->group(FALSE)
         ->limit(2)
         ->show();
   }


   ?>

<div id="vk_groups"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 0, width: "360", color1: 'FFFFFF', color2: '2B587A', color3: '5B7FA6'}, 69024334);
</script>
<br/>
<script type="text/javascript" src="//yandex.st/share/share.js"
charset="utf-8"></script>
<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,gplus" data-yashareTheme="counter"></div>
</div>



<div class="right_content">

   
       <div class="cart" id="little_cart">
   <?php
   // Краткая корзина
   $Shop_Cart_Controller_Show = new Shop_Cart_Controller_Show(
      Core_Entity::factory('Shop', '3')
   );
   $Shop_Cart_Controller_Show
      ->xsl(
         Core_Entity::factory('Xsl')->getByName('МагазинКорзинаКраткаяСайт34')
      )
      ->couponText(isset($_SESSION) ? Core_Array::get($_SESSION, 'coupon_text') : '')
      ->show();
   ?>
   </div>


<div class="clear"></div>


<?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  ('МагазинКаталогТоваровНаГлавнойСпецПред')
                   )
                   ->groupsMode  ('none')
                   //->itemsForbiddenTags  (array  ('text'))
                   ->group  (FALSE)
                    ->itemsProperties  (TRUE)
                   ->limit  (3);
              
// Объединение с нужной таблицей свойств
    $Shop_Controller_Show
        ->ShopItems  ()
        ->queryBuilder  ()
->where  ('shop_items.active', '=', 1)
  ->clearOrderBy  ()
  ->orderBy  ('RAND  ()') // в случайном порядке

        ->leftJoin  ('shop_item_properties', 'shop_items.shop_id', '=', 'shop_item_properties.shop_id')
        ->leftJoin  ('property_value_ints', 'shop_items.id', '=', 'property_value_ints.entity_id',
           array  (
           array  ('AND' ≥ array  ('shop_item_properties.property_id', '=', Core_QueryBuilder::expression  ('`property_value_ints`.`property_id`'))) // РУГАЕТСЯ НА ЭТУ СТРОКУ
           )
        )
        // Идентификатор дополнительного свойства
        ->where  ('shop_item_properties.property_id', '=', 64) // здесь указываете id вашего дополнительного свойства
         // Значание дополнительного свойства
        ->where  ('property_value_ints.value', '>', '0')
        ->groupBy  ('shop_items.id')
        // Количество свойств
        ->having  ('COUNT  (shop_item_properties.shop_id)', '=', 1);              
         $Shop_Controller_Show->show  ();
         }        
         ? >


<?php
      Core_Page::instance()->execute();
   // Новинки
   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('МагазинСписокНовинокНаГлавнойСайт34')
         )
         ->groupsMode('none')
         //->itemsForbiddenTags(array('text'))
         ->group(FALSE)
         ->limit(6);

      $Shop_Controller_Show
         ->shopItems()
         ->queryBuilder()
         ->clearOrderBy()
         ->orderBy('shop_items.id', 'DESC');

      $Shop_Controller_Show->show();
   }

      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('МагазинПоказТоваровСоСкидкойСайт34')
            )
            ->groupsMode('none')
            //->itemsForbiddenTags(array('text'))
            ->group(FALSE)
            ->limit(3);

         $Shop_Controller_Show
            ->shopItems()
            ->queryBuilder()
            ->join('shop_item_discounts', 'shop_item_discounts.shop_item_id', '=', 'shop_items.id')
            ->join('shop_discounts', 'shop_discounts.id', '=', 'shop_item_discounts.shop_discount_id')
            ->where('shop_discounts.active', '=', 1)
            ->where('shop_discounts.start_datetime', '<', Core_Date::timestamp2sql(time()))
            ->where('shop_discounts.end_datetime', '>', Core_Date::timestamp2sql(time()))
            ->where('shop_discounts.deleted', '=', 0)
            ->clearOrderBy()
            ->orderBy('RAND()');

         $Shop_Controller_Show->show();
      }
   ?>

   <div class="clear"></div>
</div>

<!--end of right content-->
Re: Работа с дополнительными свойствами в HostCMS v. 6
проблему решил, спасибо
array  ('AND' array  ('shop_item_properties.property_id', '=', Core_QueryBuilder::expression  ('`property_value_ints`.`property_id`'))

заменил ≥ на =>
Re: Работа с дополнительными свойствами в HostCMS v. 6
проблему решил, спасибо
array  ('AND' array  ('shop_item_properties.property_id', '=', Core_QueryBuilder::expression  ('`property_value_ints`.`property_id`'))

заменил ≥ на =>
Re: Работа с дополнительными свойствами в HostCMS v. 6
Здравствуйте, подскажите кто может, уже весь день не могу решить задачу, получаю я например список товаров по определенному производителю, и мне список фильтров по доп свойствам надо сформировать в зависимости от того какие свойства товаров присутствуют у данных товаров. Т.е. грубо говоря есть у меня 2 производителя "рога" и "копыта". "Рога" производят чай который имеет доп свойство тип чая и имеет 2 товара 1 с типом зеленый другой с типом черный, а фирма "Копыта" производит только 1 чай типа черный. Вот если я применяю фильтр производителя "рога", то у меня формируется список фильтров тип чая и там 2 параметра черный и зеленый, а если я применяю фильтр производителя "копыта", то я получаю 1 товар для и доступен тот же фильтр типа чая только показан всего 1 параметр черный....
Re: Работа с дополнительными свойствами в HostCMS v. 6
Добрый вечер, подскажите как при выводе товаров из подгрупп также в данных товарах выводить их дополнительные свойства.
Сами товары вывожу способом указанным ранее в данной переписке:
class My_Shop_Controller_Show extends Shop_Controller_Show
{
protected function _groupCondition()
{
if ($this->group)
{
$this
->shopItems()
->queryBuilder()
->join('shop_groups', 'shop_groups.id', '=', 'shop_items.shop_group_id', array(
array('AND' => array('(')),
array('' => array('shop_groups.parent_id', '=', $this->group)),
array('OR' => array('shop_groups.id', '=', $this->group)),
array('' => array(')'))
)
);
}
else
{
$this
->shopItems()
->queryBuilder()
->where('shop_items.shop_group_id', '=', 0);
}

return $this;
}
}

//$Shop_Controller_Show = new Shop_Controller_Show($oShop);
$Shop_Controller_Show = new My_Shop_Controller_Show($oShop);


Модератор
Re: Работа с дополнительными свойствами в HostCMS v. 6
inflame,
http://www.hostcms.ru/api6/classes/Shop_Controller_Show.html
itemsProperties(TRUE|FALSE|array()) выводить значения дополнительных свойств товаров, по умолчанию FALSE. Может принимать массив с идентификаторами дополнительных свойств, значения которых необходимо вывести.
Re: Работа с дополнительными свойствами в HostCMS v. 6
Да, когда выводятся товары из категории - свойства присутствуют в XML, но когда вывод идет из подкатегорий, то свойств в XML у таких товаров нет.
Модератор
Re: Работа с дополнительными свойствами в HostCMS v. 6
inflame,
тогда лучше в поддержку.
Re: Работа с дополнительными свойствами в HostCMS v. 6
Здравствуйте! Хочу для товаров использовать дополнительные свойства, с целью указать товару "старая цена" и через стили сделать зачеркнутой. Как это можно реализовать? Есть ли пошаговая инструкция? То что в первом сообщении мне лично совсем не понятно.
Спасибо!
Re: Работа с дополнительными свойствами в HostCMS v. 6
Добрый день!

добавила дополнительные свойства к магазине (в админке они видны, все ок) версия 6 малый бизнес

в шаблоне товара в сопутствующих товарах, мне нужно вывести малое изображение дополнительного свойства, делаю так:
<xsl:template match="associated/shop_item">
      <!-- Получаем ID родительской группы и записываем в переменную $group -->
      <xsl:variable name="group" select="/shop/group"/>
      
      <li>         
         <a class="sit-preview" href="{url}"><img alt="{name}" src="{dir}{property_value[tag_name='preview']/file_small}" data-preview-url="{dir}{image_large}" data-item-name="{name}" data-item-cost="{price}" data-item-category="{/shop/name} / {/shop//shop_group[@id=$group]/name}" data-item-author="{description}" data-title="{name}" /></a>
         
      </li>
   </xsl:template>


в xml - свойства на странице товара не отображаются:

   <shop_item_properties></shop_item_properties>


в типовой странице ничего не меняла...

вопрос решен!!

нужно было в админке - включить доступ подчиненным!!
Авторизация