Подскажите как отсортировать форумы(изменить порядок отображения)?
В настройках нашел только сортировку категорий.
Неужели у форума нет такой элементарной функции?
Это хорошо, когда ты с самого начала знаешь какие форумы у тебя будут. А если нет и через некоторое время нужно добавить новый. Он ведь будет не там где нужно.
#1
15 ноября 2013 в 13:34
#2
29 ноября 2013 в 05:14
С трудом верится что ни у кого не было такой необходимости.
Готов заплатить тому кто сможет устранить эту недоработку и сделать сортировку у форумов.
Готов заплатить тому кто сможет устранить эту недоработку и сделать сортировку у форумов.
#3
29 ноября 2013 в 07:26
Можно зайти в базу через phpmyadmin и там отредактировать поле "ordering"
Сегодня в 06:50
#4
29 ноября 2013 в 08:34
Можно зайти в базу через phpmyadmin и там отредактировать поле "ordering"
Пробовал, порядок отображения не меняется.
#5
30 декабря 2013 в 20:17
Вопрос очень актуален. Уже несколько сайтов ждут новых форумов в категориях. Разработчики или знающие люди, подскажите, плиз. Проблема не единичная же.
#6
30 декабря 2013 в 20:37
Я вот саму задачу не понял.
А вообще сортировка форумов, это:
components/forum/model.php
Там функция
В запросе за сортировку отвечает ORDER BY cat.ordering, f.NSLeft \n";
А вообще сортировка форумов, это:
components/forum/model.php
Там функция
public function getForums($is_admin=false){ $pub_sql = $is_admin ? '' : ' AND f.published = 1'; $sql = "SELECT f.*, cat.title as cat_title, cat.seolink as cat_seolink FROM cms_forums f LEFT JOIN cms_forum_cats cat ON cat.id = f.category_id AND cat.published = 1 WHERE f.parent_id > 0 {$pub_sql} {$this->inDB->where} ORDER BY cat.ordering, f.NSLeft \n"; if ($this->inDB->limit){ $sql .= "LIMIT {$this->inDB->limit}"; } $result = $this->inDB->query($sql); $this->inDB->resetConditions(); while ($forum = $this->inDB->fetch_assoc($result)){ // Уровень первого элемента // проверяем доступ к форуму if(!cmsCore::checkContentAccess($forum['access_list'])) { continue; } // получаем массив последнего сообщения $forum['last_msg_array'] = cmsCore::yamlToArray($forum['last_msg']); if($forum['last_msg_array']){ $forum['last_msg_array']['fpubdate'] = cmsCore::dateFormat($forum['last_msg_array']['pubdate']); } // Путь до иконки форума $forum['icon_url'] = '/upload/forum/cat_icons/'.($forum['icon'] ? $forum['icon'] : 'forum.gif'); // Формируем корневой уровень if($forum['NSLevel'] == $first_level){ $forums[] = $forum; } else { // формируем подфорумы } } return cmsCore::callEvent('GET_FORUMS', $forums); }
#7
30 декабря 2013 в 21:18
Вся суть в NSLeft
#8
30 декабря 2013 в 23:31
Спасибо огромное. Хоть стало ясно где можно ковырять. Изменяя NSLeft поместил форум в нужное место. Но NSRight тоже нужно изменять вместе с NSLeft. Причем форумы имеют чётную нумерацию по NSLeft, а подфорумы нечетную.
Категория 1
Форум 1
Форум 2
Категория 2
Форум 1
Форум 2
И если нужно будет добавить в Категорию 1 Форум 3, то это будет выглядеть так
Категория 1
Форум 1
Форум 2
Категория 2
Форум 1
Форум 2
Категория 1
Форум 3
Думаю понятно объяснил
))) Значит Вам повезло и Вы не сталкивались с этой проблемой. Попробую объяснить. Допустим создали форумы и категории с такой структурой:Я вот саму задачу не понял.
Категория 1
Форум 1
Форум 2
Категория 2
Форум 1
Форум 2
И если нужно будет добавить в Категорию 1 Форум 3, то это будет выглядеть так
Категория 1
Форум 1
Форум 2
Категория 2
Форум 1
Форум 2
Категория 1
Форум 3
Думаю понятно объяснил
#9
15 января 2014 в 16:17
)) Значит Вам повезло и Вы не сталкивались с этой проблемой. Попробую объяснить. Допустим создали форумы и категории с такой структурой:
Категория 1
Форум 1
Форум 2
Категория 2
Форум 1
Форум 2
И если нужно будет добавить в Категорию 1 Форум 3, то это будет выглядеть так
Категория 1
Форум 1
Форум 2
Категория 2
Форум 1
Форум 2
Категория 1
Форум 3
Думаю понятно объяснил
Не совсем так.
Допустим я создал категории и форумы
Категория 1
Форум 1
Форум 2
Категория 2
Форум 1
Форум 2
Затем я захотел добавить еще один форум (форум 3) в Категорию 1
Получится вот так
Категория 1
Форум 1
Форум 2
Форум 3
Категория 2
Форум 1
Форум 2
Но если мне нужно чтобы Форум 3 был не после Форума 2, а был самым верхним.
Т.е.
Категория 1
Форум 3
Форум 1
Форум 2
Категория 2
Форум 1
Форум 2
Что делать в этом случае? Почему у категорий есть сортировка, а у форумов нет?
Форумы создаются намного чаще и в большем количестве и возможность их сортировки намного нужнее чем сортировка категорий.
Не очень въехал в сию писанину)
Так как отсортировать? изменение id в базе особо ничего не дало кроме изменений привязки категорий оО
Так как отсортировать? изменение id в базе особо ничего не дало кроме изменений привязки категорий оО