Контроллеры в клиентском разделе

#
Re: Контроллеры в клиентском разделе
Скажите, а что в xml нужно поправить, чтобы группы и подгруппы (не в меню) выводились на главной к примеру вот как здесь - http://www.stroyshopper.ru/   Я как понял в макет выводить через доп свойство групп как писал многоуважаемый alexander.egorov, подскажите пожалуйста c xml как быть?
#
Re: Контроллеры в клиентском разделе
napishu писал(а):
alexander.egorov , скажите пожалуйста, а как сделать так чтобы в xml попадали свойства этих групп?
Любые, которые есть, а то группы то выводятся теперь а свойства еще нужно их выводить.

Что-то в 5рке такие вещи как-то легче делались -))))



alexander.egorov, HostCMS

В общем, методом изучения у меня получилось вывести в xml допсвойства (значения) групп.

После

foreach($aShop_Groups as $oShop_Group)
{
   // Добавляем потомком XML-сущности
   $Shop_Controller_Show->addEntity(
      $oShop_Group->clearEntities()
   );
}



Я добавила:

$aPropertyValues = $oShop_Group->getPropertyValues();
  foreach($aPropertyValues as $oPropertyValue) {
    $Shop_Controller_Show->addEntity(
    $oPropertyValue->clearEntities()
    );
  }
}



Собственно насколько это было верно, правильно?
C php не очень поэтому возможно можно было сделать как-то иначе еще на стадии добавления самих групп в xml


Мне не очень нравится дерево, всмысле что свойства не в узлах групп.


  <shop_group id="300">
   ****   
   </shop_group>
   <property_value id="514">
      <property_id>62</property_id>
      <entity_id>300</entity_id>
      <file_name>1.jpg</file_name>
      <file_description></file_description>
      <file_small_name></file_small_name>
      <file_small_description></file_small_description>
      <property_dir_id>0</property_dir_id>
      <tag_name>main_slider_photo</tag_name>
      <file size="51839" width="313" height="220">shop_property_file_300_514.jpg</file>
      <file_small></file_small>
   </property_value>
   <property_value id="130">
      <property_id>63</property_id>
      <entity_id>300</entity_id>
      <property_dir_id>0</property_dir_id>
      <tag_name>color</tag_name>
   </property_value>

        <shop_group id="500">
   ****   
   </shop_group>
        <property_value id="130">
      <property_id>63</property_id>
      <entity_id>500</entity_id>
      <property_dir_id>0</property_dir_id>
      <tag_name>color</tag_name>
   </property_value>
изучаю hostcms 6
Модератор
#
Re: Контроллеры в клиентском разделе
napishu,

Блок:

foreach($aShop_Groups as $oShop_Group)
{
   // Добавляем потомком XML-сущности
   $Shop_Controller_Show->addEntity(
      $oShop_Group->clearEntities()
   );
}


просто заменяется на:

foreach($aShop_Groups as $oShop_Group)
{
   // Добавляем потомком XML-сущности
   $Shop_Controller_Show->addEntity(
      $oShop_Group->clearEntities()->showXmlProperties(TRUE)
   );
}


Т.е. добавляется параметр showXmlProperties

Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Модератор
#
Re: Контроллеры в клиентском разделе
ixoid,
Не совсем понял Ваш вопрос. Мое решение не делает иерархию групп. Т.е. все группы, отобранные по свойству будут на одном уровне. Если нужна именно иерархия, то просто используйте стандартный Shop_Controller_Show, где ->groupsMode('all';
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Контроллеры в клиентском разделе
Да у меня и так вроде стоит ->groupsMode('all' , но выводится все стандартно.

//Каталог товаров

      if (Core::moduleIsActive('shop'))
      {
         $Shop_Controller_Show = new Shop_Controller_Show(
            Core_Entity::factory('Shop', 1)
         );
         $Shop_Controller_Show
            ->xsl(
               Core_Entity::factory('Xsl')->getByName('МагазинКаталогТоваров')
            )            
            ->group(0)
            ->limit(0)
            ->groupsMode('all')                                
            ->show();
      }   


А как можно добиться вывода не только групп первого уровня, но и второго как на сайте в предыдущем моём посте?
-
#
Re: Контроллеры в клиентском разделе
Подскажите люди добрые, что нужно дописать в xml для вывода подгрупп второго уровня?

Вот нашёл в комментах на сайте
Цитата:
Внутри shop_group вызвать еще раз , при этом должен быть установлен соответствующий groupsMode()

->groupsMode('all' стоит как надо а вот

Цитата:
Внутри shop_group вызвать еще раз

а вот тут мозгов не хватает

<!-- Шаблон для групп товара -->
   <xsl:template match="shop_group">
      <ul>
         <xsl:for-each select=". | following-sibling::shop_group[position() &lt; $n]">
            <li>
               <xsl:if test="image_small!=''">
                  <a href="{url}" target="_blank">
                     <img class="item-top-img" src="{dir}{image_small}" align="middle"/>
            </a><xsl:text> </xsl:text></xsl:if>
         <a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="shop_group"><xsl:value-of disable-output-escaping="yes" select="name"/></a><xsl:text> </xsl:text><span class="shop_count"><xsl:value-of select="items_total_count"/></span>
            </li>
            
         </xsl:for-each>
         
      </ul>
      
   </xsl:template>
#
Re: Контроллеры в клиентском разделе
подскажите как доп. ограничения через QueryBuilder использовать для клиента на фронте - т.е. тобы клиент из формоки мог сам выбирать ограничения, простейший фильтр по свойствам
Модератор
#
Re: Контроллеры в клиентском разделе
khp-volga,
Нарисовать форму, написать обработку, не забывая о безопасности.
#
Re: Контроллеры в клиентском разделе
форма нарисована, дальше я в тупике, ибо:
1. надо в выпадающие селекты внести значения всех дополнительных свойств, чтобы было из чего выбирать клиенту, свойств всего пять, целое число.
2. согласно тому, что выбрал клиент в выпадающем списке - показать ему соответствующие элементы инфосистемы, т.е.е те элементы где есть выбранное значение свойства

я уж прикидываю через джиквери все сделать, всего 50-60 элементов будет в каждом по пять свойств...
через джикверевский .load копирнуть со страницы инфосистемы все элементы и далее тасовать их через .hide() и .show()
но хочется по уму)))

фактически получить массив

элемент ->
  вес -> значение,
  цвет -> значение,
  длина -> значение
.....


дальше будет легче)))
Модератор
#
Re: Контроллеры в клиентском разделе
Не совсем ясно в чем тупик. В самом выборе свойств инфоэлементов?
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Авторизация