|
|
30.08.2013, 17:33
|
|
Гость
Гость
|
Шаблоны вывода навигации: (скопировано из базы знаний)
Код:// меню слева
$browse_sub[1]['prefix'] = "<ul>";
$browse_sub[1]['suffix'] = "</ul>";
$browse_sub[1]['active'] = "<li><a href='%URL'>%NAME</a></li>";
$browse_sub[1]['unactive'] = "<li><a href='%URL'>%NAME</a></li>";
$browse_sub[0]['prefix'] = "<ul id='nav'>";
$browse_sub[0]['suffix'] = "</ul>";
$browse_sub[0]['active'] = $browse_sub[0]['active_link'] = "<li class='\".(\$db->get_var(\"SELECT COUNT(Subdivision_ID) AS count FROM Subdivision WHERE Parent_Sub_ID='\".\$data[\$i][Subdivision_ID].\"' AND Checked=1\") ? \"has_sub\" : \"\").\"'><a href='%URL' title='%NAME' class='open'><i class='%ICON'></i> %NAME <span class='pull-right'><i class='icon-chevron-right'></i></span></a></li>\n";
$browse_sub[0]['unactive'] = "<li class='\".(\$db->get_var(\"SELECT COUNT(Subdivision_ID) AS count FROM Subdivision WHERE Parent_Sub_ID='\".\$data[\$i][Subdivision_ID].\"' AND Checked=1\") ? \"has_sub\" : \"\").\"'><a href='%URL' title='%NAME'><i class='%ICON'></i> %NAME <span class='pull-right'><i class='icon-chevron-right'></i></span></a></li>\n";
Верхняя часть страницы (Header):
Код:<!-- Sidebar -->
<div class="sidebar">
<div class="sidebar-dropdown"><a href="#">Навигация</a></div>
<!--- Sidebar navigation -->
<?= s_browse_sub(0,$browse_sub) ?>
</div>
NetCat 5.2
Меню не выводится.
При замене s_browse_sub на nc_browse_sub класс выводится такой:
Код:<li class="".($db->get_var("SELECT COUNT(Subdivision_ID) AS count FROM Subdivision WHERE Parent_Sub_ID=" ".$data[$i][subdivision_id]."'="" and="" checked="1")" ?="" "has_sub"="" :="" "")."'=""><a href="/about/" title="О компании"><i class="icon-file-alt"></i> О компании <span class="pull-right"><i class="icon-chevron-right"></i></span></a></li>
У кого есть соображения?
|
|
|
02.09.2013, 11:31
|
|
Muerto
Алексей Виноградов-фон Шлиппе
Зарегистрирован: 2006-09-14
Сообщений: 37
|
Да как-же надо экранировать чертову переменную $data[$i][Subdivision_ID], чтобы она заработала?!
Код:$isub = "SELECT COUNT(Subdivision_ID) AS count FROM Subdivision WHERE Parent_Sub_ID='\".\$data[\$i][Subdivision_ID].\"' AND Checked=1";
$browse_sub[0]['prefix'] = "<ul id='nav'>";global $browse_sub;$result.="";
$browse_sub[0]['suffix'] = "</ul>";
$browse_sub[0]['active'] = "...пока убрал...";
$browse_sub[0]['unactive'] = "<li class='".($db->get_var($isub) ? $isub : null)."'><a href='%URL' title='%NAME'><i class='%ICON'></i> %NAME <span class='pull-right'><i class='icon-chevron-right'></i></span></a></li>\n";
Смотрю в классе на сформированную mysql-строку и как не изгаляйся, но не могу увидеть там значение переменной $data[$i][Subdivision_ID]. Хотя, если "на живую" подставить Parent_Sub_ID='0' или '1' - условие срабатывает правильно и всё пучком.
Nadie hablara de nosotras cuando hayamos muerto...
|
|
|
02.09.2013, 11:57
|
|
Nexwich
Панасин Александр
Зарегистрирован: 2011-04-05
Сообщений: 1037
|
На крайний случай используйте js. Так легче, так проще.
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
02.09.2013, 23:33
|
|
Игорь
Игорь Мишарин
Зарегистрирован: 2011-11-20
Сообщений: 482
|
Если я правильно понял, нужно - если в разделе есть подразделы, присвоить <li> класс?
Код:".($db->get_var("select count(*) from Subdivision where Checked=1 and Parent_Sub_ID=".(int)$sub)>0?"есть подразделы":"нет подразделов")."
Stark
|
|
|
03.09.2013, 11:15
|
|
Muerto
Алексей Виноградов-фон Шлиппе
Зарегистрирован: 2006-09-14
Сообщений: 37
|
Игорь, при твоём раскладе условие не выполняется никогда (даже при наличии разделов). Причем (int)$sub всегда равна 242 (во всех разделах). Но я попытаю копать в эту сторону.
---
Я пытался сделать Код:$isub = "SELECT COUNT(Subdivision_ID) AS count FROM Subdivision WHERE Parent_Sub_ID='%SUB' AND Checked=1";
$browse_sub[0]['unactive'] = "<li class='".($db->get_var($isub)>0?$isub:$sub)."'><a href='%URL' title='%NAME'><i class='%ICON'></i> %NAME <span class='pull-right'><i class='icon-chevron-right'></i></span></a></li>\n"; и класс становилсяКод:class='SELECT COUNT(Subdivision_ID) AS count FROM Subdivision WHERE Parent_Sub_ID='145--- 147, 153 т. е. правильный SUB ---' AND Checked=1' , т. е. поисковая строка правильная. Но она не срабатывает - всегда отдаёт тру.
Nadie hablara de nosotras cuando hayamos muerto...
|
|
|
03.09.2013, 11:35
|
|
Alex
Зарегистрирован: 2009-08-27
Сообщений: 8
|
посмотрите эту тему
Цитата:Да как-же надо экранировать чертову переменную $data[$i][Subdivision_ID], чтобы она заработала?!
|
|
|
03.09.2013, 13:08
|
|
Игорь
Игорь Мишарин
Зарегистрирован: 2011-11-20
Сообщений: 482
|
Цитата:(int)$sub всегда равна 242(
(int)$sub заменить на \$data[\$i][Subdivision_ID]
И не забыть про экранирование
т.е. сделать так:
Код: class='\".(\$db->get_var(\"select count(*) from Subdivision where Checked=1 and Parent_Sub_ID=\".\$data[\$i][Subdivision_ID])>0?\"есть разделы\":\"нет разделов\").\"'
Stark
|
|
|
03.09.2013, 14:05
|
|
Muerto
Алексей Виноградов-фон Шлиппе
Зарегистрирован: 2006-09-14
Сообщений: 37
|
Я тут решил пойти с самого начала и обнаружил, что даже такой вариант
Код:$browse_sub[0]['prefix'] = "<ul id='nav'>";
$browse_sub[0]['suffix'] = "</ul>";
$browse_sub[0]['active'] = "...пока убрал...";
$browse_sub[0]['unactive'] = "<li class=''><a href='%URL' title='%NAME'> %NAME <span class='pull-right'><i class='icon-chevron-right'></i></span></a></li>";
ничего не выводит c Код:<?=s_browse_sub(0,$browse_sub) ?>
хотя там вообще никакого отхождения нет от канонов.
При этом Код:<?=nc_browse_sub(0,$browse_sub) ?> всё нормально выводит.
Может у меня котэ побился при установке? (работаю локально)
Nadie hablara de nosotras cuando hayamos muerto...
|
|
|
03.09.2013, 17:53
|
|
Nexwich
Панасин Александр
Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Судя по тому что вы пишите все у вас работает. Вы не очень внимательно читаете каноны
Для s_brows... Шаблон выглядит типа $browse_sub[0] с ключом. А для nc_brow... $browse_sub без ключа и есть возможность использования макропеременной %NEXT_LEVEL
Буквально сейчас писал условие в шаблоне навигации
$select_category[0]['unactive'] = "<li><a href='".(!empty($_GET) ? $_SERVER['REQUEST_URI']."&subID=%SUB&subIDname=%NAME" : "/ishop/search/?subID=%SUB&subIDname=%NAME" )."' ".nc_ls_display_link('content', 200, null, $fn, array('isNaked'=>1))."><strong>%NAME</strong></li>%NEXT_LEVEL";
Работает как часы. Никакого экранирования.
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
04.09.2013, 16:42
|
|
Muerto
Алексей Виноградов-фон Шлиппе
Зарегистрирован: 2006-09-14
Сообщений: 37
|
Точно! Миа кульпа! Всё смотрел в шаблоны навигации, а про [0]-то и забыл! Спасибо!
Nadie hablara de nosotras cuando hayamos muerto...
|