Доска объявлений

Вывод категорий

 
Посетитель
small user social cms
Сообщений: 66
Доброго времени суток Уважаемы Гуру!
Подскажите как бороться...
Добавлял категории в объявления...
Они выводятся в Алфавитном порядке...
Как реализовать вывод категорий порядком, который необходим мне?
Заранее огромное спасибо!
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2551
Насколько мне известно функционала такого нет...
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Реклама
cms
Посетитель
small user social cms
Сообщений: 66
т.е. сортироваться категории будут в любом случае по алфавиту!?
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 161
Извините, что влазаю (в PHP и Мускуле я полный нуль), но учитывая, что основы программирования вроде везде одинаковые, то могу предположить.
1. В модуле наверняка есть SQL-запрос, в котором установлена сортировка конкретного поля по алфавиту. Можно переделать запрос с нужной сортировкой по нужному полю.
2. Это может быть сделано непосредственно при выводе данных из полученного запроса. Значит там нужно покопаться.

Имхо, нет ничего невозможного.
Подскажите, где располагается данный модуль? может я чего там пойму?
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2551
не помню какая там выборка из базы идет...
Если не трогать код то да, а если подшаманить то можно отсортировать по любому полю из таблицы cms_board_cats, в том числе и по id...
чуток опередили меня З.Ы.
Ser Mager:
Имхо, нет ничего невозможного.
Редактировалось: 2 раз (Последний: 17 мая 2011 в 13:05)
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 161
Евгений, а где располагается сам модуль? я хочу посмотреть, что там вообще в кое написано...
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2551
это не модуль, компонент... Вывод категорий осуществлен в самом компоненте. Структура у компонентов похожа, ищем в папке components папку с компонентом, в данном случае board, там файлик frontend.php
правим :)
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
Сообщений: 66
Евгений:
frontend.php
правим :)
Ну править сказать легко... вот только где в коде найти порядок сортировки?
Редактировалось: 1 раз (Последний: 17 мая 2011 в 13:33)
Посетитель
small user social cms
Медаль
Сообщений: 373
Вроде в в model.php править надо
Код PHP:
  1. public function getCategory($category_id) {
  2.  
  3. $this->deleteOldRecords();
  4.  
  5. $category = $this->inDB->get_fields('cms_board_cats', 'id='.$category_id, '*');
  6. $category = cmsCore::callEvent('GET_BOARD_CAT', $category);
  7.  
  8. if (!$category['obtypes']){
  9. $category['obtypes'] = $this->inDB->get_field('cms_board_cats', "NSLeft <= {$category['NSLeft']} AND NSRight >= {$category['NSRight']} AND obtypes <> ''", 'obtypes');
  10. }
  11.  
  12. return $category;
  13. }
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2551
вот и артиллерия подоспела googlebot smile без обид
собсно решение начинает вырисовываться :)
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 161
Мдя... код конкретно отличается от кода в ФоксПро)))
Аж в глазах всё расплывается... Буду думать... много думать... crazy
Посетитель
small user social cms
Медаль
Сообщений: 373
Евгений, да какие обиды, и какая там артиллерия, так, ламокодинг, посмотри соседний файл и сляпай подобие laugh
vicoder где-то выкладывал решение по сортировке категорий статей из админки, надо там подсмотреть.
Посетитель
small user social cms
Медаль
Сообщений: 373
не ту функцию указал, вот где порядок задается:
Код PHP:
  1. public function getSubCats($category_id) {
  2. $cats = array();
  3.  
  4. $sql = "SELECT c.*, IFNULL(COUNT(i.id), 0) as content_count
  5. FROM cms_board_cats c
  6. LEFT JOIN cms_board_items i ON i.category_id = c.id AND i.published = 1
  7. WHERE c.published = 1 AND c.parent_id = $category_id
  8. GROUP BY c.id
  9. ORDER BY title ASC";
  10. $result = $this->inDB->query($sql);
  11.  
  12. if (!$this->inDB->num_rows($result)){ return false; }
  13.  
  14. while($cat = $this->inDB->fetch_assoc($result)){
  15. if (!$cat['obtypes']){
  16. $cat['obtypes'] = $this->inDB->get_field('cms_board_cats', "NSLeft <= {$cat['NSLeft']} AND NSRight >= {$cat['NSRight']} AND obtypes <> ''", 'obtypes');
  17. }
  18. $cats[] = $cat;
  19. }
  20.  
  21. $cats = cmsCore::callEvent('GET_BOARD_SUBCATS', $cats);
  22.  
  23. return $cats;
  24. }
Меняем ORDER BY title ASC на ORDER BY c.id - получаем сортировку по id и создаем категории в том порядке, в котором хотим их выводить на сайте. Если уже все категории забиты, можно попробовать поменять id в таблице cms_board_cats в нужном вам порядке, только не забыть при этом соответственно менять также parent_id (родительскую категорию) во всех подкатегориях тех категорий, id которых были изменены.
Если уже есть объявления, тогда еще придется менять category_id для всех объяв в cms_board_items, так что на уже работающей доске неприменимо!Не проверял на сайте, так что сделайте бекап если решитесь править.
Редактировалось: 1 раз (Последний: 17 мая 2011 в 15:52)
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 161
ну, как я и говорил) сортировка в запросе :)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.