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


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

Логика вывода итемов

вывод итемов другой порядок итемов

Лучший Ответ Андрей , 08 May 2013 - 13:52

Спасибо. Буду пробовать. О результатах отпишусь. Возможно кому-то из пользователей понадобится.

Спасибо. Все сделал. Оказалось не сложно если разобраться.

 

Функция 

protected function _getItemOrder($order) {
...
...
...
...$money        = false;
if (($index = array_search('_money', $order)) !== false) {
$money = true;
unset($order[$index]);
}....
....
....

foreach ($order as $element) {
if (strpos($element, '_item') === 0) {
$var = str_replace('_item', '', $element);
if ($alphanumeric) {
$result[1] = $reversed == 'ASC' ? "a.$var+0<>0 DESC, a.$var+0, a.$var" : "a.$var+0<>0, a.$var+0 DESC, a.$var DESC";
}
elseif($money) {
$result[1] = $reversed == 'ASC' ? "a.order+0<>0 DESC, a.order+0, a.order" : "a.order+0<>0, a.order+0 DESC, a.order DESC";
} else {
$result[1] = $reversed == 'ASC' ? "a.$var" : "a.$var DESC";
}}}}

Файл zooitemorder.php

 

 

$html[] = '<div>';
$id = "{$control_name}[{$name}][_money]";
$html[] = "<input type=\"checkbox\" id=\"{$id}\" name=\"{$control_name}[{$name}][]\"" . (in_array('_money', $item_order) ? 'checked="checked"' : '') . ' value="_money" />';
$html[] = '<label for="'.$id.'">' . JText::_('Money sorting') . '</label>';
$html[] = '</div>';

Таблицу #__zoo_item - 

Добавил столбец order.

 

Вообще работает, но в бою еще не проверенно.

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 13

#1 Андрей

Андрей

Отправлено 08 May 2013 - 10:03

Здравствуйте.

Необходимо изменить вывод итемов в категории. Точнее сделать ORDER BY по новой колонке. Подскажите, пожалуйста, где находятся запросы? Они JBzoo или Zoo-ные?


  • 0

#2 SmetDenis

SmetDenis

Отправлено 08 May 2013 - 10:50

Сортировка материалов происходит в Zoo, JBZoo лишь использует готовое.

 

посмотрите функцию getByCategory или ключевое слово "$order" в файле

administrator\components\com_zoo\tables\item.php


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



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


#3 Андрей

Андрей

Отправлено 08 May 2013 - 10:52

Сортировка материалов происходит в Zoo, JBZoo лишь использует готовое.

 

посмотрите функцию getByCategory или ключевое слово "$order" в файле

administrator\components\com_zoo\tables\item.php

Спасибо.


  • 0

#4 SmetDenis

SmetDenis

Отправлено 08 May 2013 - 10:56

Сейчас подумал и решил что стоит показать, где вызываются эти функции

 

components\com_zoo\controllers\default.php - метод category()

в районе комментария "get categories and items"


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



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


#5 Андрей

Андрей

Отправлено 08 May 2013 - 11:28

В xml файле я смотрю параметров нет для item_order. Получается они где-то создаются в php? И где их обработка происходит?


  • 0

#6 SmetDenis

SmetDenis

Отправлено 08 May 2013 - 12:00

Не совсем понял.

О каком xml файле идет речь?


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



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


#7 Андрей

Андрей

Отправлено 08 May 2013 - 12:03

application.xml - jbzoo .        

<param name="item_order" type="zooitemorder" default="_itemname" label="JBZOO_ITEM_ORDER"

  description="JBZOO_ITEM_ORDER_DESC"/>
 
Не понятно откуда берутся параметры для выбора. Там элементы из ядра вроде.  Как мне добавить свой параметр так и не понял.

Сообщение отредактировал Андрей: 08 May 2013 - 12:05

  • 0

#8 SmetDenis

SmetDenis

Отправлено 08 May 2013 - 12:07

это генерируется самим Zoo. параметры сортировки берутся из набора полей всех типов материала

 

html для поля сортировки zooitemorder создается тут

administrator\components\com_zoo\helpers\fields\zooitemorder.php


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



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


#9 Андрей

Андрей

Отправлено 08 May 2013 - 12:10

На Ваш опытный взгляд, как лучше добавить новую сортировку?

Задача у меня: Сортировка всех итемов из любых типов по одному полю из таблицы.


Сообщение отредактировал Андрей: 08 May 2013 - 12:13

  • 0

#10 SmetDenis

SmetDenis

Отправлено 08 May 2013 - 12:14

В принципе вы на верном пути.

 

С ходу как лучше не скажу, нужно детально изучать код.

Но грубо говоря так

 

Выделенный фрагмент клонировать, и добавить свою переменную в виде checkbox

i211c9efe5fca_200x0.png

 

Далее тут изменить функцию сортировки _getItemOrder() и изменить сам текст запроса внутри getByCategory()

administrator\components\com_zoo\tables\item.php


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



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






Темы с аналогичным тегами вывод итемов, другой порядок итемов

Click to return to top of page in style!