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

#
Re: Контроллеры в клиентском разделе
Цитата:
->addEntity(
    Core::factory('Core_Xml_Entity'
       ->name('my_xml_tags'
       ->value('mytags'
         )

А как положить его не в корень, а в определенное место?
Модератор
#
Re: Контроллеры в клиентском разделе
Такой возможности нет. Если Вам нужно добавлять данные к кой-либо модели, используйте хуки.
Модератор
#
Re: Контроллеры в клиентском разделе
Показ самого дешевого товара
<?php

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('ДляГлавной')
      )
      ->groupsMode('tree')
      ->itemsProperties(TRUE)
      ->limit(1);

   // Получаем список валют магазина
   $aShop_Currencies = Core_Entity::factory('Shop_Currency')->findAll();

   $query_currency_switch = 'price';
   foreach ($aShop_Currencies as $oShop_Currency)
   {
      // Получаем коэффициент пересчета для каждой валюты
      $currency_coefficient = Shop_Controller::instance()->getCurrencyCoefficientInShopCurrency(
         $oShop_Currency, $oShop->Shop_Currency
      );

      $query_currency_switch = "IF (`shop_items`.`shop_currency_id` = '{$oShop_Currency->id}', IF (shop_discounts.percent, price * (100 - shop_discounts.percent) * {$currency_coefficient} / 100, shop_items.price * {$currency_coefficient}), {$query_currency_switch})";
   }

   $Shop_Controller_Show->shopItems()
      ->queryBuilder()
      ->select(array(Core_QueryBuilder::expression($query_currency_switch), 'absolute_price'));
      ->clearOrderBy()
      ->orderBy('absolute_price', 'ASC');

   $Shop_Controller_Show->show();
}
?>
Модератор
#
Re: Контроллеры в клиентском разделе
Пример добавления в контроллер показа магазина сторонних данных, например, показа ИС:

Вывод ИС оборачиваете в конструкцию:
ob_start();

// Здесь показ ИС

$content = ob_get_clean();


Далее добавляете контроллеру перед показом
$Shop_Controller_Show->addEntity(
   Core::factory('Core_Xml_Entity')
      ->name('my_is')
      ->value($content)
)
->show();


Данные будут доступны в XML в теге /shop/my_is, выводите соответственно
<xsl:value-of disable-output-escaping="yes" select="/shop/my_is"/>
#
Re: Контроллеры в клиентском разделе
Создаю список из ИГ и ИЭ.
Цитата:

*Группа 1
   **1 Подгруппа
      ***1 Элемент
      ***2 Элемент
      ***3 Элемент
      ***4 Элемент
   **2 Подгруппа
      ***1 Элемент
      ***2 Элемент
      ***3 Элемент
      ***4 Элемент
*Группа 2
   **1 Подгруппа
      ***1 Элемент
      ***2 Элемент
      ***3 Элемент
      ***4 Элемент


Вывожу через
->groupsMode('all';
->group(FALSE);

В итоге всё нормально когда нет страниц.
Когда появляются страницы - начинается чехарда.
1) Элементы сортируются независимо от подгрупп.
Например, первая страница:
Цитата:
*Группа 1
   **1 Подгруппа
      ***1 Элемент
   **2 Подгруппа
      ***1 Элемент
*Группа 2
   **1 Подгруппа
      ***1 Элемент
*Группа 1
   **1 Подгруппа
      ***2 Элемент
   **2 Подгруппа
      ***2 Элемент


Вторая страница:
Цитата:
*Группа 2
   **1 Подгруппа
      ***2 Элемент
   **2 Подгруппа
      ***2 Элемент
*Группа 1
   **1 Подгруппа
      ***3 Элемент
   **2 Подгруппа
      ***3 Элемент
*Группа 2
   **1 Подгруппа
      ***3 Элемент


2) Кодгда захожу в подгруппу, то XML формируется всё равно из общего списка, и соответственно разрезается на страницы.
При этом оказывается, что на первой странице подгруппы вообще ничего нет, потому что в XML только элементы предыдущей подгруппы, а на эту эелементов "не хватило".

Как можно вывести все ИЭ одной группы, когда элементы расположены во вложенных подгруппах?
#
Re: Контроллеры в клиентском разделе
А вопрос всё ещё актуален...
#
Re: Контроллеры в клиентском разделе
Ладно, спрошу по-другому. Как должно выглядеть деление на страницы, при выводе дерева элементов?
Модератор
#
Re: Контроллеры в клиентском разделе
Stepan0v,
так а какие страницы при таком выводе? Даже не представляю, как Вы их собрались делить?!
#
Re: Re: Контроллеры в клиентском разделе
Ну, представьте, что дерево очень длинное.
У меня библиография: семь разделов, внутри разделов папки с годами, внутри папок - книги.
<items_total_count>291</items_total_count>
   <subgroups_count>7</subgroups_count>
   <subgroups_total_count>79</subgroups_total_count>


Если выводить всё это сразу, то получается очень много.
Логично сделать страницы.
На первой странице выводится, напр, 20 элементов. Допустим 15 из них входят в первую группу и пять во вторую, а всего во второй 10 элементов.
Значит на следующей странице будет оставшиеся 5 элементов второй группы, дальше элементы третьей группы и т.д.

Нужно только чтобы деление страниц было не по общему списку ИЭ, независимо от групп (как сейчас), а в зависимости от группы, т.е. сначала все элементы первой группы, потом второй и т.д.
Модератор
#
Re: Контроллеры в клиентском разделе
Тогда наследовать и переписывать логику контроллера, чтобы он выбирал по N из каждой группы, другого варианта не вижу.
Авторизация