Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 17-10-2006 01:08:16

Unseen
покой
Откуда: Киев
Зарегистрирован: 11-09-2006
Сообщений: 315
Вебсайт

А как сделать подсветку текущей секции?

Каким образом можно сделать подсветку текущей секции, если сами секции выводятся не при помощи <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 и значит с формой его скрестить не выйдет...

Неактивен

 

#2 17-10-2006 10:30:02

warmrobot
наш
Откуда: Москва
Зарегистрирован: 25-08-2006
Сообщений: 219
Вебсайт

Re: А как сделать подсветку текущей секции?

Эффект "Вы Находитесь Здесь" обычно делается изменением стиля  для текущей закладки, а не добавления нового ("on" как в вашем случае).
То есть делается отдельный css файл (если уж совсем строго подходить) который содержит стили для "подсветки" кнопки. И для нужной секции вы его просто подключаете. Можно и в теле сраницы вставить пару правил, но в xhtml 1.0 strict такое уже не пройдет вроде.
Во-вторых, мне кажется (да и не только мне, тут на форуме уже говорилось об этом) что применять такую конструкцию, которую хотите применить Вы, не очень целесообразно. Проще написать:
<li id="about"><a href="/about">ABOUT</a></li>
И всю навигацию оформить списком.
Зачем лишний раз обращаться к БД?

Неактивен

 

#3 17-10-2006 14:44:06

Unseen
покой
Откуда: Киев
Зарегистрирован: 11-09-2006
Сообщений: 315
Вебсайт

Re: А как сделать подсветку текущей секции?

Эффект "Вы Находитесь Здесь" обычно делается изменением стиля  для текущей закладки, а не добавления нового ("on" как в вашем случае).

Ну так изменение off на on, и есть изменение стиля...

То есть делается отдельный css файл (если уж совсем строго подходить) который содержит стили для "подсветки" кнопки. И для нужной секции вы его просто подключаете. Можно и в теле сраницы вставить пару правил, но в xhtml 1.0 strict такое уже не пройдет вроде.

Зачем делать отдельным файлом, если есть единый файл со стилями? Что мешает прописать в нем два стиля, для положения off (при котором "задник" отсутствует) и для положения on (при котором "задник" подсвечивается отличным от бэкграунда цветом)?

Во-вторых, мне кажется (да и не только мне, тут на форуме уже говорилось об этом) что применять такую конструкцию, которую хотите применить Вы, не очень целесообразно. Проще написать:
<li id="about"><a href="/about">ABOUT</a></li>
И всю навигацию оформить списком.
Зачем лишний раз обращаться к БД?

Проще то оно может и проще, но по дизайну необходимо подсвечивать бэкграунд в меню для текущей секции. Буду премного благодарен, если приведешь пример того, как это проще/лучше всего сделать не плодя файлы со стилями и не городя if-else конструкции для 8-ми секций прямо в страничках шаблонов.

Неактивен

 

#4 17-10-2006 16:58:01

warmrobot
наш
Откуда: Москва
Зарегистрирован: 25-08-2006
Сообщений: 219
Вебсайт

Re: А как сделать подсветку текущей секции?

Изменение класса on на off есть изменение контента, а не стиля. Что не совсем правильно делать. Все должен рулить css.
И ничего страшного  в добавлении маленьких css-файликов я не вижу. Например, для вывода на печать или на мобильное устройство так и делают. Пишут отдельный css файл. Не хочешь - пиши стили в странице, но только doctype на Transitional смени.

А насчет <div class="off"><txp:section link="1" title="1" name="about"/></div>

я имел в виду следующее:
div здесь скорее всего не нужен, ибо по смыслу должен быть li (у тебя же 8 секций да?)
тэги Текспаттерна НЕ НУЖНЫ тоже. Я еще раз говорю: там где можно обойтись HTML - нужно им обойтись. Ну если прет, сделай форму содержащую всю навигации и выводи ее в каждом шаблоне.  И то больше смысла будет.

Неактивен

 

#5 18-10-2006 00:49:27

Unseen
покой
Откуда: Киев
Зарегистрирован: 11-09-2006
Сообщений: 315
Вебсайт

Re: А как сделать подсветку текущей секции?

Изменение класса on на off есть изменение контента, а не стиля. Что не совсем правильно делать. Все должен рулить css.

Замена class="off" на class="on" это разве замена контена? Ведь и тот и другой класс, это классы из файла стилей, т.е. рулить будет css.

Например, для вывода на печать или на мобильное устройство так и делают. Пишут отдельный css файл.

Да, делают. Но там это оправдано поскольку идет подача контента на другое устройство, и этот контент должен быть по другому оформлен, как правило более упрощено. Кроме того, никто не запрещает, в том числе и спецификация css, прописывать правила для вывода документа на тот же принтер в том же css файле, где хранится описание стилей для web`а. Что позволяет не плодить сущностей aka стилевых файлов.

Не хочешь - пиши стили в странице, но только doctype на Transitional смени.

Нет, я не хотел писать стили в страничке, я хотел их вынести в отдельный файл, чтобы в шаблоне была только ссылка на внешний css файл.

div здесь скорее всего не нужен, ибо по смыслу должен быть li (у тебя же 8 секций да?)

По смыслу да, но по дизайну и для верстки удобней использовать блоки div.

сделай форму содержащую всю навигации и выводи ее в каждом шаблоне

Именно это я и хочу smile Но не знаю как sad Насколько я понял, различные формы используются в паре с различными тэгами текстпаттерна. А как сделать отдельную, независимую от тэгов, форму и прицепить ее на страничку? Правильно ли я понимаю, что для этого необходимо использовать тэг <txp:output_form /> ? Потому как ничего более похожего по функционалу на include я в перечне тэгов текстпаттерна не нашел.

Неактивен

 

#6 18-10-2006 00:53:53

warmrobot
наш
Откуда: Москва
Зарегистрирован: 25-08-2006
Сообщений: 219
Вебсайт

Re: А как сделать подсветку текущей секции?

фухххх.....ну и трудный ты тип.... :-)
В общем прочти книжку Зельдмана или Дэйва Ши. Попробуй сделать дизайн для Zengarden. Что такое дивитсы и почемы их следует избегать...
Пока что твои аргументы что "по дизайну и для верстки удобней использовать блоки div" звучат странновато. Надо использовать как раз то, что по смыслу должно использоваться. Все. На этом дискуссию прекращаю. Возьми любой сайт и посмотри как там сделана подстветка текущей закладки.

<txp:output_form />. Да именно этот тэг. Сделай форму типа article, назови ее как-то и потом просто сделай вывод тэгом, который ты назвал. Удобно редактировать шаблоны таким образом.

Отредактированно warmrobot (18-10-2006 01:01:24)

Неактивен

 

#7 18-10-2006 01:29:27

Unseen
покой
Откуда: Киев
Зарегистрирован: 11-09-2006
Сообщений: 315
Вебсайт

Re: А как сделать подсветку текущей секции?

<txp:output_form />. Да именно этот тэг. Сделай форму типа article, назови ее как-то и потом просто сделай вывод тэгом, который ты назвал. Удобно редактировать шаблоны таким образом.

Решил попробовать не дожидаясь ответа и таки сделал smile Но все равно спасибо smile

фухххх.....ну и трудный ты тип.... :-)

Что есть, то есть smile

Попробуй сделать дизайн для Zengarden

С этим сайтом я знаком, спасибо smile Но он в данном случае не пример. У них практически "академический" дизайн с типовой версткой.

Пока что твои аргументы что "по дизайну и для верстки удобней использовать блоки div" звучат странновато.

Может быть и странновато. Но на мой взгляд если меню сделано горизонтально, а не вертикально, то использование li как-то не совсем в тему. Особено с точки зрения удобства и возможностей дальнейшего позиционирования элементов и т.д. Нет универсального способа представления и верстки меню. В каком-то случае используют li, в каком-то div, span или ячейки таблицы. Причем многое зависит от личных предпочтений и привычек кодера.

Возьми любой сайт и посмотри как там сделана подстветка текущей закладки.

Дык давно уже за этим наблюдаю... как бы "не первый день замужем". Обычно все делают при помощи изменения стиля у tr/td либо у div/span в зависимости от того какой тип верстки используется.
Впервые с повсеместным использованием li я столкнулся только когда начал свое знакомство с текстпаттерном wink

Ладно, на этом действительно пора закругляться, так как тема ушла в оффтопик. Главное, что задачу мне удалось решить. Сэнкс smile

Неактивен

 

#8 18-10-2006 11:31:35

warmrobot
наш
Откуда: Москва
Зарегистрирован: 25-08-2006
Сообщений: 219
Вебсайт

Re: А как сделать подсветку текущей секции?

Ну вообще ты поднял интересную тему. В смысле подсветки текущей закладки. Я решил изучить кто как делает. У нас - меня мало волнует. А вот у НИХ сделано одинаково и ....в общем потом опишу на сайте.

Неактивен

 

#9 18-10-2006 17:27:42

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: А как сделать подсветку текущей секции?

А я пложу 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)

Неактивен

 

#10 18-10-2006 20:17:54

warmrobot
наш
Откуда: Москва
Зарегистрирован: 25-08-2006
Сообщений: 219
Вебсайт

Re: А как сделать подсветку текущей секции?

либо <li><a>О компании</a></li> либо <li>О компании</li>

Это есть гуд. Лебедев бы прослезился наверное. Я так не морочился, но уважаю.
Я все подсмотрел у "взрослых" (у Ши, Зельдмана, да и Йохансона тоже) :-)))
Они не присваивают классы для li.
Они присваивают разные классы элементу body в зависимости от текущей позиции. И CSS файл у них получается один.
Ну вот и я тоже так сделал.

Делать ссылку на самое себя конечно неправильно... ну черт с ним.

Неактивен

 

#11 19-10-2006 11:21:13

Unseen
покой
Откуда: Киев
Зарегистрирован: 11-09-2006
Сообщений: 315
Вебсайт

Re: А как сделать подсветку текущей секции?

warmrobot написал:

Ну вообще ты поднял интересную тему. В смысле подсветки текущей закладки. Я решил изучить кто как делает. У нас - меня мало волнует. А вот у НИХ сделано одинаково и ....в общем потом опишу на сайте.

Да, поскольку тему перенесли в другой раздел, вижу что тема интересна big_smile
Как опишешь на сайте, кинь плиз линк почитать.

Неактивен

 

#12 21-10-2006 21:56:52

warmrobot
наш
Откуда: Москва
Зарегистрирован: 25-08-2006
Сообщений: 219
Вебсайт

Re: А как сделать подсветку текущей секции?

Неактивен

 

#13 23-10-2006 15:31:28

Unseen
покой
Откуда: Киев
Зарегистрирован: 11-09-2006
Сообщений: 315
Вебсайт

Re: А как сделать подсветку текущей секции?

warmrobot написал:

Запостил  ;-)

Почитал smile

Неактивен

 

#14 23-10-2006 18:51:02

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: А как сделать подсветку текущей секции?

Страница не должна ссылаться на саму себя.

Неактивен

 

#15 23-10-2006 20:38:17

warmrobot
наш
Откуда: Москва
Зарегистрирован: 25-08-2006
Сообщений: 219
Вебсайт

Re: А как сделать подсветку текущей секции?

Страница не должна ссылаться на саму себя.

Боюсь что на это все уже подзабили. Кроме Лебедева конечно.

Неактивен

 

#16 24-10-2006 11:13:29

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: А как сделать подсветку текущей секции?

Nicck написал:

Страница не должна ссылаться на саму себя.

Форс бандитский wink Вид ссылки должен меняться. Потом есть ситуации, когда на странице ищешь ссылку на нее же.


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#17 24-10-2006 18:18:17

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: А как сделать подсветку текущей секции?

Ссылка на страницу есть в адресной строке браузера. всегда. если ты предпочитаешь искать её на самой странице то ты ссзб.

Лебедев Лебедев... что других умных людей мало? И нифига не кроме лебедева, много кто не забил. Я например не забил, хотя моя фамилия далеко не Лебедев.

Неактивен

 

#18 24-10-2006 19:03:37

warmrobot
наш
Откуда: Москва
Зарегистрирован: 25-08-2006
Сообщений: 219
Вебсайт

Re: А как сделать подсветку текущей секции?

Что значит "фамилия далеко не Лебедев"? smile
Как раз сайты людей, которых я считаю умными нисколько не страдают от того, что страницы содержат ссылки на саму себя. А про Лебедева...кроме его сайта, я и не встречал таких заморочек. Вот и все. Хотя я конечно, согласен, что по смыслу так должно быть... но с другой стороны это не так смертельно, если забить на это дело. Если текущая закладка помечена как следует, то мне и в голову не придет щелкнуть туда.

Неактивен

 

#19 25-10-2006 10:37:06

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: А как сделать подсветку текущей секции?

А зачем "забивать", что, так сложно сделать по уму?


Время не ждет.

Неактивен

 

#20 25-10-2006 11:31:12

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: А как сделать подсветку текущей секции?

Nicck написал:

Ссылка на страницу есть в адресной строке браузера. всегда. если ты предпочитаешь искать её на самой странице то ты ссзб.

Вопрос имени Джефа Раскина: что проще - кликнуть правой клавишей на ссылку и выбрать "копировать ссылку" или кликнуть мышью в адресной строке (предварительно ея туда подняв), убедиться, что ссылка выделена целиком (а на некоторых сайтах - наоборот, отсечь параметры вроде идентификатора ката или еще чего; или сделатть двойной клик, чтобы выделить урл, или убедиться, что урл нужен вообще другой) и уже потом копировать?

А ссылка из адресной строки ВСЕГДА приводит на ту же страницу?

А ты уверен, что у всех статей на "Взгляде" постоянная ссылка совпадает с адресной строкой? Рекомендую убедиться, что у новых статей не совпадает. А "Взгляд" такой один?

А практически во всех блогах  такая есть ссылочка - permalink, она куда ведет? То-то.

И кто тут ссзб? wink

Отредактированно glebotr (25-10-2006 17:07:11)


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#21 25-10-2006 11:32:20

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: А как сделать подсветку текущей секции?

warmrobot написал:

Что значит "фамилия далеко не Лебедев"? smile
Если текущая закладка помечена как следует, то мне и в голову не придет щелкнуть туда.

А самое главное - даже если щелкнешь, ничего страшного ен призойдет. Более того, ссылка поведет себя в полном соответствии с ожидаемым поведением, что есть правильно.


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#22 25-10-2006 14:29:24

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: А как сделать подсветку текущей секции?

Begemot написал:

А зачем "забивать", что, так сложно сделать по уму?

В том-то и дело, что никакого особенного "по уму" тут нет.


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#23 26-10-2006 23:31:57

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: А как сделать подсветку текущей секции?

С permlink всё верно. Нужен пермлинк на статью если статья выведена на главной или ещё где-то где её может со временем не стать. Речь о том что не должно быть на главной страницке ссылки "на главную" и на /news не должно быть ссылки на /news и т.п. Это нужно в первую очередь не столько для поведения сколько для того чтоб пользователю проще было сориентироваться. Хотя конечно всё это рекомендации, не более того. От w3c кстати тоже рекомендации, так что и там не надо заморачиваться. )

Неактивен

 

#24 27-10-2006 15:49:50

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: А как сделать подсветку текущей секции?

Nicck написал:

С permlink всё верно. Нужен пермлинк на статью если статья выведена на главной или ещё где-то где её может со временем не стать. Речь о том что не должно быть на главной страницке ссылки "на главную" и на /news не должно быть ссылки на /news и т.п. Это нужно в первую очередь не столько для поведения сколько для того чтоб пользователю проще было сориентироваться. Хотя конечно всё это рекомендации, не более того. От w3c кстати тоже рекомендации, так что и там не надо заморачиваться. )

Достаточно либо изменить ВИД ссылки, или ВИД страницы. А вот делать ссылку неработающей или убирать - в корне неверно, так как элементы интерфейса должны а) всегда одинаково выглядеть (чтобы пользователь не задумывался, то ли это меню, или уже второго уровня и мог переходить по разделам "на автомате"), б) всегда одинаково функционировать (пользватель либо не оценит неработающую ссылку, либо поймето только, что она "сломалась"). В конце концов, ссылка на новости в разделе новостей приведет в раздел новостей wink

К тому же, рассмотрим такой случай: у нас есть меню верхнего уровня. Мы пошли в раздел "Новости". Ссылка на него стала нефункциональной. ОК. Мы остались в том же разделе, но вошли в подраздел. Теперь ссылка "Новости" обязана функционировать! Так что для выделения раздела все равно придется использовать другие средства (а не отключение ссылки), иначе при входе в подраздел пользователь не поймет, в каком он разделе.

Я это все как раз к тому, что сама рекомендация - не то, чтобы неправильная - неосмысленная. И даже более того - правильнее рекомендовать именно что не отключать ссылки, а пользоваться другими средствами индикации положения.


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#25 28-10-2006 21:42:38

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: А как сделать подсветку текущей секции?

glebotr написал:

К тому же, рассмотрим такой случай: у нас есть меню верхнего уровня. Мы пошли в раздел "Новости". Ссылка на него стала нефункциональной. ОК. Мы остались в том же разделе, но вошли в подраздел. Теперь ссылка "Новости" обязана функционировать! Так что для выделения раздела все равно придется использовать другие средства (а не отключение ссылки), иначе при входе в подраздел пользователь не поймет, в каком он разделе.

Ну обязана так пусть при входе в подраздел она станет ссылкой.
Выше приведенный мной код всё делает как надо. Смотри тут:

http://kodeks.udm.ru/
Там есть ссылка на "События" (не отличается от прочих). Жмём.

http://kodeks.udm.ru/events/
Оказываемся на странице со списком событий.
В меню становится видно где мы находимся, но там не ссылка. Не будет ситуации при который мы нажмем на ссылку и ничего не произойдёт (попадём туда же). Пункт в меню выделен и мы видим что он выбран.
Теперь выбираем конкретное саобытие. Например "12: Строй-Ресурс – вся информация...". Жмём.

http://kodeks.udm.ru/events/126/
Оказываемся на странице с описанием конкретного события. Теперь ссылка на список событий конечно нужна (и эта ссылка на другую страницу, не на ту что мы видим) и она есть.
...

Вообщем я к чему: если я нажал на ссылку то должно что-то произойти. Система должна реагировать. Ссылка на со страницы на саму себя не есть хорошо. Отсутствие ссылки на себя не есть плохо. Значит лучше пусть не будет ссылки на себя. Показать визуально где пользователь находится можно и при её отсутствии.


glebotr написал:

так как элементы интерфейса должны а) всегда одинаково выглядеть (чтобы пользователь не задумывался, то ли это меню, или уже второго уровня и мог переходить по разделам "на автомате"), б) всегда одинаково функционировать (пользватель либо не оценит неработающую ссылку, либо поймето только, что она "сломалась"). В конце концов, ссылка на новости в разделе новостей приведет в раздел новостей wink

а) почему тогда выбранная вкладка отличается от невыбранной? отмеченный чекбокс от неотмеченного?
Мы именно об этом говорим. То что выделять одни ссылки в тексте подчёркиванием а другие фоном не хорошо это ясно. Одинаковые вещи в интерфейсе должны одинаково выглядеть. это да. чекбоксы на все страницах должны быть похожи чтоб пользователь их сразу узнавал.
б)А вот даже нечго возразить... пожалуй да. smile

Вообщем-то ты меня убедил. smile Пожалуй не буду я биться за устранение ссылки если это делает решение более сложным. Лучше пусть оно будет простым.

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru