форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Каким образом можно сделать подсветку текущей секции, если сами секции выводятся не при помощи <txp:section_list />, а при помощи <txp:section />?
Т.е. допустим в дизайне странички каждая секция прописана таким образом:
<div class="off"><txp:section link="1" title="1" name="about"/></div>
Необходимо изменить класс у div с 'off' на 'on' в случае если это текущая секция.
Насколько я понимаю для этих целей можно/нужно использовать <txp:if_section>. Но я не могу понять - можно ли не прописывать подобное ветвление с if на каждую секцию прямо в страничке, а как-то вынести в форму которую потом использовать для вывода меню?
Или быть может есть какой-то вариант с использованием <txp:section_list/>? Судя по описанию этого тэга, у него нет атрибута form и значит с формой его скрестить не выйдет...
Неактивен
Эффект "Вы Находитесь Здесь" обычно делается изменением стиля для текущей закладки, а не добавления нового ("on" как в вашем случае).
То есть делается отдельный css файл (если уж совсем строго подходить) который содержит стили для "подсветки" кнопки. И для нужной секции вы его просто подключаете. Можно и в теле сраницы вставить пару правил, но в xhtml 1.0 strict такое уже не пройдет вроде.
Во-вторых, мне кажется (да и не только мне, тут на форуме уже говорилось об этом) что применять такую конструкцию, которую хотите применить Вы, не очень целесообразно. Проще написать:
<li id="about"><a href="/about">ABOUT</a></li>
И всю навигацию оформить списком.
Зачем лишний раз обращаться к БД?
Неактивен
Эффект "Вы Находитесь Здесь" обычно делается изменением стиля для текущей закладки, а не добавления нового ("on" как в вашем случае).
Ну так изменение off на on, и есть изменение стиля...
То есть делается отдельный css файл (если уж совсем строго подходить) который содержит стили для "подсветки" кнопки. И для нужной секции вы его просто подключаете. Можно и в теле сраницы вставить пару правил, но в xhtml 1.0 strict такое уже не пройдет вроде.
Зачем делать отдельным файлом, если есть единый файл со стилями? Что мешает прописать в нем два стиля, для положения off (при котором "задник" отсутствует) и для положения on (при котором "задник" подсвечивается отличным от бэкграунда цветом)?
Во-вторых, мне кажется (да и не только мне, тут на форуме уже говорилось об этом) что применять такую конструкцию, которую хотите применить Вы, не очень целесообразно. Проще написать:
<li id="about"><a href="/about">ABOUT</a></li>
И всю навигацию оформить списком.
Зачем лишний раз обращаться к БД?
Проще то оно может и проще, но по дизайну необходимо подсвечивать бэкграунд в меню для текущей секции. Буду премного благодарен, если приведешь пример того, как это проще/лучше всего сделать не плодя файлы со стилями и не городя if-else конструкции для 8-ми секций прямо в страничках шаблонов.
Неактивен
Изменение класса on на off есть изменение контента, а не стиля. Что не совсем правильно делать. Все должен рулить css.
И ничего страшного в добавлении маленьких css-файликов я не вижу. Например, для вывода на печать или на мобильное устройство так и делают. Пишут отдельный css файл. Не хочешь - пиши стили в странице, но только doctype на Transitional смени.
А насчет <div class="off"><txp:section link="1" title="1" name="about"/></div>
я имел в виду следующее:
div здесь скорее всего не нужен, ибо по смыслу должен быть li (у тебя же 8 секций да?)
тэги Текспаттерна НЕ НУЖНЫ тоже. Я еще раз говорю: там где можно обойтись HTML - нужно им обойтись. Ну если прет, сделай форму содержащую всю навигации и выводи ее в каждом шаблоне. И то больше смысла будет.
Неактивен
Изменение класса on на off есть изменение контента, а не стиля. Что не совсем правильно делать. Все должен рулить css.
Замена class="off" на class="on" это разве замена контена? Ведь и тот и другой класс, это классы из файла стилей, т.е. рулить будет css.
Например, для вывода на печать или на мобильное устройство так и делают. Пишут отдельный css файл.
Да, делают. Но там это оправдано поскольку идет подача контента на другое устройство, и этот контент должен быть по другому оформлен, как правило более упрощено. Кроме того, никто не запрещает, в том числе и спецификация css, прописывать правила для вывода документа на тот же принтер в том же css файле, где хранится описание стилей для web`а. Что позволяет не плодить сущностей aka стилевых файлов.
Не хочешь - пиши стили в странице, но только doctype на Transitional смени.
Нет, я не хотел писать стили в страничке, я хотел их вынести в отдельный файл, чтобы в шаблоне была только ссылка на внешний css файл.
div здесь скорее всего не нужен, ибо по смыслу должен быть li (у тебя же 8 секций да?)
По смыслу да, но по дизайну и для верстки удобней использовать блоки div.
сделай форму содержащую всю навигации и выводи ее в каждом шаблоне
Именно это я и хочу Но не знаю как Насколько я понял, различные формы используются в паре с различными тэгами текстпаттерна. А как сделать отдельную, независимую от тэгов, форму и прицепить ее на страничку? Правильно ли я понимаю, что для этого необходимо использовать тэг <txp:output_form /> ? Потому как ничего более похожего по функционалу на include я в перечне тэгов текстпаттерна не нашел.
Неактивен
фухххх.....ну и трудный ты тип.... :-)
В общем прочти книжку Зельдмана или Дэйва Ши. Попробуй сделать дизайн для Zengarden. Что такое дивитсы и почемы их следует избегать...
Пока что твои аргументы что "по дизайну и для верстки удобней использовать блоки div" звучат странновато. Надо использовать как раз то, что по смыслу должно использоваться. Все. На этом дискуссию прекращаю. Возьми любой сайт и посмотри как там сделана подстветка текущей закладки.
<txp:output_form />. Да именно этот тэг. Сделай форму типа article, назови ее как-то и потом просто сделай вывод тэгом, который ты назвал. Удобно редактировать шаблоны таким образом.
Отредактированно warmrobot (18-10-2006 01:01:24)
Неактивен
<txp:output_form />. Да именно этот тэг. Сделай форму типа article, назови ее как-то и потом просто сделай вывод тэгом, который ты назвал. Удобно редактировать шаблоны таким образом.
Решил попробовать не дожидаясь ответа и таки сделал Но все равно спасибо
фухххх.....ну и трудный ты тип.... :-)
Что есть, то есть
Попробуй сделать дизайн для Zengarden
С этим сайтом я знаком, спасибо Но он в данном случае не пример. У них практически "академический" дизайн с типовой версткой.
Пока что твои аргументы что "по дизайну и для верстки удобней использовать блоки div" звучат странновато.
Может быть и странновато. Но на мой взгляд если меню сделано горизонтально, а не вертикально, то использование li как-то не совсем в тему. Особено с точки зрения удобства и возможностей дальнейшего позиционирования элементов и т.д. Нет универсального способа представления и верстки меню. В каком-то случае используют li, в каком-то div, span или ячейки таблицы. Причем многое зависит от личных предпочтений и привычек кодера.
Возьми любой сайт и посмотри как там сделана подстветка текущей закладки.
Дык давно уже за этим наблюдаю... как бы "не первый день замужем". Обычно все делают при помощи изменения стиля у tr/td либо у div/span в зависимости от того какой тип верстки используется.
Впервые с повсеместным использованием li я столкнулся только когда начал свое знакомство с текстпаттерном
Ладно, на этом действительно пора закругляться, так как тема ушла в оффтопик. Главное, что задачу мне удалось решить. Сэнкс
Неактивен
Ну вообще ты поднял интересную тему. В смысле подсветки текущей закладки. Я решил изучить кто как делает. У нас - меня мало волнует. А вот у НИХ сделано одинаково и ....в общем потом опишу на сайте.
Неактивен
А я пложу if'ы для каждой секции:
<txp:if_section name="about"> <txp:output_form form="this_section_link" /> <txp:else /> <txp:section link="1" title="1" name="about" wraptag="li" /> </txp:if_section>
Ну и получаю либо <li><a>О компании</a></li> либо <li>О компании</li>
Естественно всё меню собранов в одной форме которую я подключаю в каждом шаблоне.
Да. забыл форму this_section_link показать:
<txp:if_article_list> <li><txp:section title="1" wraptag="span" /></li> <txp:else /> <li class="current"><txp:section link="1" title="1" /></li> </txp:if_article_list>
Она нужна чтоб ссылка на секцию всёж была даже если это текущая секция но не список её статей а конкретная статья. Ссылка в этом случае ведёт на список, что хорошо.
Отредактированно Nicck (18-10-2006 17:34:17)
Неактивен
либо <li><a>О компании</a></li> либо <li>О компании</li>
Это есть гуд. Лебедев бы прослезился наверное. Я так не морочился, но уважаю.
Я все подсмотрел у "взрослых" (у Ши, Зельдмана, да и Йохансона тоже) :-)))
Они не присваивают классы для li.
Они присваивают разные классы элементу body в зависимости от текущей позиции. И CSS файл у них получается один.
Ну вот и я тоже так сделал.
Делать ссылку на самое себя конечно неправильно... ну черт с ним.
Неактивен
warmrobot написал:
Ну вообще ты поднял интересную тему. В смысле подсветки текущей закладки. Я решил изучить кто как делает. У нас - меня мало волнует. А вот у НИХ сделано одинаково и ....в общем потом опишу на сайте.
Да, поскольку тему перенесли в другой раздел, вижу что тема интересна
Как опишешь на сайте, кинь плиз линк почитать.
Неактивен
Nicck написал:
Страница не должна ссылаться на саму себя.
Форс бандитский Вид ссылки должен меняться. Потом есть ситуации, когда на странице ищешь ссылку на нее же.
Неактивен
Ссылка на страницу есть в адресной строке браузера. всегда. если ты предпочитаешь искать её на самой странице то ты ссзб.
Лебедев Лебедев... что других умных людей мало? И нифига не кроме лебедева, много кто не забил. Я например не забил, хотя моя фамилия далеко не Лебедев.
Неактивен
Что значит "фамилия далеко не Лебедев"?
Как раз сайты людей, которых я считаю умными нисколько не страдают от того, что страницы содержат ссылки на саму себя. А про Лебедева...кроме его сайта, я и не встречал таких заморочек. Вот и все. Хотя я конечно, согласен, что по смыслу так должно быть... но с другой стороны это не так смертельно, если забить на это дело. Если текущая закладка помечена как следует, то мне и в голову не придет щелкнуть туда.
Неактивен
Nicck написал:
Ссылка на страницу есть в адресной строке браузера. всегда. если ты предпочитаешь искать её на самой странице то ты ссзб.
Вопрос имени Джефа Раскина: что проще - кликнуть правой клавишей на ссылку и выбрать "копировать ссылку" или кликнуть мышью в адресной строке (предварительно ея туда подняв), убедиться, что ссылка выделена целиком (а на некоторых сайтах - наоборот, отсечь параметры вроде идентификатора ката или еще чего; или сделатть двойной клик, чтобы выделить урл, или убедиться, что урл нужен вообще другой) и уже потом копировать?
А ссылка из адресной строки ВСЕГДА приводит на ту же страницу?
А ты уверен, что у всех статей на "Взгляде" постоянная ссылка совпадает с адресной строкой? Рекомендую убедиться, что у новых статей не совпадает. А "Взгляд" такой один?
А практически во всех блогах такая есть ссылочка - permalink, она куда ведет? То-то.
И кто тут ссзб?
Отредактированно glebotr (25-10-2006 17:07:11)
Неактивен
warmrobot написал:
Что значит "фамилия далеко не Лебедев"?
Если текущая закладка помечена как следует, то мне и в голову не придет щелкнуть туда.
А самое главное - даже если щелкнешь, ничего страшного ен призойдет. Более того, ссылка поведет себя в полном соответствии с ожидаемым поведением, что есть правильно.
Неактивен
Begemot написал:
А зачем "забивать", что, так сложно сделать по уму?
В том-то и дело, что никакого особенного "по уму" тут нет.
Неактивен
С permlink всё верно. Нужен пермлинк на статью если статья выведена на главной или ещё где-то где её может со временем не стать. Речь о том что не должно быть на главной страницке ссылки "на главную" и на /news не должно быть ссылки на /news и т.п. Это нужно в первую очередь не столько для поведения сколько для того чтоб пользователю проще было сориентироваться. Хотя конечно всё это рекомендации, не более того. От w3c кстати тоже рекомендации, так что и там не надо заморачиваться. )
Неактивен
Nicck написал:
С permlink всё верно. Нужен пермлинк на статью если статья выведена на главной или ещё где-то где её может со временем не стать. Речь о том что не должно быть на главной страницке ссылки "на главную" и на /news не должно быть ссылки на /news и т.п. Это нужно в первую очередь не столько для поведения сколько для того чтоб пользователю проще было сориентироваться. Хотя конечно всё это рекомендации, не более того. От w3c кстати тоже рекомендации, так что и там не надо заморачиваться. )
Достаточно либо изменить ВИД ссылки, или ВИД страницы. А вот делать ссылку неработающей или убирать - в корне неверно, так как элементы интерфейса должны а) всегда одинаково выглядеть (чтобы пользователь не задумывался, то ли это меню, или уже второго уровня и мог переходить по разделам "на автомате"), б) всегда одинаково функционировать (пользватель либо не оценит неработающую ссылку, либо поймето только, что она "сломалась"). В конце концов, ссылка на новости в разделе новостей приведет в раздел новостей
К тому же, рассмотрим такой случай: у нас есть меню верхнего уровня. Мы пошли в раздел "Новости". Ссылка на него стала нефункциональной. ОК. Мы остались в том же разделе, но вошли в подраздел. Теперь ссылка "Новости" обязана функционировать! Так что для выделения раздела все равно придется использовать другие средства (а не отключение ссылки), иначе при входе в подраздел пользователь не поймет, в каком он разделе.
Я это все как раз к тому, что сама рекомендация - не то, чтобы неправильная - неосмысленная. И даже более того - правильнее рекомендовать именно что не отключать ссылки, а пользоваться другими средствами индикации положения.
Неактивен
glebotr написал:
К тому же, рассмотрим такой случай: у нас есть меню верхнего уровня. Мы пошли в раздел "Новости". Ссылка на него стала нефункциональной. ОК. Мы остались в том же разделе, но вошли в подраздел. Теперь ссылка "Новости" обязана функционировать! Так что для выделения раздела все равно придется использовать другие средства (а не отключение ссылки), иначе при входе в подраздел пользователь не поймет, в каком он разделе.
Ну обязана так пусть при входе в подраздел она станет ссылкой.
Выше приведенный мной код всё делает как надо. Смотри тут:
http://kodeks.udm.ru/
Там есть ссылка на "События" (не отличается от прочих). Жмём.
http://kodeks.udm.ru/events/
Оказываемся на странице со списком событий.
В меню становится видно где мы находимся, но там не ссылка. Не будет ситуации при который мы нажмем на ссылку и ничего не произойдёт (попадём туда же). Пункт в меню выделен и мы видим что он выбран.
Теперь выбираем конкретное саобытие. Например "12: Строй-Ресурс – вся информация...". Жмём.
http://kodeks.udm.ru/events/126/
Оказываемся на странице с описанием конкретного события. Теперь ссылка на список событий конечно нужна (и эта ссылка на другую страницу, не на ту что мы видим) и она есть.
...
Вообщем я к чему: если я нажал на ссылку то должно что-то произойти. Система должна реагировать. Ссылка на со страницы на саму себя не есть хорошо. Отсутствие ссылки на себя не есть плохо. Значит лучше пусть не будет ссылки на себя. Показать визуально где пользователь находится можно и при её отсутствии.
glebotr написал:
так как элементы интерфейса должны а) всегда одинаково выглядеть (чтобы пользователь не задумывался, то ли это меню, или уже второго уровня и мог переходить по разделам "на автомате"), б) всегда одинаково функционировать (пользватель либо не оценит неработающую ссылку, либо поймето только, что она "сломалась"). В конце концов, ссылка на новости в разделе новостей приведет в раздел новостей
а) почему тогда выбранная вкладка отличается от невыбранной? отмеченный чекбокс от неотмеченного?
Мы именно об этом говорим. То что выделять одни ссылки в тексте подчёркиванием а другие фоном не хорошо это ясно. Одинаковые вещи в интерфейсе должны одинаково выглядеть. это да. чекбоксы на все страницах должны быть похожи чтоб пользователь их сразу узнавал.
б)А вот даже нечго возразить... пожалуй да.
Вообщем-то ты меня убедил. Пожалуй не буду я биться за устранение ссылки если это делает решение более сложным. Лучше пусть оно будет простым.
Неактивен