Перейти к содержимому


Фотография
- - - - -

Как получить тип?

сортировка

Сообщений в теме: 6

#1 Flowerchek

Flowerchek

Отправлено 01 November 2016 - 20:11

Делала сортировку по этому материалу.

Но сортировка необходима и для других типов. Подскажите, пож-та, как в контроллере и в search получить тип каталога, чтобы была возможность подставить значения для цены конкретного типа?

Я говорю про эти файлы:

components\com_zoo\controllers\default.php

media\zoo\applications\jbuniversal\framework\controllers\search.php


  • 0

#2 SmetDenis

SmetDenis

Отправлено 01 November 2016 - 20:17

В поиске тип будет передан в реквесте.

 

Т.е

$type = $this->app->jbrequest->get('type');

 

Контроллер default работает одновременно со всеми типами материалов, поэтому привязывать его к одному типу - сомнительная идея.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Flowerchek

Flowerchek

Отправлено 01 November 2016 - 20:25

Неа, не выводит(

Может мы немного о разных вещах говорим?

У меня имеется такой код:

if ($this->app->zoo->getApplication()->id == 1) { //проверяем в каком приложении мы находимся
   if ($_SESSION['totalorder'] == "") {$_SESSION['totalorder'] = 'price_asc';}
   //Получаем переменную для направления сортировки
   if (isset($_GET['totalorder'])) {
    $_SESSION['totalorder'] = $_GET['totalorder'];
   }
   if (isset($_SESSION['totalorder'])) {
    switch ($_SESSION['totalorder']) {
     case 'price_asc':
      switch ($_GET['type']) {
        case 'pilomaterialy':
          $priceasc = '_jbzoo_0_field_4522bb5c-5823-4497-b385-773a2e5a5971___value';
          break;
        case 'plinth':
          $priceasc = '_jbzoo_0_field_66b5fde4-ba12-49fd-b720-e2f1cc1de2ca___value';
          break;
        case 'ladder':
          $priceasc = '_jbzoo_0_field_a8fb2b45-f04b-48e7-b102-e50d4afea7f5___value';
          break;
        case 'gvozdeck':
          $priceasc = '_jbzoo_0_field_c7824431-473a-41de-8da8-c9f2680b5953___value';
          break;
        case 'gvozdeck-klyaim':
          $priceasc = '_jbzoo_0_field_09c7b35a-e66b-497d-a3bd-22085e733a34___value';
          break;
        case 'fixture':
          $priceasc = '_jbzoo_0_field_27dbabb9-495e-4eca-a994-9c25e993c282___value';
          break;
        case 'briquette':
          $priceasc = '_jbzoo_0_field_ae8853a7-c19c-4a00-a1bd-1ffa7b898581___value';
          break;
      }
     
      $this->item_order = array(
      $priceasc,
      '_jbzoo_0_mode_n',
      '_jbzoo_0_order_asc'
      );
     break;

и т.д.

 

Мне нужно получить тип pilomaterial, ladder и т.д. Но, понятное дело, изначально мой гет-запрос пуст. Поэтому и спрашиваю, как получить тип стандартным способом.

 

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


  • 0

#4 Flowerchek

Flowerchek

Отправлено 02 November 2016 - 14:17

Денис, у меня на форме http://y9997682.bget...l/vagonka-shtilсортировки по цене и популярности - это просто ссылки, а не кнопки, поэтому я не могу получить данные из реквеста.

Помогите, пож-та!! Как мне получить тип без отправки формы?

 

Меня даже устроит, если вы подскажете, как получить тип в файле jbuniversal/templates/catalog/category.php


Сообщение отредактировал Flowerchek: 02 November 2016 - 14:19

  • 0

#5 SmetDenis

SmetDenis

Отправлено 02 November 2016 - 15:53

По ссылке - это страница категорий.

В категории могут лежать одновременно разные типы материалов.

Поэтому нельзя однозначно определить тип материала. Поэтому нет таких функций.

 

Может стоить сделать логическую привязку типа материала к категории. Категорию получать из реквеста (this->app->jbrequest->getSystem('category')) и уже на основе этого делать вывод в коде. Например, для категории id=42 тип "pilomaterial"


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 Flowerchek

Flowerchek

Отправлено 02 November 2016 - 19:25

Денис, тогда я не понимаю, почему в случае с поиском мы можем получать тип (пример из файла media\zoo\applications\jbuniversal\framework\controllers\search.php):

$type = $this->app->jbrequest->get('type');

$items       = $searchModel->search($elements, $logic, $type, $appId, $exact, $offset, $limit, $order);
$itemsCount  = $searchModel->searchCount($elements, $logic, $type, $appId, $exact);

 

а в том же файле, но при сортировке, Вы говорите, что нельзя однозначно определить тип материала. Почему так?

Т.е. по сути мы уже определили тип, но эта конструкция срабатывает лишь в том случае, когда применен поиск по фильтру.

 

По ссылке - это страница одной конкретной категории определенного типа.

 

И да, я не могу получать что либо из реквеста, т.к. в случае с сортировкой, а не фильтром(поиском), у меня форма не отправляется. Это обычные ссылки с get-параметрами.


Сообщение отредактировал Flowerchek: 02 November 2016 - 19:26

  • 0

#7 SmetDenis

SmetDenis

Отправлено 02 November 2016 - 19:40

Наш фильтр ищет всегда в рамках одного типа материала. Это указывается в форме скрытым полем. В этом поле вставляется настройка из модуля Joomla.

 

Категория же умеет выводить сразу любые типы материалов, т.е. нет никакой привязки к типам. 

Поэтому я предложил альтернативный способ.

 

Категорию можно получить из реквеста. И далее сделать собственную карту соотношений по id категорий к алиасам типов.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.






Темы с аналогичным тегами сортировка

Click to return to top of page in style!