Доброго времени суток Уважаемы Гуру!
Подскажите как бороться...
Добавлял категории в объявления...
Они выводятся в Алфавитном порядке...
Как реализовать вывод категорий порядком, который необходим мне?
Заранее огромное спасибо!
Вывод категорий
#1
17 мая 2011 в 12:03
#2
17 мая 2011 в 12:42
Насколько мне известно функционала такого нет…
#3
17 мая 2011 в 12:51
т.е. сортироваться категории будут в любом случае по алфавиту!?
Сегодня в 08:17
не помню какая там выборка из базы идет...
Если не трогать код то да, а если подшаманить то можно отсортировать по любому полю из таблицы cms_board_cats, в том числе и по id...
чуток опередили меня З.Ы.
Если не трогать код то да, а если подшаманить то можно отсортировать по любому полю из таблицы cms_board_cats, в том числе и по id...
чуток опередили меня З.Ы.
Имхо, нет ничего невозможного.
#5
17 мая 2011 в 13:27
это не модуль, компонент… Вывод категорий осуществлен в самом компоненте. Структура у компонентов похожа, ищем в папке components папку с компонентом, в данном случае board, там файлик frontend.php
правим :)
правим :)
Ну править сказать легко… вот только где в коде найти порядок сортировки?frontend.php
правим :)
#7
17 мая 2011 в 13:41
Вроде в в model.php править надо
public function getCategory($category_id) { $this->deleteOldRecords(); $category = $this->inDB->get_fields('cms_board_cats', 'id='.$category_id, '*'); $category = cmsCore::callEvent('GET_BOARD_CAT', $category); if (!$category['obtypes']){ $category['obtypes'] = $this->inDB->get_field('cms_board_cats', "NSLeft <= {$category['NSLeft']} AND NSRight >= {$category['NSRight']} AND obtypes <> ''", 'obtypes'); } return $category; }
#8
17 мая 2011 в 13:43
вот и артиллерия подоспела googlebot😊без обид
собсно решение начинает вырисовываться :)
собсно решение начинает вырисовываться :)
#9
17 мая 2011 в 14:56
Евгений, да какие обиды, и какая там артиллерия, так, ламокодинг, посмотри соседний файл и сляпай подобие
vicoder где-то выкладывал решение по сортировке категорий статей из админки, надо там подсмотреть.
vicoder где-то выкладывал решение по сортировке категорий статей из админки, надо там подсмотреть.
не ту функцию указал, вот где порядок задается:
Меняем ORDER BY title ASC на ORDER BY c.id — получаем сортировку по id и создаем категории в том порядке, в котором хотим их выводить на сайте. Если уже все категории забиты, можно попробовать поменять id в таблице cms_board_cats в нужном вам порядке, только не забыть при этом соответственно менять также parent_id (родительскую категорию) во всех подкатегориях тех категорий, id которых были изменены.
Если уже есть объявления, тогда еще придется менять category_id для всех объяв в cms_board_items, так что на уже работающей доске неприменимо!Не проверял на сайте, так что сделайте бекап если решитесь править.
public function getSubCats($category_id) { $sql = "SELECT c.*, IFNULL(COUNT(i.id), 0) as content_count FROM cms_board_cats c LEFT JOIN cms_board_items i ON i.category_id = c.id AND i.published = 1 WHERE c.published = 1 AND c.parent_id = $category_id GROUP BY c.id ORDER BY title ASC"; $result = $this->inDB->query($sql); if (!$this->inDB->num_rows($result)){ return false; } while($cat = $this->inDB->fetch_assoc($result)){ if (!$cat['obtypes']){ $cat['obtypes'] = $this->inDB->get_field('cms_board_cats', "NSLeft <= {$cat['NSLeft']} AND NSRight >= {$cat['NSRight']} AND obtypes <> ''", 'obtypes'); } $cats[] = $cat; } $cats = cmsCore::callEvent('GET_BOARD_SUBCATS', $cats); return $cats; }
Если уже есть объявления, тогда еще придется менять category_id для всех объяв в cms_board_items, так что на уже работающей доске неприменимо!Не проверял на сайте, так что сделайте бекап если решитесь править.