|
|
06.04.2012, 22:34
|
|
Гость
Гость
|
Задача: есть сайт у которого есть несколько разделов включенных и несколько выключенных. Имеется шаблон вывода навигации $browse_tpl. Как при помощи функции s_browse_sub вывести все включенные разделы и некий определенный выключенный? Видимо надо как-то так: s_browse_sub(0, $browse_tpl, 0, "параметр_id_раздела"), но что 4-м параметром сообщить?
|
|
|
07.04.2012, 07:00
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Попробуйте сообщить условие выборки.
Если все включенные разделы и некий определенный выключенный, то четвертый параметр должен выглядеть что-то типа такого: "(Checked=1 OR Subdivision_ID=XXX)"
|
|
|
08.04.2012, 20:07
|
|
Гость
Гость
|
К сожалению не помогло. Есть ли еще варианты 4-го параметра? Вроде все логично, но не работает:
".s_browse_sub(0,$browse_map[0], 0, "(Checked=1 OR Subdivision_ID=91)")."
|
|
|
09.04.2012, 04:43
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
А версия системы?
Вообще, просто пролезьте посмотрите конкретно ваши внутренности для s_browse_sub,
ф-я должна быть в /netcat/require/s_browse.inc.php
Выведите оттуда запрос на выборку и сразу будет понятно, чего там не так
|
|
|
09.04.2012, 12:41
|
|
Гость
Гость
|
Версия 4.7 Standard.
Код SQL-запроса на выборку разделов:
Код:
$SQL = ("SELECT ".$field_string."
`Subdivision_ID`,
`Subdivision_Name`,
`ExternalURL`,
`Hidden_URL`,
`EnglishName`,
`Catalogue_ID`,
`Parent_Sub_ID`,
`Template_ID`,
`LastUpdated`,
`Created`,
`Read_Access_ID`,
`Write_Access_ID`,
`Priority`,
`Checked`,
`Edit_Access_ID`,
`Subscribe_Access_ID`,
`Moderation_ID`,
`Favorite`,
`Description`
FROM `Subdivision`
WHERE `Parent_Sub_ID` = '".(int) $browse_parent_sub."'
".( $ignore_check ? "" : "AND `Checked` = 1" )."
".( $where_cond ? " AND ".$where_cond : "")."
AND `Catalogue_ID` = '".(int) $current_sub["Catalogue_ID"]."'
ORDER BY ".$db->escape($sort_by));
Где номер родительского раздела $browse_parent_sub - первый передаваемый в функцию параметр. Попробовал передать условие (1 OR Parent_Sub_ID = 91), но логично, что не помогло.
Запрос в итоге выглядит:
Код:SELECT `Pic`, `img`,
`Subdivision_ID`,
`Subdivision_Name`,
`ExternalURL`,
`Hidden_URL`,
`EnglishName`,
`Catalogue_ID`,
`Parent_Sub_ID`,
`Template_ID`,
`LastUpdated`,
`Created`,
`Read_Access_ID`,
`Write_Access_ID`,
`Priority`,
`Checked`,
`Edit_Access_ID`,
`Subscribe_Access_ID`,
`Moderation_ID`,
`Favorite`,
`Description`
FROM `Subdivision`
WHERE `Parent_Sub_ID` = '0'
AND `Checked` = 1
AND (1 OR Parent_Sub_ID=91)
AND `Catalogue_ID` = '1'
ORDER BY `Priority`
По-моему надо либо корчевать функцию, чтобы номера родительских разделов массивом передавать, либо что-то думать в запросе. Фантазии что-то пока мне не хватает на запрос, а функцию корчевать не хочется.
|
|
|
09.04.2012, 13:08
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Тогда все понятно, все работало по первому варианту, только третий параметр должен быть, наоборот, = 1
и тогда из запроса уберется вот эта AND `Checked` = 1
|
|
|
09.04.2012, 17:34
|
|
Гость
Гость
|
Спасибо большое, все помогло.
|