Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Не работает условие в меню

08.03.2014, 01:04
Евгений Соколов
Deviks

Зарегистрирован:
2012-04-20
Сообщений: 12

Нужно вывести меню с условием для корневого пункта меню, делаю таким образом:

Код:

$never = '%never';
$browse_sub = "".("$never"==1 ? "#" : "%URL")."";
$Vmenu[0]['prefix'] = "<ul class='menu_vert_main' id='vert_menu'>";
$Vmenu[0]['suffix'] = "</ul>";
$Vmenu[0]['active'] = "<li class='parent item'><a class='active' href='$browse_sub'>%NAME</a></li>";
$Vmenu[0]['active_link'] = "<li class='parent item'><a class='active' href='$browse_sub'>%NAME</a>%NEXT_LEVEL</li>";
$Vmenu[0]['unactive'] = "<li class='parent item'><a href='$browse_sub'>%NAME</a></li>";


Если ставим галочку в поле "Логическая переменная", то ссылку на корневой раздел не выводим, если галочки нет, ссылка на корневой раздел выводится.

Не знаю почему, но уменя выводится при разных случаях ссылка на корневой раздел!
Использую NetCat 5.3

Помогите пожалуйста.
09.03.2014, 11:43
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 1037

$browse_sub = "".("$never"==1 ? "#" : "%URL")."";

Кавычки говорят что это строка а не переменная. Так что сравнивается строка $never с 1 в итоге неравенство

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
09.03.2014, 16:59
Евгений Соколов
Deviks

Зарегистрирован:
2012-04-20
Сообщений: 12

Цитата:
$browse_sub = "".("$never"==1 ? "#" : "%URL")."";

Кавычки говорят что это строка а не переменная. Так что сравнивается строка $never с 1 в итоге неравенство


Спасибо за кавычки, но всё равно если выводить такой код,
Код:
$browse_sub = "".($never==1 ? "#" : "%URL")."";


то при установленной галочке выводится url, а не "#".

Так и не получилось реализовать логическую переменную.
11.03.2014, 01:44
Евгений Соколов
Deviks

Зарегистрирован:
2012-04-20
Сообщений: 12

Большое спасибо!
Получилось, нужно было меню выводить через s_browse_sub.

Вот только вопрос, почему не получается выводить меню с условием через nc_browse_sub?
11.03.2014, 10:38
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 1037

В s_browse_sub вывод происходит через eval() которая в свою очередь исполняет любой код строки как PHP. В новой функции возвращается как переменная.

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
11.03.2014, 12:41
Евгений Соколов
Deviks

Зарегистрирован:
2012-04-20
Сообщений: 12

Спасибо за объяснение, теперь стало понятно.

Ещё один вопрос, хочу вывести подразделы в меню, делаю так
Код:

$browse_sub = "\".('%never'==1 ? \"#\" : \"%URL\" ).\"";
$Vmenu[0]['prefix'] = "<ul class='menu_vert_main' id='vert_menu'>";
$Vmenu[0]['suffix'] = "</ul>";
$Vmenu[0]['active'] = "<li id='current' class='active item'><a href='$browse_sub'>%NAME</a></li>";
$Vmenu[0]['active_link'] = "<li id='current' class='active item'><a href='$browse_sub'><span>%NAME</span></a></li>";
$Vmenu[0]['unactive'] = "<li class='item'><a href='$browse_sub'><span>%NAME</span></a>\".s_browse_sub(\$data[\$i][Subdivision_ID], \$Vmenu[1]).\"</li>";

$Vmenu[1]['prefix'] = "<ul>";
$Vmenu[1]['suffix'] = "</ul>";
$Vmenu[1]['active'] = "<li id='current' class='active item'><a href='%URL'>%NAME</a></li>";
$Vmenu[1]['active_link'] = "<li id='current' class='active item'><a href='%URL'><span>%NAME</span></a></li>";
$Vmenu[1]['unactive'] = "<li class='item'><a href='%URL'><span>%NAME</span></a></li>";


В макете вывожу спомощью <?= s_browse_sub(0, $Vmenu[0]) ?>, но подразделы не отображаются
, если выводить через nc_browse_sub и в шаблоне меню добавитть %NEXT_LEVEL, подразделы выводятся.

Мне нужно вывести меню через s_browse_sub с подразделами, помогите пожалуйста.
11.03.2014, 15:12
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 1037

Раньше когда существовала версия 4 как основная а не как теперь. То были инструкции к 4 версии а не как сегодня к 5. Так вот там было пояснение что в префиксе шаблона не обходимо поставить
\";global \$browse_sub;\$result.=\"
Где оранжевым выделено название шаблона подразделов без ключей массива
Ваш случай
$Vmenu[0]['prefix'] = "\";global \$Vmenu;\$result.=\"";

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
11.03.2014, 15:50
Евгений Соколов
Deviks

Зарегистрирован:
2012-04-20
Сообщений: 12

Большущее Вам спасибо, всё получилось!!!
11.03.2014, 18:01
Гость
Гость

Так ведь и сейчас приходится этим пользоваться когда в шаблонах вывода навигации используешь условия и пр. Так что без s_browse и сейчас не обойтись.
Почему то, когда делаешь условия, например в $Vmenu[1]['active_link'] ="";
, то потом nc_browse не обрабатывает их и, соответственно %NExt_LEVEL тоже не работает.
198 196 2014-03-11 18:01:41 13539
Описание проекта