0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 2706 Просмотров
*

bcool

  • Новичок
  • 7
  • 0 / 0
День добрый! Я облазил почти всё возможное в сети, но так и не нашел модуль или хак, который способен выводить статьи из каталога ZOO 2.0 в стиле ТОП 10 (согласно количеству звезд/голосов статьи). Модуль поддерживает сортировку по просмотрам/хитам, но это не то, что требуется. Прошу знающих людей помочь в решении данной проблемы. А если есть уже готовые решения было бы просто замечательно.
Недавно нашел платный модуль рейтинга для старой версии Zoo Pro: http://www.cmstactics.com/index.php/documentation/1-documentation/21-zoo-item-module-zim. Приобрел его. Тестировал на компоненте Zoo Pro, работает. Но на ZOO 2.0 работать отказывается. Могу предложить следующее: модуль платный, но уже приобретен мною. Если найдется хороший человек, который готов изменить этот модуль для последней версии, то я выложу его здесь. А когда будет готов модуль рейтинга для ZOO 2.0, то поделимся со всем миром бесплатно. Думаю, многие будут рады наличию у себя в коллекции модуля рейтинга.
*

delames

  • Захожу иногда
  • 141
  • 10 / 0
  • Решаю программные вопросы за $ - Обращайтесь!
Если тебе это что-то скажет..

   $query = "SELECT a.*, AVG(c.value)"
         ." FROM ".$this->getTableName()." AS a"
         ." LEFT JOIN ".ZOO_TABLE_CATEGORY_ITEM." AS b ON a.id = b.item_id"
         ." LEFT JOIN ".ZOO_TABLE_RATING." AS c ON a.id = c.item_id"
         ." WHERE a.application_id = ".(int) $application_id
         ." AND b.category_id ".(is_array($category_id)? " IN (".implode(",", $category_id).")" : " = ".(int) $category_id)   
         ." AND a.access <= ".(int) $access_id
         .($published == true ? " AND a.state = 1"      
         ." AND (a.publish_up = ".$null." OR a.publish_up <= ".$now.")"
         ." AND (a.publish_down = ".$null." OR a.publish_down >= ".$now.")": "")
         ." GROUP BY a.id"
         ." ORDER BY AVG(c.value) DESC"
         .(($limit ? " LIMIT ".(int)$offset.",".(int)$limit : ""));
*

bcool

  • Новичок
  • 7
  • 0 / 0
спасибо, попробую внедрить. если что отпишусь
*

bcool

  • Новичок
  • 7
  • 0 / 0
Вставил вышеуказанный запрос к бд в код и получил следующее:
Код
Fatal error: Uncaught YDatabase::queryObjectList failed. (Unknown column 'c.value' in 'field list' SQL=SELECT a.*, AVG(c.value) FROM jos_zoo_item AS a WHERE a.application_id = 2 AND a.access <= 0 AND a.state = 1 AND a.type = 'online-shops-catalog' AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2010-09-23 07:30:23') AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2010-09-23 07:30:23') ORDER BY a.hits DESC LIMIT 0, 4) thrown in C:\wamp\www\sitename\administrator\components\com_zoo\framework\database.php  on line 83

поковырявшись в файлах компонента zoo нашел файл, отвечающий за вывод статей по дате/просмотрам/альфаиндексу в модуле mod_zooitem. Он находится в root/administrator/components/com_zoo/helpers/zoomodule.php. Приведу вырезку кода:
Код
// set query options
$conditions =
     "a.application_id = ".(int) $app->id
." AND a.access <= ".(int) $access_id
." AND a.state = 1"
." AND a.type = '?'"
." AND (a.publish_up = ".$null." OR a.publish_up <= ".$now.")"
." AND (a.publish_down = ".$null." OR a.publish_down >= ".$now.")";

$options = array(
'select' => 'a.*',
'from' => ZOO_TABLE_ITEM.' AS a',
'conditions' => array($conditions, $type),
'order' => self::getOrder($ordering),
'limit' => $limit);

return $table->all($options);
}

public static function getOrder($order) {

$orders = array(
'date'   => 'a.created ASC',
'rdate'  => 'a.created DESC',
'alpha'  => 'a.name ASC',
'ralpha' => 'a.name DESC',
'hits'   => 'a.hits DESC',
'rhits'  => 'a.hits ASC',
'random' => 'RAND()');

return isset($orders[$order])? $orders[$order] : '';
}

Вопрос: как эту часть кода можно модифицировать под вывод статей по рейтингу?
*

bcool

  • Новичок
  • 7
  • 0 / 0
Прошу помощи! Ничего не получается с этим рейтингом((
*

delames

  • Захожу иногда
  • 141
  • 10 / 0
  • Решаю программные вопросы за $ - Обращайтесь!
этот код тебе надо было внедрять не в framework\database.php а в tables\item.php

Но тут не так просто.

Если ты просто заменишь код то получишь везде вывод с сортировкой порейтингу.

Нужнго написать отдельно функцию. И вызывать ее по мере надобности (виду сортировки)
*

delames

  • Захожу иногда
  • 141
  • 10 / 0
  • Решаю программные вопросы за $ - Обращайтесь!
Прошу помощи! Ничего не получается с этим рейтингом((
http://joomlaforum.ru/index.php/topic,101746.0.html
*

delames

  • Захожу иногда
  • 141
  • 10 / 0
  • Решаю программные вопросы за $ - Обращайтесь!
Что конкретно не получается?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Динамическое создание модуля ZOO Category

Автор DeLight

Ответов: 0
Просмотров: 886
Последний ответ 03.04.2014, 09:16:50
от DeLight
[Элемент] kprating - отображение рейтинга фильма по данным кинопоиска и Imdb

Автор likrion

Ответов: 31
Просмотров: 7714
Последний ответ 06.03.2014, 16:50:27
от tixon
В компоненте JBZoo проблема с выводом модуля

Автор tiptopvkr

Ответов: 0
Просмотров: 815
Последний ответ 19.12.2013, 16:56:38
от tiptopvkr
Сделать в zoo вывод статей в таблице как на сайтах комп.фирм

Автор caitleen

Ответов: 2
Просмотров: 1312
Последний ответ 17.10.2013, 15:49:26
от likrion
Количество колонок для вывода статей - zoo приложение блог на beez3

Автор ostrova

Ответов: 2
Просмотров: 1546
Последний ответ 24.09.2013, 14:31:08
от ostrova