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

Такая проблема:
Есть 11 разных стилей для разных пунктов меню. В шаблонах навигации задано это так:
...
$browse_sub[0][unactive] = "<div class='menu'><a class='m\$i' href='%URL'>%NAME</a></div>";
...
Т.е. используется вроде как системная переменная $i.
Вопрос:
Как вместо $i в шаблонах навигации задать свою переменную определяемую php-кодом в макете дизайна?
09.09.2010, 14:42
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

$my_var = 1;

$browse_sub['prefix'] = " \"; global \$my_var; \$result .=\" ";
$browse_sub['active'] = " xxx \$my_var ";

Ксю доставляет...
09.09.2010, 15:46
Гость
Гость

Использовал след. конструкцию:
$browse_sub[0][prefix] = " \"; global \$n; \$result .=\" ";
$browse_sub[0][suffix] = "";
$browse_sub[0][active] = "<div class='menu2on'><a class='m\$n' href='%URL'>%NAME</a></div>\".s_browse_level(2,$browse_sub[1]);
$browse_sub[0][active_link] = "<div class='menu2on'><a class='m\$n' href='%URL'>%NAME</a></div>".s_browse_level(2,$browse_sub[1]);
$browse_sub[0][unactive] = "
\"; for(\$m=0;\$m<2;\$m++) {
for(\$n=0;\$n<=11;\$n++) {
echo
\"<div class='menu2'><a class='m\$n' href='%URL'>%NAME</a></div>\";
}
}
\$result.=\"
$browse_sub[0][divider] = "";
Постоянно получаю синтаксическую ошибку. И еще, нужно ли мне аналогичные конструкции выводить для каждого варианта (т.е. для active и active_link)?
Заранее спасибо.
09.09.2010, 16:44
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

$browse_sub[0][unactive] = "
\"; for(\$m=0;\$m<2;\$m++) {
for(\$n=0;\$n<=11;\$n++) {
echo
\"<div class='menu2'><a class='m\$n' href='%URL'>%NAME</a></div>\";
}
}
\$result.=\"

замените echo на \$result .=

добавьте в конце ";

Вы уверены, что такая конструкция вам нужна?
Что хотите получить в итоге? может найдем другой способ

Ксю доставляет...
10.09.2010, 13:18
Гость
Гость

Попытался использовать ваш вариант. Все также - синтаксическая ошибка.
Я пытаюсь сделать следующее: у каждого пункта меню свой класс.
Классы эти определяют индивидуальный стиль для каждого пункта.
Классов 11, а пунктов меню становится больше. Необходимо генерировать номер класса (конструкция class='m\$n'), где бы задавалась переменная $n в неком диапазоне, а по достижении 11 (столько стилей) отсчет начинался заново.
Я уперся именно в непонимание того факта, как задать эту $n и скрипт ее определяющий в шаблоне вывода меню.
10.09.2010, 14:00
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Лучше делить ($i+1) по модулю на 12 ( остаток от деления на 12 не будет превышать 11 )

Ксю доставляет...
10.09.2010, 17:11
Гость
Гость

Можно и такой вариант. Спасибо за идею. Но открытым остался вопрос, как записать php-скрипт в шаблоне навигации?
10.09.2010, 17:59
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

$browse_sub['avtive'] = " html \"; php-код с экранированым спецспимволами \$result .=\" html ";

Ксю доставляет...
14.09.2010, 09:01
malich
Андрей Малков

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

Тут 2 вариант
1. разработка - системные таблицы - разделы, добавляем свое поле типа строка, проходимся по разделам, вписываем туда нужные стили, в шаблоне вывода навигации вызываем
Код:
$browse_sub['prefix'] = " \".\$data[\$i][nashe_pole].\" ";


2. Можете использовать свой счетчик
Код:
$my_var = 1;
$browse_sub['prefix'] = "
Выводим значение \$my_var
В нужно месте прибавляем значение переменной на 1 \".opt(\$my_var++,\"\").\" или возможно \".opt($my_var++,\"\").\" под рукой нет работающего кода.
Или если нам нужно будет ее переопределить \".opt(\$my_var = ХХ,\"\").\"
";
198 196 2010-09-14 09:01:26 10710
Описание проекта