Привет всем форумчанам)))
Прошу оказать посильную помощь в решении интересной задачи для 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}";
}
В итоге уже три дня пытаюсь добиться чего-нить, но все равно каталог без записей и все тут...
За помощь и указание моих ошибок буду очень благодарен.