LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
28.05.2012, 04:00:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: пожалуйста доделать сортировку по своему полю в SOBI2 2.9.2.3  (Прочитано 1234 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
alex88
Гость
« : 06.11.2009, 04:26:52 »

Привет всем форумчанам)))
Прошу оказать посильную помощь в решении интересной задачи для SOBI2. Возможно указать на мои ошибки...))

Задачка такая:
В пункте выбора сортировки в админке SOBI2 надо добавить еще один вариант сортировки - по полю которое нас интересует. При выборе данного пункта меню все записи SOBI2 будут сортироваться по этому полю...

Собственно что я попытался сделать:

1) Создал новое поле - Рейтинг:
- название field_reiting
-поле как дропдаун, доступный только для администратора. Принимает значения 1,2,3,4,5.
-Имеет id = 18 в поле БД sobi2_fields_data -> fieldid.

2) Создал новый элемент меню для сортировки:
В файле adm.helper.class.php добавил в функцию getListingOrdering() после данного кода:
Код:
$listingOrdering[] = sobiHTML::makeOption('items.publish_down DESC', _SOBI2_CONFIG_GENERAL_SORT_EXP_DESC);
такой код:
Код:
$listingOrdering[] = sobiHTML::makeOption('res DESC','most rated');

В итоге елемент меню появился и он сортирует массив res в обратном порядке - то есть с 5 до 1 в моем случае.

3) Полез править код в файл frontend.class.php:
-добавлял код в функцию function buildListingWithTemplate($cat). Функция вроде бы та, потому что шаблон использую и данная настройка активирована.

Вместо данного куска кода

Код:
} else { //Eintrдge aus allen Kategorien
$query = "SELECT itemid, title, owner, image, icon, background FROM `#__sobi2_item` AS items " .
 
    "WHERE (`published` = 1 AND (`publish_down` > '{$now}' OR `publish_down` = '{$config->nullDate}' ) AND items.itemid IN({$query}) ) ORDER BY {$config->listingOrdering} {$limits}";

Вставил свой код:

Код:
else { //Eintrдge aus allen Kategorien


if($config->listingOrdering=="res DESC"){
    $query = "SELECT items.itemid, items.title, items.owner, items.image, items.icon, items.background, fieldsdata.fieldid, fieldsdata.data_txt AS res FROM `#__sobi2_item` AS items
LEFT JOIN `#__sobi2_fields_data` AS fieldsdata ON items.itemid = fieldsdata.itemid AND fieldsdata.fieldid = '18'" .
"WHERE (`published` = 1 AND (`publish_down` > '{$now}' OR `publish_down` = '{$config->nullDate}' ) AND items.itemid IN({$query}) ) ORDER BY {$config->listingOrdering} {$limits}";
}else{
$query = "SELECT itemid, title, owner, image, icon, background FROM `#__sobi2_item` AS items " .
 
    "WHERE (`published` = 1 AND (`publish_down` > '{$now}' OR `publish_down` = '{$config->nullDate}' ) AND items.itemid IN({$query}) ) ORDER BY {$config->listingOrdering} {$limits}";
}


В итоге уже три дня пытаюсь добиться чего-нить, но все равно каталог без записей и все тут...
За помощь и указание моих ошибок буду очень благодарен.
 


« Последнее редактирование: 06.11.2009, 11:54:24 от alex88 » Записан
alex88
Гость
« Ответ #1 : 09.11.2009, 16:28:05 »

Товарищи, друзья, неужели ничего никто по данному вопросу не может предположить? Cry
Записан
tropa
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #2 : 19.11.2009, 22:23:49 »

По этому вопросу есть предложить неуникальное, но работающее средство.

-Включаешь в настройках Joomla вывод ошибок.
-Проверяешь, туда ли ты выводишь результат (всякое бывает...Wink.
-Проверяешь синтаксис, особенно в части, БД касающейся, там легко ошибиться и не узнать об этом. Писать надо такие вещи в чём-нибудь вроде
-KomodoIDE, с php-синтаксисом хотя бы проблем избежишь.
-Если там всё в порядке, ещё раз рассматриваешь структуру таблицы и свой запрос. Часто с удивлением находятся ошибки - поля местами перепутал ну и т.д.
-По прежнему ничего не работает? Берёшь MySQL GUI TOOLS, в QueryBrowser вставляешь свой запрос и с удовлетворением видишь что-нибудь, кроме "1 rows -fetched in 0.01sec". Значит всё-таки синтаксис)). Или поля перепутал.
-БД возвращает правильный результат? Смотри разбор ответа у себя в скрипте.
Всё вроде одно занудство, но я в свое время на отладку одного запроса на вывод новостей 8 часов убил. Когда начинал. Ты же начинаешь, верно? Wink
-Готовых решений и исправлений ты вряд ли дождёшься. Народ занят, только вот твои ошибки искать и осталось. Метод поиска я тебе дал.
Напоследок, если ничего не поможет, а ты уверен, что общий ход работы скрипта верен, запусти проблемную часть в отладчике, в том же комоде он отлично справляется, и прогони по шагам, поподставляй свои значения, посмотри, что тебе скрипт дает в ответ. Короче, учись и не теряй надежды)

Записан
doroshenkok
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 25



« Ответ #3 : 10.08.2011, 13:52:17 »

да уж без 100 грамм и знания PHP не разберешься.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet