Показываем записи вложенных категорий в объявлениях, статьях

+37
2K
По просьбам пользователей и другим косвенным обстоятельствам smile
Много полезных кому то, но ненужных другим (а значит спорных) возможностей заложено уже в движке системы. Надо всего лишь чуть чуть подстроить под себя. Большой респект разработчикам, чего там говорить, я просто влюблен в этот движок love
Итак, показываем объявления из категории и вложенных категорий:

В файле \components\board\frontend.php находим строчку
  1. $model->whereCatIs($category['id']);
меняем ее на
  1. $model->whereThisAndNestedCats($category['NSLeft'], $category['NSRight']);
Ниже находим
  1. $items = $model->getAdverts($is_moder, true);
меняем на
  1. $items = $model->getAdverts($is_moder, true,0,1);
Находим $total = $model->getAdvertsCount( и меняем на
  1. $total = $model->getAdvertsCount($is_moder,$category['NSLeft'], $category['NSRight']);
Меняем в файле \components\board\model.php функцию getAdvertsCount на следующую:
  1. public function getAdvertsCount($show_all = false,$left_key,$right_key){
  2. //подготовим условия
  3. $pub_where = ($show_all ? '1=1' : 'i.published = 1');
  4. if ($left_key && $right_key) {
  5. $pub_where .= (" AND cat.NSLeft >= $left_key AND cat.NSRight <= $right_key AND cat.parent_id > 0");}
  6. $sql = "SELECT 1
  7. FROM cms_board_items i LEFT JOIN cms_board_cats cat ON cat.id = i.category_id
  8. WHERE {$pub_where}
  9. {$this->inDB->where}
  10. {$this->inDB->group_by}\n";
  11. $result = $this->inDB->query($sql);
  12. return $this->inDB->num_rows($result);
  13. }
Результат Иллюстрация

Переходим к статьям. Открываем файл \components\content\frontend.php
находим строчку
  1. $model->whereCatIs($cat['id']);
(у меня она 109-я)
меняем на
  1. $model->whereThisAndNestedCats($cat['NSLeft'], $cat['NSRight']);
Теперь в категории видим список статей из подкатегорий.

Если появится еще чуть времени, сделаю решение для универсального каталога, там немного отличается процедура.

Дорогие друзья! С чувством глубокой радости и от всего сердца поздравляю Вас со Светлым Христовым Воскресением — Пасхой! Пусть эти светлые дни станут для Вас и Ваших близких по-настоящему праздничными, самыми счастливыми и согреют теплом и любовью ваши семьи. Счастливых праздников!
Иллюстрация
+1
letsgo letsgo 11 лет назад #
Спасибо Виталь, за доработку и за поздравление. Присоединяюсь и тоже всех поздравляю.
0
Станислав Григорьевич (Мозголом) Станислав Григорьевич (Мозголом) 11 лет назад #
Спасибо вам! И вас тоже с пасхой.
0
Александр Корн Александр Корн 11 лет назад #
Огромное спасибо! Очень нужно!
0
Dorimen Dorimen 11 лет назад #
На 1.9 идет?
0
AlLar AlLar 11 лет назад #
Спасибо! Полезная вещь! Будем ждать для УК...
Присоединяюсь к поздравлениям с праздником Святой пасхи!
+1
Zau4man Zau4man 11 лет назад #
Надеюсь админы обратят внимание, и добавят это в релиз. Статьи точно нужно. Сколько раз у меня спрашивали, а можно ли в разделе статей вывести статьи из подкатегорий.
Для приверженцев СЕО и нелюбителей дублей контента оставить выбор между старым и новым вариантом.

deltas, спасибо большое за хак.
+1
Zau4man Zau4man 11 лет назад #
З.ы. с плагином http://instantcms.ru/blogs/lunyi-blog/plagin-avtopodgruzka.html раздел статьи заиграл новыми красками :)
0
Brut Brut 11 лет назад #
Если уже в рубрике много объявлений скажем на странице по 10 а врубрике 50 то пропал постраничный просмотр(((.
0
deltas deltas 11 лет назад #
проблема решена, запись обновлена )
+1
Май Май 11 лет назад #
Спасибо. Полезная доработка, применил у себя, все работает. Еще бы пагинацию прикрутить для главной страницы.
0
Dorimen Dorimen 11 лет назад #
это да
0
Telema93 Telema93 11 лет назад #
Как решить вывод статей в убывающем порядке по дате (более свежие - сверху)?
0
Роман Роман 11 лет назад #
настроить соответствующий раздел в админке
0
Telema93 Telema93 11 лет назад #
ага! и как по-вашему это сделать для корневого раздела?
0
Telema93 Telema93 11 лет назад #
отвечаю на свой вопрос: хоть и нет ссылки на редактирование корня, есть ссылки, и так как корень id=1 то ссылку делаем вида /admin/index.php?view=cats&do=edit&id=1 !!!
+1
volchoc volchoc 11 лет назад #
Спасибо, такой хак тоже был нужен. Но вот заметил небольшую проблемку. При просмотре объявлений из подкатегорий не работает сортировка по городам. В принципе - не проблема. В основных категориях ее можно убрать.

Я выбрал доработку!
0
volchoc volchoc 11 лет назад #
Уточню
При просмотре объявлений из подкатегорий
правильно было написать - При просмотре категори...
0
Андрей Андрей 10 лет назад #
одна маленькая деталь... при применении хака к статьям, на главной раздела начинается вывод новостей, даже если он не обозначен...
1.10.4 в частности (может, изменение для этой версии не подходит)...

Еще от автора

Обновление компонента "Replacement замена в контенте" + бонус
Как и обещал, поработал над обновлением компонента Replacement.
Replacement - замена в контенте. Компонент для ICMS 2.x
Компонент на основе фильтра "Красивые заметки в тексте" для первой версии. По просьбам пользователей сделал подобное для второй ветки.
Фильтр ICMS Note - Красивые заметки в тексте
Опять же по просьбе Nomin сделал фильтр для создания красивых заметок в тексте.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.