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

Правильный вывод навигации

Новый топик
27.05.2007, 06:25
Ответить | Цитировать
Гость
Гость

Случается так, что в разделе все объекты выключены либо их нет вообще.
Как не выводить такие разделы?
28.05.2007, 17:13
Ответить | Цитировать
Гость
Гость

Попробуй чтонибудь типа такой проверки, должно получиться
".opt($totRows,"то тут вывод раздела ")."
totRow - общее количество объектов в шаблоне
29.05.2007, 14:59
Ответить | Цитировать
h/z

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

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

тогда надо сделать одну mysql выборку в php массив, всех разделов с кол-во записей в них..
это надо прописать в системных настроках макета. и на сайте прорисовывать навигацию как содержимое отсортированного массива..

самое сложное в этом методе правильно создать mysql запрос, который бы выдал список:
номер раздела - номер родителя раздела - название раздела - урл - кол-во записей
30.05.2007, 07:58
Ответить | Цитировать
Гость
Гость

Разве нельзя проще?

$totRows - почему-то не работает.
если бы она работала - было бы очень хорошо, потому что можно вставить проверку как написано выше и все ок!

Туда же можно было бы вставить выражение, проверяющее наличие хотя бы одного подраздела.
Мы же вызываем $data[$i][Subdivision_ID] - следующий подраздел, если его нет, то мы ничего не выводим - А нельзя ли проверку на это вставить?

Если нет ни объектов, ни подразделов, то ничего не выводить.

30.05.2007, 13:17
Ответить | Цитировать
h/z

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

нельзя,

чтобы проверить кол-во записей надо обратиться ко всем подключенным шаблонам в этом разделе и проверить есть ли у них записи для этого раздела.
03.06.2007, 14:10
Ответить | Цитировать
Гость
Гость

Сделал вот так и все работает:
$browse_map3[unactive] = "";$children2 = listQuery("SELECT count(Message_ID) as count_news FROM Message57 WHERE Subdivision_ID=".$data[$i][Subdivision_ID],"\$data[count_news]"); $children = listQuery("SELECT COUNT(*) AS c FROM Subdivision WHERE Parent_Sub_ID = {$data[$i][Subdivision_ID]}", '$data[c]'); $result.="".opt(($children)||($children2!=0), "<a href=%URL>%NAME</a><br>")." ".s_browse_sub($data[$i][Subdivision_ID],$browse_template)."";

так же можно вставить конкретно условие на включенные или отключенные объекты.
в данном случае проверяются все объекты.
04.06.2007, 17:10
Ответить | Цитировать
h/z

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

решение не универсально ;) привязано к конкретному шаблону.. подойдет вероятно только для каталогов с одинаковыми шаблонами.
05.06.2007, 09:50
Ответить | Цитировать
Гость
Гость

согласен)))
ну а больше и не надо
198 196 2007-06-05 09:50:14 7139
Описание проекта