cotonti.com : Маленькое пояснение по "хлебным крошкам" https://www.cotonti.com Laatste forum onderwerpen Cotonti en Sat, 13 Dec 2025 19:11:50 -0000 esclkm он практически редко применим... хотя.... иногда нужен

]]>
Zo, 22 Mei 2011 08:06:50 -0000
Evil Я предложил вариант, а вы его уже оценивайте, хорош он или нет.

]]>
Zo, 22 Mei 2011 07:27:14 -0000
esclkm то есть надо циклы в шаблонизаторе???

]]>
Za, 21 Mei 2011 21:23:42 -0000
Evil Разве нельзя зацыклить вывод? что-то типа:

Сначало идет перебор на длинну вложенности, а потом выдает название страницы:

<a href="https://www.cotonti.com/">Главная</a> /

for(set @i,0; @i < max_cat; set @i,@i+1) {

<a href="https://www.cotonti.com/{cat}">{cat_name}</a> /

}

<a href="https://www.cotonti.com/{page}">{page_name}</a>

 

В итоге мы получаем:

<a href="https://www.cotonti.com/">Главная</a> / <a href="https://www.cotonti.com/{cat1}">{cat_name1}</a> / <a href="https://www.cotonti.com/{cat2}">{cat_name2}</a> / <a href="https://www.cotonti.com/{page}">{page_name}</a>
]]>
Za, 21 Mei 2011 19:40:19 -0000
Oughtem имеется ввиду не количество категорий и глубина их вложенности.

]]>
Di, 15 Mrt 2011 18:41:27 -0000
Kopusha #28874 Oughtem:

Глубоко сомневаюсь в том, что в инете остался кто-то, кто пытается юзать на своём сайте дерево с 60-ю вложенными подразделами. Для подобных случаев конечно можно внедрить ваше предложение. Со спортивным интересом я спорить не буду, тут уже вопрос на "получится/не получится", вместо "надо/не надо".

у меня сайт на 500+ подкатегорий, и ничего. более того, для всех отдельных листтпл и ньюзтпл ручками сделанный шаблон

]]>
Di, 15 Mrt 2011 13:56:33 -0000
Kort Теоретически да, вроде как вставить спан в поле сепаратора -- просто. Но тогда придется учитывать этот спан каждый раз, когда вставляешь сепаратор в код шаблона как PHP.cfg.separator. Я, например, это делаю часто, и оборачиваю его разными спанами в зависимости от контекста. Так что получится и проще и сложнее одновременно.

Топик этот имел целью пояснить то, что крошки в Генуе стали удобнее за счет того, что весь их код теперь имеет разметку. Те, кому это не надо, никак не пострадали. Те, кому это надо, могут теперь сделать красивую бесшовную цепочку без особого труда. БОльшего в Генуе ждать бессмысленно. Кому надо "по спецзаказу", пишут плагин или решают свои проблемы при помощи псевдоклассов.

Чего хотят эти двое, я и сам не могу понять. "Зеркальные" цепочки, нумерные теги -- бред полный.

]]>
Zo, 13 Mrt 2011 21:06:37 -0000
Dayver Сорри но несколько раз прочитав топик не пойму о чем идет спор. Вот в первом посте Kort написал что решение обернуть SPAN'ом .... а потом идет спор о том что не надо лезть в ядро. Kort а где ты предлагаешь оборачивать(в каких файлах)? А если указать в конфигурации в качестве разделителя не символ "\" а например конструкцию <span>\</span> тогда и в ядро никто не лезет и в CSS балуйтесь сколько угодно - это решит проблему? или я совсем не так понял суть вопроса?

]]>
Zo, 13 Mrt 2011 20:25:42 -0000
Oughtem Но у меня есть предложение как логически разложить {PAGE_CATPATH}:
написать функцию, которая считала бы количство разделов, входящих в {PAGE_CATPATH} и каждый раздел называла бы PAGE_CATPATH1, PAGE_CATPATH2, PAGE_CATPATH3, PAGE_CATPATH4 и т.д.

Каждый админ знает насколько у него разветвлено дерево, поэтому в тпл он пишет столько PAGE_CATPATH, насколько у него разветвлено дерево, т.е. если на 5, то получится так:

Главная/PAGE_CATPATH1/PAGE_CATPATH2/PAGE_CATPATH3/PAGE_CATPATH4/PAGE_CATPATH5/{PAGE_SHORTTITLE}

  Если эта страница, к примеру, 2 уровня вложенности, то теги PAGE_CATPATH3, PAGE_CATPATH4 и PAGE_CATPATH5 ничего не выводят. Возникший тогда вопрос со слешем (или другим разделителем) между ними можно решить, двумя путями: Или как с запятой в тегах или использавать как разделитель тег, выводящий разделитель из админки(Управление сайтом / Конфигурация / Скины). В таком случае надо в пхп написать проверку типа "если есть PAGE_CATPATH3, тогда и разделитель за ней тоже есть".

В таком варианте всё будет в тпл, будет всего 1 шаблон, не пострадает админ разветвлённого сайта и не надо будет лазить в ядро.

]]>
Zo, 13 Mrt 2011 19:48:40 -0000
esclkm посему мое предложение было такое - что крошки должны автособираться на основе массива и 2 ресурсных строк. кому надо руками - тот пройдет руками по массиву - кому надо ногами - функция сама все соберет - в итоге получатся все крошки по всему сайту в одном стилле - с возможностью сделать так - как хочу именно я(ты,он)

]]>
Zo, 13 Mrt 2011 19:08:28 -0000
Oughtem В том то и дело, что ваша задача

2 страницы. 1 шаблон.
страница 1 - путь: 1\2\3\4\5\страница1
страница 2 - путь 1\2\страница2

с достижением тех целей, о которых я писал в 19 посте не решается никак. Без достижения этих целей она решается способом Корта. С созданием нескольких шаблонов она решается моим способом. Но ни одно из них не может считаться универсальным, т.к. каждое из них решает лишь отдельные задачи. У меня этот вопрос не решён. У меня так: 

<a href="https://www.cotonti.com/">Главная</a> / {PAGE_CATPATH} / {PAGE_SHORTTITLE}

Но этот {PAGE_CATPATH} мне не нравится, т.к. я не могу его править так, как мне хочется. Поэтому я говорю, что его надо разбить на части для возможности их редактирования и обёртка в этом случае не нужна. Как его разбить средствами пхп я не знаю, т.к. я не пишу на пхп.

]]>
Zo, 13 Mrt 2011 18:55:34 -0000
esclkm Oughtem: - твой сособ в студию!

задача 2 страницы. 1 шаблон.

страница 1 - путь: 1\2\3\4\5\страница1

страница 2 - путь 1\2\страница2

в крошках необходимо отобразить полный путь

я не отрицаю галантное решение хаком - но покажи его другим! може действительно надо его внедрить?

]]>
Zo, 13 Mrt 2011 18:21:23 -0000
Kort #28902 Oughtem:

Минус на минус даёт плюс. Поэтому, если вас пытаются смешать с г@вном, просто н@срите на это. (Стас Янковский)

esclkm, думаю, вам стоит сменить манеру общения, чтоб у собеседников не возникало желания н@срить на вас.

Сергеич, мышей не ловишь.

Oughtem: проверьте собственные выражения и смените тон.

]]>
Zo, 13 Mrt 2011 18:08:38 -0000
Oughtem С помощью этих тегов не построить всю цепочку. PAGE_CATTITLE выводит только ту кутегорию, в которой лежит страница. Родительские категории самой категории не выводятся. Поэтому и приходится лезть в ядро, чтобы править цепь.

Речь, по сути, идёт о бессмысленности (с моей точки зрения) идеи обёртки, т.к. это делается для сохранения монолитности цепи и её редактирования средствами ксс. Я же говорю, что цепь надо строить из тегов. Тогда всё выносится в шаблон и настраивается как кому угодно. Тогда и оборачивать ничего в ядре не надо.

ЗЫ:

Минус на минус даёт плюс. Поэтому, если вас пытаются смешать с г@вном, просто н@срите на это. (Стас Янковский)

esclkm, думаю, вам стоит сменить манеру общения, чтоб у собеседников не возникало желания н@срить на вас.

]]>
Zo, 13 Mrt 2011 17:00:35 -0000
jcrush Да все понятно, тогда уж делайте настройку по типу где можно указать и контейнер, сейчас можно просто разделитель поставить например - \ или > а может тогда там же кому надо вписывать и сам контейнер: <span> \ </span>

]]>
Zo, 13 Mrt 2011 00:19:57 -0000
esclkm чукча писатель, чукча не читатель - так выходит. Вам пишут одну проблему вы описываете другую

то что вы описываете - это всего лишь - на практике поставить сепаратор "\ " - а не править коды движка, а код последней категории - это три тега для вас: PAGE_SHORTTITLE PAGE_CATURL PAGE_CATTITLE и все))) - никаких правок движка.

То о чем говорит корт - это вывод полной цепочки. Если на вашем сайте не надо - выводить полную цепочку, это не значит что и другим не надо, и что ветвление дерева это плохо.

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

Так вот вопрос корта касается сайтов с разветвленной структурой. когда находясь в категории - неизвесна ее глубина - и вывод простыми тегами невозможен

]]>
Za, 12 Mrt 2011 21:43:56 -0000
jcrush Поддерживаю.

]]>
Za, 12 Mrt 2011 14:56:42 -0000
Oughtem По мамяти: {LIST_PAGETITLE} и {PAGE_TITLE} в стандартном варианте выводят цепочку с сылками на конце точно. И чтобы править эту цепочку надо лезть в ядро, что и предлогается сохранить.

]]>
Za, 12 Mrt 2011 14:55:38 -0000
jcrush у меня цепочка по виду:

 

подраздел (ссылка) - страница (без ссылки) в роде лишней разметки не заметил, что радует.

]]>
Za, 12 Mrt 2011 14:35:57 -0000
Oughtem Речь не идёт конкретно о "/". Основное из того, что мне не нравится помимо перечисленного выше, это то, что цепочка в вашем предложении выступает в качестве монолита, который нельзя разобрать на куски. Вы говорите

В ядро добавлена разметка, которая позволяет средствами CSS сделать все, что душе угодно

Моей душе угодно

  1. вид "Главная(ссылка) / раздел (ссылка) / подраздел (ссылка) / страница (без ссылки)
  2. вид "Домой(а не "главная") / раздел....
  3. вид "Главная · раздел · подраздел · страница 
  4. вид "страница / подраздел / раздел / Главная

и прочие варианты. Этого нельзя будет сделать. Нельзя цепочку оформлять как монолит.

]]>
Za, 12 Mrt 2011 12:42:34 -0000
Kort Верстай. Т. е. для этого тебе вообще ничего не надо делать. В чем принципиальная разница между / и инлайновым <span>/</span>?

Но если тебе вдруг понадобится для какого-нибудь раздела / шаблона сделать цепочку с фонами, это можно будет сделать тоже.

]]>
Za, 12 Mrt 2011 05:55:12 -0000
jcrush а если я хочу верстать без CSS ?

]]>
Za, 12 Mrt 2011 05:47:07 -0000
Kort Sergeich: ul и регулярные блоки -- удел Сиены. В лиде написано все и подробно. Примерный эффект от этого такой:

Уж не знаю как более наглядно обяснить.

Oughtem: именно после такой модификации вы можете изменить все, что угодно. И лезть никуда не надо. В ядро добавлена разметка, которая позволяет средствами CSS сделать все, что душе угодно или оставить все как есть для совместимости. Контейнер -- это не оформление! Без него в моем примере между анкерами у вас будут выведен сепаратор, от которого избавиться нельзя, поскольку он не размечен.

И еще: речь не о глубоком ветвлении, а о ветвлении разной степени вложенности! У вас для всего используется "Главная - раздел". А если у меня есть и "Главная - раздел" и "Главная - раздел - раздел" и "Главная - раздел - раздел - раздел"?  Как вы предлагаете "вручную" оформить цепочку в таком простом случае? Только тегом, который выведет предварительно сформированный код. Только теперь он полностью размечен, и верстальщик может создать красивые графически оформленные крошки.

]]>
Za, 12 Mrt 2011 05:29:18 -0000
Oughtem У меня 4-уровневое дерево и решаю я этот вопрос путём внесения в ядро своих тегов. И тогда да, эта проблема решается просто и безболезненно.

Ещё раз поясню к чему я аппелировал: вы ориентируетесь на узкую группу людей, у которой возникает необходимость глубоко ветвится. Вы оставляете обёртку в ядре - это старые грабли. Вы предлагаете решать вопросы с пунктуацией средствами ксс (шик и блекс). В конечном итоге юзер получает нередактируемую цепь, в которой он может изменить только её внешний вид. Снять/добавить ссылку в цепи, поставить пробел, заменить сеператор на другой знак он не может. Вернее может, но лезет в ядро.

esclkm, меня радует, что моя персона вас интересует больше, чем данная проблема. Follow me.

]]>
Za, 12 Mrt 2011 05:21:47 -0000
Sergeich esclkm, вот это верно замечено. господа, давайте поменьше срача, побольше конструктива. 

Вообще эту цепочку нужно строить при помощи тегов UL LI, а уж их то можно оформить как угодно через CSS.

]]>
Za, 12 Mrt 2011 03:21:35 -0000
Kort Да. Самое странное, что у товарища, похоже, одноуровневая структура, и цепочка имеет вид "Главная / Раздел". Решает он свою задачу просто и без тегов, которые я указал в лиде. И замечательно что так. Но тогда непонятно к чему он апеллировал, и чем провинились "ветвистые юзеры".

]]>
Vr, 11 Mrt 2011 21:45:46 -0000
esclkm тролим и сремся... как обычно)

]]>
Vr, 11 Mrt 2011 21:08:41 -0000
Oughtem Вы меня не убедили, а заморили. Внедряйте свою идею, наступайте на старые грабли, отделяйте сепараторы маргиномcrying и ориентируйтесь на юзеров, которые разветвляют себе 60 веток. Вектор вашей работы выбран чудесно.

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

]]>
Vr, 11 Mrt 2011 20:52:08 -0000
Kort Тише-тише. Во-первых, пользователь сайта не должен при добавлении / правке / удалении раздела метаться на ftp и править шаблоны (большинство конечных пользователей очень удивятся такой тактике). Во-вторых, нельзя вводить ограничения на 5 разделов, и считать остальных "ненормальными". В-третьих, иметь 5 шаблонов вместо одного -- это просто верх всего. В-четвертых, что за история с пробелами? Ими расстояния никто не отбивает (кроме машинисток). Установите для спана margin и все дела.

Вам домашнее задание для двух фрагментов кода:

Ваш:

<p><a href="https://www.cotonti.com/#" title="#">Home</a> / <a href="https://www.cotonti.com/#" title="#">Cat1</a> / <a href="https://www.cotonti.com/#" title="#">Cat2</a>/ <a href="https://www.cotonti.com/#" title="#">Cat3</a></p>

и мой:

<p><a href="https://www.cotonti.com/#" title="#">Home</a> <span>/</span> <a href="https://www.cotonti.com/#" title="#">Cat1</a> <span>/</span> <a href="https://www.cotonti.com/#" title="#">Cat2</a> <span>/</span> <a href="https://www.cotonti.com/#" title="#">Cat3</a></p>

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

]]>
Vr, 11 Mrt 2011 20:30:29 -0000
Oughtem Глубоко сомневаюсь в том, что в инете остался кто-то, кто пытается юзать на своём сайте дерево с 60-ю вложенными подразделами. Для подобных случаев конечно можно внедрить ваше предложение. Со спортивным интересом я спорить не буду, тут уже вопрос на "получится/не получится", вместо "надо/не надо".

Однако, если посмотреть с практической стороны вопроса и учесть, что нормальный админ не разветвит себе дерево более, чем на 5 веток, то выходит, что такой админ будет иметь максимум 5 шаблонов, в которых совсем не сложно написать ручками то, что я писал выше.

И потом, меня как юзера жутко убивают такие "мелочи" как несоблюдение правил написания знаков пунктуации. Поясню - "картинка :", вместо "картинка: " (без пробела) или "Главная/новости" вместо "Главная/ новости". И насмерть убивает то, что мне надо лезть в ядро для того, чтобы это исправить. 

В коде надо рассыпать всё на маленькие кирпичики вместо того, чтоб слепить такую штуку  как {LIST_PAGETITLE} и потом не знать как её юзать, если она не так выводит, как хочется. А оформление надо писать в шаблон.

]]>
Vr, 11 Mrt 2011 19:58:55 -0000
Kort Что-то я не понял. Как я, прописав <a href="https://www.cotonti.com/{xxx}'>yyy</a> / <a href="https://www.cotonti.com/{ccc}'>ccc</a> в одном шаблоне, смогу применить его для структуры в 60 вложенных подразделов xxx, ttt, rrr и проч. и с разной степенью вложенности (т.е. 1, 2, 3 и т .д. вложения)?

Формально span ничем не хуже a, который также присутствует в данных тегах, так что "недаработки" в виде неразмеченного текста как раз и были исправлены.

]]>
Vr, 11 Mrt 2011 19:37:27 -0000
Oughtem Причём тут количество ваших веток? Один тпл юзается для всех веток, в котором один раз и прописывается. Или вы под каждую ветку свой лепите?

А извращаться - это оставить в новой вещи те недаработки, о которых 300 раз говорилось при обсуждении старой.

]]>
Vr, 11 Mrt 2011 19:19:22 -0000
Sergeich В логический блок засунуть что-то типа такого, вот и всё что нужно:

<a href="https://www.cotonti.com/{адрес}'>{имя}</a>

в сиене можно логику хитрую использовать, вот её и использовать.

]]>
Vr, 11 Mrt 2011 19:15:47 -0000
Kort Вы что, Oughtem, вчера родились? Сколько шаблонов "не впадляк" можно создать для такой структуры:

1. shop

1.1. iphones

1.1.1. iphones 16

1.1.1.1. iphones 16 used

1.1.2. iphones 32

1.2. ipods

1.2.1. ipods 64

1.2.2. ipods 128

? А если их 200? Вы, ребята, похоже, просто не понимаете о чем говорите. Изврат -- это шаблон для каждого раздела и неразмеченный текст.

]]>
Vr, 11 Mrt 2011 19:02:14 -0000
Oughtem По мне, так проблемы хлебных крошек по сути нет. Проблема в том, что просто нет некоторых тегов, которые выводят нечто без ссылки. Поясню. Первый тег, который пришёл на ум {LIST_ROWCAT_TITLE}.

Этот тег выводит название раздела уже с сылкой на него. Зачем? По мне, так проще сделать тег, выводящий название раздела и тег, выводящий ссылку на раздел. В шаблоне мне совсем не впадляк один раз написать <a href="https://www.cotonti.com/{xxx}'>yyy</a> / <a href="https://www.cotonti.com/{ccc}'>ccc</a> настроив вид этих хлебных крошек как только моя душа пожелает.

Зачем этот изврат с ксс в ядре?

]]>
Vr, 11 Mrt 2011 18:34:40 -0000
esclkm нуну... ты видимо не понял) говорится про то что возващает путь к категории - там код в шаблон никак не получится

]]>
Vr, 11 Mrt 2011 11:01:07 -0000
jcrush Я против обертки в ядре, весь код в шаблон, уже сто раз обсуждалось.

]]>
Vr, 11 Mrt 2011 10:44:13 -0000
Kort "Хлебные крошки" aka навигационная цепочка как проблема уже обсуждались ранее на форумах. Предлагалось ввести свой отдельный тег и проч. В Cotonti Genoa 0.6.14 мы попытались решить проблему создания данного элемента, максимально сохранив при этом вид цепочки.

Сначала что мы имеем:

  1. В режиме list и page существуют теги LIST_PAGETITLE и PAGE_TITLE, которые выводят "крошки"
  2. Вывод в первой позиции крошек ссылки на главную страницу настраивается в разделе "Настройки скина"
  3. LIST_PAGETITLE и PAGE_TITLE формируются при помощи функции sed_build_catpath
  4. sed_build_catpath также "отвечает" за формирование селектов выбора разделов
  5. sed_build_catpath формирует "цепочки" и селекты с использованием разделителя PHP.cfg.separator

Что за проблема с крошками?

Проблема состоит в том, что оба вышеуказанных тега до 14-й версии формировали цепочку по схеме "ссылка - неразмеченный символ-сепаратор - ссылка - неразмеченный символ-сепаратор ... ссылка". Удалив вставку сепаратора из функции, мы получили бы очень нечитабельные селекты. Немаркированные сепараторы же не позволяют произвести с ними какие-либо действия.

Как решили?

Использовалось самое простое решение: "обернуть сепаратор" SPAN'ом. В селектах они безболезненно сохранились, а в крошках их теперь можно легко скрыть средствами CSS. Простой пример:

HTML:

<p id="crumbs">{PAGE_TITLE}</p>

CSS:

#crumbs { overflow:auto; }

#crumbs a { display:block; float:left; }

#crumbs span { display:none }

Дальше ваша фантазия + CSS3.

]]>
Vr, 11 Mrt 2011 07:45:00 -0000