|
|
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
Панасин Александр

Зарегистрирован: 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
Панасин Александр

Зарегистрирован: 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
Панасин Александр

Зарегистрирован: 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", если вывести переменную то она ровна единице, но походу при сравнении ее все еще нет
Пробовал экранировать переменную, ничего не помогает, условие срабатывает всегда, а при тождественном равенстве "===" не срабатывает никогда
|