LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 19:04:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Древовидные комментарии - ограничивать уровень вложенности или нет?  (Прочитано 27661 раз)
0 Пользователей и 1 Гость смотрят эту тему.
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« : 18.08.2008, 11:05:44 »

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

Когда комментарии отображаются плоским списком, вопрос сохранения шаблона  сайта от искажений решается во-первых правильной настройкой стилей комментариев, а во-вторых функцией принудительной вставки пробелов в очень длинные слова (чтобы срабатывали переносы текста).

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

А посему вопрос: что делать?

Первое, что приходит сразу на ум - это в административной панели добавить настройку, ограничивающую длину дискуссии (глубину вложенности). Таким образом, на каком-то уровне просто перестанут отображаться кнопки Ответить и пользователь не сможет добавить сообщение. Но с точки зрения пользователей, это как бы не очень правильно - у них дискуссия, спор идет во всю, и бах - отвечать дальше нельзя, дым в трубу, пельмени разлепить...

В принципе, можно пойти другим путем - попробовать сделать так, чтобы отступ справа уменьшался по мере роста уровня вложенности, постепенно сходя на 0. По идее, данный подход так же вполне применим, но потребует в шаблоне комментариев задать стили по умолчанию для первых 5-15 уровней, а остальное оставить на совести автора сайта...

Какие еще есть идеи, варианты? Кто что подскажет?
« Последнее редактирование: 23.10.2008, 15:00:56 от smart » Записан
 
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #1 : 18.08.2008, 11:14:10 »

в этом отношении мне кажется стоит посмотреть в сторону того же ЖЖ - к примеру на 3-4-м уровне дерева делать ссылку "смотреть ветвь дискуссии" (в ЖЖ оно на новой странице)
Записан
Vzx
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 16


« Ответ #2 : 18.08.2008, 11:14:43 »

в административной панели добавить настройку, ограничивающую длину дискуссии (глубину вложенности). Таким образом, на каком-то уровне просто перестанут отображаться кнопки Ответить и пользователь не сможет добавить сообщение.
Может быть, при достижении определённого уровня, заданного в админке, прекращать делать отступ с левого края, оставив кнопки ответа работоспособными? Т.е. чтобы после, скажем, 5-го уровня комментарии шли плоским списком..
Записан
CTPAHHuK
Администратор
*******

Репутация: +36/-0
Offline Offline

Пол: Мужской
Сообщений: 134



« Ответ #3 : 18.08.2008, 11:17:44 »

Предлагаю немного гибридное решение.
С одной стороны - добавляем органичение на глубину дискуссии в админке
С другой стороны - если глубина превышает заданную в админке - показываем эту ветку комментариев в свернутом виде (плюсик в родительском комментарии, по нажатию на который разворачивается полная ветка)
Таким образом тот, кто захочет прочитать всю ветку - прочитает ее смирившись с тем что дизайн порвался. А для тех кто не желает читать все - дизайн останется красивым и пушистым
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #4 : 18.08.2008, 11:22:47 »

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

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

в этом отношении мне кажется стоит посмотреть в сторону того же ЖЖ - к примеру на 3-4-м уровне дерева делать ссылку "смотреть ветвь дискуссии" (в ЖЖ оно на новой странице)
и заставлять пользователя прыгать со страницы на страницу? а если на N-й странице вдруг потребуется процитировать что-то с соседней ветки? все? только через буфер обмена? мне честно говоря это решение из ЖЖ всегда вызывало только удивление, удобства точно не увидел
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #5 : 18.08.2008, 11:26:24 »

О, еще один вариант придумал: у слоя-контейнера списка комментариев добавить стиль overflow: auto, чтобы при превышении ширины появлялась полоса горизонтального скроллинга. Тоже по идее может спасти от разрыва шаблона слишком ветвистым деревом...
Записан
..С...е...р...ы...й..
Завсегдатай
*****

Репутация: +108/-2
Offline Offline

Сообщений: 531



« Ответ #6 : 18.08.2008, 11:32:40 »

уверен что более чем в 90% случаев такого "глубокого" уровня не достигнется.
---
незнаю, может это сложно, но я вот что предлагаю: Когда достигается определённого уровня вложености, внизу отображается ссылка "читать дальше", при нажатии ее тредшествующая часть сворачиваетсяя оставляя ссылку, а продолжение раскрывается с 0-уровня, пока цикл не повториться....
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #7 : 18.08.2008, 11:40:55 »

уверен что более чем в 90% случаев такого "глубокого" уровня не достигнется.
по доброй воле - почти наверняка нет, а если умышленно? надо же подумать как-то о владельцах сайта? тем более, все зависит от ширины колонки... на трех-колоночной верстке, при фиксированной ширине средняя колонка может быть весьма узкой, и там проблема может возникнуть не на 15-м, а даже на 7-8 уровнях...

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

p.s. решение с выносом ветки на отдельную страницу еще спорно по той причине, что с одной стороны пользователя заставляют ходить на другую страницу, что немного рушит концепцию AJAX-коммментариев когда все на одной странице, а с другой стороны это просто отодвигает проблему на другую страницу - ведь на отдельной странице точно так же может быть большая вложенность, и проблема останется прежней
Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #8 : 18.08.2008, 11:48:27 »

p.s. решение с выносом ветки на отдельную страницу еще спорно по той причине, что с одной стороны пользователя заставляют ходить на другую страницу, что немного рушит концепцию AJAX-коммментариев когда все на одной странице, а с другой стороны это просто отодвигает проблему на другую страницу - ведь на отдельной странице точно так же может быть большая вложенность, и проблема останется прежней
но если рассмотреть вариант подгрузки в новом окне на ajax - разворачивается блок по ширине всего экрана (опционально). Я думаю что на 1280 пкс можно вместить достаточно много уровней, и не будет перехода на другую страницу.
Если отключен JS - то тогда уж на новой странице...
И будет как раз то, чего всегда недоставало в ЖЖ
Записан
..С...е...р...ы...й..
Завсегдатай
*****

Репутация: +108/-2
Offline Offline

Сообщений: 531



« Ответ #9 : 18.08.2008, 11:49:03 »

Цитировать
и не очень интуитивно понятно для пользователей, в плане возвращения к первоначальному виду... будут путаться...
----
p.s. решение с выносом ветки на отдельную страницу еще спорно по той причине, что с одной стороны пользователя заставляют ходить на другую страницу, что немного рушит концепцию AJAX-коммментариев когда все на одной странице, а с другой стороны это просто отодвигает проблему на другую страницу - ведь на отдельной странице точно так же может быть большая вложенность, и проблема останется прежней

Ну, это не совсем другая страница, это скорее похоже на "аккардион", это типа вида скроллинга..

Пользователь всегда будет оставаться на той же странице, и можно сделать ссылку "начало дисскуссии", если это правильно представить, то это как раз и самое интуитивное решение, но судить о сложности реализации конечно не мне!
« Последнее редактирование: 18.08.2008, 11:53:43 от С.е.р.ы.й.В.о.л.к » Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #10 : 18.08.2008, 11:52:39 »

Блин, чувствую себя прям каким-то первооткрывателем. Вроде бы простой вопрос, вроде бы древовидные комментарии придуманы давным давно, а ведь решений такой простой проблемы не так уж и много - вчера пересмотрел кучу сайтов, ничего кроме выноса веток на отдельные страницы в ЖЖ не нашел. Хотя сайты с большой вложенностью попадались, но как правило там я видел либо порванный дизайн, либо резиновый шаблон...

но если рассмотреть вариант подгрузки в новом окне на ajax - разворачивается блок по ширине всего экрана (опционально). Я думаю что на 1280 пкс можно вместить достаточно много уровней, и не будет перехода на другую страницу.
во-первых, далеко не у всех есть 1280 пикселей ширины (у меня дома к примеру всего 1024), во-вторых в нем прийдется играть еще с высотой, в-третьих, что делать, если и этого блока окажется недостаточно? Или ты предлагаешь уже в нем показывать горизонтальный скроллинг?

И самое интересное - при таком режиме, комментарии в этой ветке уже индексироваться поисковиками 100% не будут. Одно из преимуществ текущей реализации дерева, что все комменты на одной страницы, и изначально доступны ПС для индексации (при отображении списком этому мешала страничная навигация)
Записан
Sulpher
Support Team
*****

Репутация: +293/-9
Online Online

Пол: Мужской
Сообщений: 1677


Миграция сайтов на Joomla 2.5


« Ответ #11 : 18.08.2008, 11:55:26 »

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

Репутация: +108/-2
Offline Offline

Сообщений: 531



« Ответ #12 : 18.08.2008, 12:27:06 »

ещё можно такое решение:


* blocks.PNG (7.91 Кб, 576x353 - просмотрено 531 раз.)
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #13 : 18.08.2008, 12:30:33 »

ещё можно такое решение:
а в чем собственно решение-то?
Записан
iT)ZevS(
JComments Tester
*

Репутация: +31/-2
Offline Offline

Пол: Мужской
Сообщений: 322


« Ответ #14 : 18.08.2008, 12:42:45 »

на хабре это реализовано, как отсутствие сдвига после некоторого уровня. мне лично это нравится.
« Последнее редактирование: 18.08.2008, 13:06:14 от iT)ZevS( » Записан
PaLyCH
Живу я здесь
******

Репутация: +139/-14
Offline Offline

Пол: Мужской
Сообщений: 1369


Архитектор сайтов


« Ответ #15 : 18.08.2008, 13:04:34 »

Даже не знаю что и сказать, здесь конечно должно зависит от вебмастера или администратора сайта.
Если он хочет пусть ограничивает кол-во комментариев в ветке, т.е. соглашусь с CTPAHHuK. Т.е. ставить кол-во
сообщений. Или если ширина шаблона сайта позволяет делать глубокие дискуссии то все зависит конечно от админа. И может сделать отступ не 20px, а 10 пикселей. тогда это позволит делать ветку гораздо глубже.
Записан
..С...е...р...ы...й..
Завсегдатай
*****

Репутация: +108/-2
Offline Offline

Сообщений: 531



« Ответ #16 : 18.08.2008, 13:18:18 »

а в чем собственно решение-то?
Позволить непомещающимся блокам выходить за границы колонки, толко не разрывая её (на верхнем слое), а остальные должны оставаться в границах колонки. Это не абсолютное решение, но тем не менее оно делает более "нормальным" отображаемый вид.

Что касается узких шаблонов, уверен более-менее здравомыслящий человек не станит впихивать древовидные комментарии в колонку ширинрой 300px, для этого лучше подходит последовательный ряд, если уж захотел автор то пусть делает для этого нормальные условия (сделает меньший отступ, убирёт ненужные колонки, правые например).
Ну повторю снова до критического уровня вложености дойдёт в редких случаях, и никто не возлагает на тебя обязанность быть первооткрывателем в решении этой проблемы, изобретать какие то фокусы, если ты сам этого не хочешь конечно, поэтому проблему можно лишь немного "облегчить".
   Если какие то из всех предложеных вариантов решения легки в реализации, то можно сделать их как опции на усмотрение админа, чтоб предоставить более гибкие возможности контроля проблемы и в соответствии с его шаблоном.
Записан
Dutch
Support Team
*****

Репутация: +72/-12
Offline Offline

Пол: Мужской
Сообщений: 465


Я все вижу!


« Ответ #17 : 18.08.2008, 13:20:21 »

Блин, чувствую себя прям каким-то первооткрывателем. Вроде бы простой вопрос, вроде бы древовидные комментарии придуманы давным давно...

Смарти, вот мои предложения:
1. сделать отступ не 30 пкс, как сейчас вроде как есть, а скажем 10-15 (комменті в рамках будут заметны, что они сдвинуты).
2. практика показывает (ну хлтя бы тот же хабр), что у комментов на пару сотен постов, нет взаимоцитирования на десятки уровней. Как правило переборка между участниками затихает на 8-10 посте.

да и еще, на сколько я помню старый вариант у тебя остался, подачи комментов.
Так вот при выборе подачи, можно сделать пометку, мол для узких шаблонов рекомендуется выбрать обычный вид!
Записан
..С...е...р...ы...й..
Завсегдатай
*****

Репутация: +108/-2
Offline Offline

Сообщений: 531



« Ответ #18 : 18.08.2008, 13:30:05 »

Так как все давно ждут выхода компонента и не могут дождаться, лучше сделать самое простое из возможных решение, чтоб не затягивать..
А более революционное отложить до следующей версии!
Записан
Mitrich
Администратор
*******

Репутация: +520/-13
Offline Offline

Пол: Мужской
Сообщений: 2481


Все можно. Но сначала учиться, учиться и учиться.


« Ответ #19 : 18.08.2008, 14:23:04 »

Может все таки ограничивать глубину вложенности в угоду дизайну?
скажем на N-уровне заданном в админке не прекращать отображение кнопки "ответить"
а какой то может значек отобразить что сообщение дочернее от какого то
а сам вывод оставить прежним

и мне кажется что 10 - это максимальная глубина вложенности которая может появиться естественным путем
Записан
gorbi
Давно я тут
****

Репутация: +2/-1
Offline Offline

Пол: Мужской
Сообщений: 257


« Ответ #20 : 18.08.2008, 14:58:32 »

Так как все давно ждут выхода компонента и не могут дождаться, лучше сделать самое простое из возможных решение, чтоб не затягивать..
А более революционное отложить до следующей версии!
+1, лучшее враг хорошего!!! Хочется к сентябрю новый релиз....
Записан
VETERINAR
Живу я здесь
******

Репутация: +165/-14
Offline Offline

Пол: Мужской
Сообщений: 1291


Kiss my shiny metal ass!


« Ответ #21 : 18.08.2008, 15:13:58 »

Все сообщения не читал, прошу прощения, если уже предложили.

Мне кажется, что все просто. Нужно вынести настройку в админку по максимальному уровню вложенности, но не в том смысле, что отвечать нельзя будет, а ответы не будут смещаться вправо. Т.е. например 20 сообщений каждое из которых ответ на предыдущее - смещаются вправо, а следующие ответы располагаются под двадцатым. Иллюстрация:

Сообщение
    Коммент
       Коммент
          Коммент
             Коммент
                Коммент
                   Коммент
                      Коммент
                      Коммент
                      Коммент
                      Коммент
                      Коммент
                      Коммент
                      Коммент

Таким образом это организовано на сервисе http://www.free-lance.ru/blogs/ но там сейчас не работает ссылка "популярные блоги", поэтому не смогу привести пример очень длинных веток, но идея, мне кажется, понятна. Да и неудобств никаких это не вызывает, практика показывает, что удобно.
Записан
VETERINAR
Живу я здесь
******

Репутация: +165/-14
Offline Offline

Пол: Мужской
Сообщений: 1291


Kiss my shiny metal ass!


« Ответ #22 : 18.08.2008, 15:19:20 »

уверен что более чем в 90% случаев такого "глубокого" уровня не достигнется.


Достигнется-достигнется. На том же free-lance.ru постоянно такие ветки.

Компонент развился до такого уровня, что его можно использовать не как просто компонент комментариев, а в качестве блогов. А блоги это огромные ветки, как правило.
Записан
Dutch
Support Team
*****

Репутация: +72/-12
Offline Offline

Пол: Мужской
Сообщений: 465


Я все вижу!


« Ответ #23 : 18.08.2008, 15:57:13 »

есть еще такая мысля:

1. задать параметр для 1 ветки - отображать скажем 10 или 15 ответов (мы контролируем вложенность и смотрим, чтобы дизайн не растягивало)

2. когда достигнут максимум ветки у нас появляется ссылка - "Прочитать все ответы"

3. кликая на нее у нас на аяксе открывается почти на все окно (а-ля лайт бокс) окно, которое имеет в себе:
а) пост на которые идут комменты.
б) с небольшим выделением и может отступом все ответы на него друг под другом, без дерева.

Как по мне то такой подход будет более корректен. Не знаю, как на базе кода это будет сложно или просто, но думаю для Смарти это не составит особого труда Azn

Как на это Вы смотрите?
Записан
..С...е...р...ы...й..
Завсегдатай
*****

Репутация: +108/-2
Offline Offline

Сообщений: 531



« Ответ #24 : 18.08.2008, 16:05:08 »

Как на это Вы смотрите?
мы смотрим на это так: компонент нужен вчера!!!
Записан
Mitrich
Администратор
*******

Репутация: +520/-13
Offline Offline

Пол: Мужской
Сообщений: 2481


Все можно. Но сначала учиться, учиться и учиться.


« Ответ #25 : 18.08.2008, 16:07:22 »

Компонент уже есть
И никто не мешает им пользоваться  Wink

А подгонять разработчиков есть нехорошо
Записан
Dutch
Support Team
*****

Репутация: +72/-12
Offline Offline

Пол: Мужской
Сообщений: 465


Я все вижу!


« Ответ #26 : 18.08.2008, 16:20:59 »

мы смотрим на это так: компонент нужен вчера!!!

Если нужен, тогда заказывайте то, что вам нужно!
Давайте не флудить на эту избитую тему!!!

Если хотите качественный продукт и ктому же бесплатный, то не нада тогда заниматься капаньем Azn, а то Смарт возьмёте и сделает его платным ))))))
Записан
..С...е...р...ы...й..
Завсегдатай
*****

Репутация: +108/-2
Offline Offline

Сообщений: 531



« Ответ #27 : 18.08.2008, 16:22:44 »

а я и не занимаюсь капаньем ни на кого, очень жаль что вы шутку от серьёзности не отличаете!
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #28 : 18.08.2008, 16:38:39 »

Так, хватит спорить и ругаться... В данный момент я работаю в максимально возможном режиме и быстрее все равно сделать не смогу. Пролью немного света на текущее положение дел и ситуацию в целом...

Я говорил и повторюсь еще раз. Мне самому этот компонент пока что не нужен, я разрабатываю его просто из интереса, ради удовольствия. Денег за разработку мне никто не платит, за все время существования компонента было порядка 5 пожертвований (в сумме примерно на 80$), что безусловно стоимости разработки не покрывает. Поэтому, я занимаюсь компонентом не регулярно, а когда у меня есть на это время и выполняется одно из следующих условий:

1. Кто-то из тестеров нашел ошибку и я считаю ее серьезной и необходимой к исправлению
2. Кто-то из пользователей убедил меня, что нужно добавить какой-то функционал
3. Кому либо из моих друзей или заказчиков понадобилась новая функция
4. У меня родилась какая-то идея и мне срочно хочется ее проверить

Изначально текущую ветку я начал разрабатывать потому что:

1. Она не до конца корректно работала на 1.5
2. Меня не устраивала скорость работы используемой библиотеки шаблонов

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

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

1. Немного причесать и соптимизировать стили шаблона
2. Протестировать корректность функций обновления при установке на старые версии JComments
3. Провести ревизию переменных в языковых файлах и обновить некоторые переводы

Из менее критичных, но желательных задач:

1. Переключиться на использование урезанной версии библиотеки XAJAX, дабы не было конфликтов с другими компонентами.
2. Решить проблему отображения CAPTCHA при появлении Notice и Warning в каком-то из файлов Joomla
3. Реализовать сворачивание комментариев с низким рейтингом и вынести это значение в настройки

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

p.s. А вообще, меня радует, что в этой теме активность сегодня значительно выше, чем на той неделе, когда я советовался про функцию подписки на уведомления о новых комментариях.
Записан
Dutch
Support Team
*****

Репутация: +72/-12
Offline Offline

Пол: Мужской
Сообщений: 465


Я все вижу!


« Ответ #29 : 18.08.2008, 18:10:38 »

потому что функцию подписки на уведомления о новых комментариях ни кто не видит, а вот внешний вид да )))
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet