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

Меню с иконками и дополнительной информацией

Страницы: 1  |  2
28.09.2012, 19:21
Максим

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

Добрый день.
Использую версию NetCat 5.0, хочу сделать меню с отдельной иконкой для каждого пункта, а для некоторых пунктов добавить дополнительный текст.
В итоге должен получиться код вроде этого:

Код:

<nav class='nav-main'>
<a href="" class='about'><span class='icon i48x48 logotype'></span><b>О компании<br><i>Производство</i></b></a>
<a href="" class='contact'><span class='icon i48x48 phone'></span><b>Контакты</b></a>
<a href="" class='presentation'><span class='icon i48x48 humans'></span><b>Презентации</b></a>
</nav>


Подскажите как это можно реализовать?
29.09.2012, 16:36
Nexwich
Панасин Александр
Nexwich

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

Проще нечего было спросить?

Код:

$browse_sub[1][prefix] = "<nav class='nav-main'>";
$browse_sub[1][unactive] = "<a href='%URL' class='".\$data[\$i][Hidden_URL].\"'><span class='icon i48x48' style='bacground-image:url(%img)'></span><b>%NAME<br><i>%subText</i></b></a>";
$browse_sub[1][active] = "<a href='%URL' class='".\$data[\$i][Hidden_URL].\" active'><span class='icon i48x48' style='bacground-image:url(%img)'></span><b>%NAME<br><i>%subText</i></b></a>";
$browse_sub[1][suffix] = "</nav>";

Но в этом случаи Ключевые слова разделов должны иметь такоеже название как и ваши классы

Зайдите в "системные таблицы" - Разделы. Создаейте поле subText. В дополнительных полях раздела у вас появится это поле в него добавите нужный вам текст, а картинка верхнее поле там же в дополнительных полях

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

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

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

Спасибо, благодаря вам нашел системные таблицы. Второй день только знакомлюсь с НетКэтом.
Такой код требуют условия и дизайн макета, меню круговое с иконками, пришлось делать позиционированием.

Еще один вопрос в догонку, создал дополнительное поле showItem, как мне в меню проверять по условию если этот параметр равен 0, то не показывать этот пункт меню?
Как я понял при обработке пхп поля из системных таблиц еще не подгружены и обычным условием сделать не получается
29.09.2012, 17:13
Nexwich
Панасин Александр
Nexwich

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

Я сделаю меню круговое с иконками не применения class и id только
<a href='/link/'>Раздел</a>
css он всемогущ изучите его поглубже и вам откроются тайны.

Это макропеременные их использовать в условиях вам не удастся(вообще от ситуации зависит). Так что переконвертируйте их в переменные. Они легко будут поддаваться условиям.

Пример
$showItem = '%showItem'; \\ теперьмы ее будем использовать как переменныю с темже значением
\".opt(\$showItem=='yes' ,'Текст или код').\" \\Показываем то что хотим иначе не чего

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
30.09.2012, 09:52
Kirs
ООО "КИРАНА"

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

ну вот, а я всегда \".$data[\$i]['FieldName'].\" использовал вместо %FieldName, спасибо.

есть два камента:
class="icon 148x148 phone" - это ужас какой-то, тем более что это сразу три класса, а не один

2 Александр: style в теге - не кошерно, мы все же стремимся отделить содержание от представления совсем

я бы предложил принцип KISS:
Код:
<span class='icon'><img src='%Iamge' width='' height='' alt='' /></span>

где Image - название поля типа файл в системной таблице Разделы. Это позволить еще и управление отделить, т.к. можно будет картинку прямо в админке менять (чего с css файлом сделать нельзя)
30.09.2012, 14:08
Nexwich
Панасин Александр
Nexwich

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

Вы видимо не заметили я и сделал картинку закачиваемой через админку.
style не нарушает валидности в коде и это решение к его коду, моего тут совета нету.
Я тоже сперва хотел картинку поставить, но у него ведь сверстано уже так и нужно лиш додело то что сделанно, а не перекраивать. Так что я не считаю что сделал чтото не правильно.
Какой код, такое и решение.

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

Да я имел ввиду что это логическая переменная, старая привычка с нулями и единицами.
Пытаюсь применить это условие opt, как написано в документации:

Код:
$round_menu[unactive] = ".opt($showItem=='yes', Text').";


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

По поводу кода, верстаю уже многие годы, и пришел к выводу что несколько классов при сложных проектах оптимизируют ксс код раза в 2, отсюда и 3 стиля, это проще и для дальнейшего редактирования.
Иконки в отдельный спан помещены потому что они кропаются из одной картинки с иконками, подгружать 10 иконок с тремя состоянимя в качестве отдельных картинок в тэге img как предложил Kirs совершенно неуместно.
Плюс опираться на атрибуты помимо класса в ксс не очень хорошо.
Использовать бефор и афтер для иконок слишком накладно так как существенно увеличивает объем ксс.
30.09.2012, 23:28
Максим

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

Сообщение выше мое, забыл залогиниться
01.10.2012, 09:33
Гость
Гость

1. надо экранировать и $, и кавычки
2. $round_menu[unactive] = ". - конкатенация с кавычкой, тогда уж
"\".
а лучше совсем убрать
3. я бы использовал выражение \".( condition ? expression : NULL ).\" на всякий случай opt бывает глючит

но это просто совет, а то тут товарищи c опытом работы накидываются

про оптимизацию ксс спорить не буду, какой ксс, такая и оптимизация ©
01.10.2012, 09:34
Kirs
ООО "КИРАНА"

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

я тоже забыл залогигиться
01.10.2012, 11:15
Максим

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

Такой вариант я тоже пробовал, вот конкретный текст примера:

Код:

$showItem = '%showItem';
...
$round_menu[unactive] = ($showItem == true ? "<a href='%URL' class='%class'><span class='icon i48x48 %icon'></span><b>%NAME%subText</b></a>" : "" );
$round_menu[active] = ($showItem == true ? "<a href='%URL' class='%class active'><span class='icon i48x48 %icon'></span><b>%NAME%subText</b></a>" : "" );
...


$showItem сравнивал и с "true", и с "1", и с "yes", если вывести переменную то она ровна единице, но походу при сравнении ее все еще нет

Пробовал экранировать переменную, ничего не помогает, условие срабатывает всегда, а при тождественном равенстве "===" не срабатывает никогда
198 196 2014-04-25 14:42:11 12629
Страницы: 1  |  2
Описание проекта