Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Вывод новостей всех подразделов

16.04.2011, 18:30
Александр

Зарегистрирован:
2011-04-15
Сообщений: 13

Например структура:

категория1
--подкатегория1_1
--подкатегория1_2
--подкатегория1_3
категория2
--подкатегория2_1
--подкатегория2_2
категория3

как вывести список всех новостей?
19.04.2011, 18:59
Герман

Зарегистрирован:
2011-04-15
Сообщений: 13

+ присоединяюсь к вопросу

имхо..
19.04.2011, 20:32
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Через
Код:
$ignore_sub = $ignore_cc = 1;

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

Ксю доставляет...
07.06.2013, 10:32
Гость
Гость

Цитата:
Через
Код:
$ignore_sub = $ignore_cc = 1;

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


в этом случае будет выводиться всё и в "категория1"
что дописать чтобы в "категория1" выводить только содержимое
--подкатегория1_1
--подкатегория1_2
--подкатегория1_3
а в "категория2" только содержимое
--подкатегория2_1
---подкатегория2_1_1
---подкатегория2_1_2
--подкатегория2_2
07.06.2013, 20:59
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Только что ведь обсуждали. улыбка
Вот здесь вывод объектов из дочерних подразделов
07.06.2013, 21:44
Хоботов

Зарегистрирован:
2012-11-26
Сообщений: 9

пробую объяснить что требуется еще раз:

у меня на сайте 3-х уровневый каталог

Категория 1 (товаров нет - вывел см.код1)
--Подкатегория 1-1 (тут товары)
--Подкатегория 1-2 (тут товары)
Категория 2 (нужно увидеть товары из подкатегорий)
--Подкатегория 2-1 (товаров нет - вывел см.код1)
---Подкатегория 2-1-1 (тут товары)
---Подкатегория 2-1-2 (тут товары)
--Подкатегория 2-2 (товаров нет - вывел см.код1)
---Подкатегория 2-2-1 (тут товары)
---Подкатегория 2-2-2 (тут товары)

КОД 1 (разместил в компоненте в системных настройках)
Код:
if ($sub == 36) {
$ignore_cc = $ignore_sub = 1;
$query_where = "a.Subdivision_ID in (";
$query = "SELECT Subdivision_ID FROM Subdivision WHERE Parent_Sub_ID='{$current_sub['Subdivision_ID']}'";
$res = $db->get_col($query);
foreach ((array)$res as $value) {
$query_where .= $value.",";
}
$query_where .= $current_sub['Subdivision_ID'].")";
}

данный код срабатывает в подкатегориях 2-1 и 2-2
но в категории 2 если я ставлю этот код - не срабатывает.

пробывал вставлять в системные настройки код от DiGGy
Код:

/*****************************************************************
* Получение ID всех вложенных подразделов рубрикатора
*/
function SubdivisionChildsGet($subdivision_id) {
global $db;
$ids = "";
$childs = "";
$query = "select Subdivision_ID from Subdivision where Parent_Sub_ID='{$subdivision_id}'";
$res = $db->get_col($query);
foreach ((array)$res as $id) {
// получаем вложенные подразделы по рекурсии
$childs = SubdivisionChildsGet((int)$id);
$ids .= ($ids?",":"").$id.($childs?",":"").$childs;
}
return $ids;
}

в итоге в разделе 2 - пусто
07.06.2013, 22:14
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Напишите, каким образом в системных настройках вы вызываете функцию, предложенную Diggy.
08.06.2013, 16:29
Хоботов

Зарегистрирован:
2012-11-26
Сообщений: 9

а так и вставлял. .. и в условие помещал if ($sub == 12) {....
просто я еще до конца много чего не понимаю, а дело сделать нужно уже сейчас. вот и полез я естесьно сюда на форум. а тут нашел только 2 варианта реализации того что мне нужно. я конечно мог бы вывести все содержимое из разделов и с помощью nc_objects_list .... а может еще какое есть решение..
10.06.2013, 07:33
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Но Вы же понимаете, что Diggy привел всего лишь функцию, которая сама по себе ничего не делает? В системных настройках нужно сделать лишь вызов этой функции и обработку результатов ее работы, а саму функцию нужно поместить в /netcat/modules/default/function.inc.php.
В системных настройках вызывать эту функцию примерно так:
if($sub==12) {
$ignore_sub=$ignore_cc=1; // отключаем стандартную выборку
$sublist=SubdivisionChildsGet($sub); // в sublist получаем список номеров подразделов, разделенных запятыми
$query_where .= " AND (a.Subdivision_ID in ($sublist) OR a.Subdivision_ID='$sub')"; // выбираем только те объекты, которые находятся в подразделах этого раздела, а также в текущем разделе.
}
198 196 2013-06-10 07:33:01 11197
Описание проекта