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

помогите добавить условие в вывод навигации

Новый топик
18.05.2007, 13:09
Ответить | Цитировать
malich
Андрей Малков

Зарегистрирован:
2005-08-09
Сообщений: 522

в активный элемент меню нужно добавить условие если у раздела нет подразделов то выводим название раздела жирным шрифтом. Если у раздела есть подразделы то выводим рядом с разделом картинку символизирующую наличие подразделов и выводи сами подразделы.

Подскажите как прописать проверку на наличие подразделов?
18.05.2007, 13:19
Ответить | Цитировать
h/z

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

возьмем для примера кусок из руководства стр 107

Код:

$isub1 = "".s_browse_sub($data[$i][Subdivision_ID],$browse_sub[1])."";
$browse_sub[0][prefix] = "";global $browse_sub;$result.="";
$browse_ sub[0][active] = "<li><b><a href=%URL>%NAME</a></b>".$isub1;
$browse_ sub[0][active_link] = "<li><b>%NAME</b>".$isub1;
$browse_ sub[0][unactive] = "<li><a href=%URL>%NAME</a>".$isub1;
$browse_ sub[0][divider] = "";
$browse_ sub[0][suffix] = "</font>";


и получим

Код:

$isub1 = "".s_browse_sub($data[$i][Subdivision_ID],$browse_sub[1])."";
$browse_sub[0][prefix] = "";global $browse_sub;$result.="";
$browse_ sub[0][active] = "<li>".opt_case($GLOBALS[isub1],"<a href=%URL><img src=''>%NAME</a>","<a href=%URL><b>%NAME</b></a>")."".$isub1;
$browse_ sub[0][active_link] = "<li>".opt_case($GLOBALS[isub1],"<a href=%URL><img src=''>%NAME</a>","<a href=%URL><b>%NAME</b></a>")."".$isub1;
$browse_ sub[0][unactive] = "<li><a href=%URL>%NAME</a>".$isub1;
$browse_ sub[0][divider] = "";
$browse_ sub[0][suffix] = "</font>";
22.05.2007, 11:49
Ответить | Цитировать
malich
Андрей Малков

Зарегистрирован:
2005-08-09
Сообщений: 522

А если не использовать конструкцию $isub1
$browse_ sub[0][active_link] = "".opt_case($GLOBALS[isub1],"%NAME","<b>%NAME</b>")."";

что нужно прописать в $GLOBALS[isub1] для проверки есть ли у раздела подразделы?
22.05.2007, 11:55
Ответить | Цитировать
h/z

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

не существует готовой переменной в которой бы хранился ответ, есть или нет подразделы.
22.05.2007, 13:17
Ответить | Цитировать
malich
Андрей Малков

Зарегистрирован:
2005-08-09
Сообщений: 522

да, сделал следующию конструкцию:
$browse_sub[0][active_link] = ""; $children = listQuery("SELECT COUNT(*) AS c FROM Subdivision WHERE Parent_Sub_ID = {$data[$i][Subdivision_ID]}", '$data[c]'); $result.="здесь текст, если подразделов нет ".opt($children, "здесь текст, если соответственно есть")." </a>
".s_browse_sub($data[$i][Subdivision_ID],$GLOBALS[browse_sub][1])."
</li>";
22.05.2007, 13:27
Ответить | Цитировать
h/z

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

в вашем варианте все равно генерятся лишние запросы..
для каждого раздела идет запрос на COUNT(*) и s_browse_sub по любому запрашивается.. даже есть opt() не сработает.. потому что там eval и срабатывают все, но выводится только согласно условиям opt (opt_case)

поэтому самый первые вариант оптимальнее всего.. потому что запрос лишний только один.. и результат либо выводится либо нет
198 196 2007-05-22 13:27:46 8987
Описание проекта