Регистрация
Вход через соцсети
Восстановление пароля

Вывод помимо включенных разделов еще одного выключенного функцией s_browse_sub

Новый топик
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
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 567

Попробуйте сообщить условие выборки.
Если все включенные разделы и некий определенный выключенный, то четвертый параметр должен выглядеть что-то типа такого: "(Checked=1 OR Subdivision_ID=XXX)"

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
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
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 567

А версия системы?
Вообще, просто пролезьте посмотрите конкретно ваши внутренности для s_browse_sub,
ф-я должна быть в /netcat/require/s_browse.inc.php
Выведите оттуда запрос на выборку и сразу будет понятно, чего там не так

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
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
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 567

Тогда все понятно, все работало по первому варианту, только третий параметр должен быть, наоборот, = 1
и тогда из запроса уберется вот эта AND `Checked` = 1

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
09.04.2012, 17:34
Ответить | Цитировать
Гость
Гость

Спасибо большое, все помогло.
198 196 2012-04-09 17:34:07 12018
Описание проекта