0 Пользователей и 1 Гость просматривают эту тему.
  • 54 Ответов
  • 42792 Просмотров
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
В процессе тестирования древовидного шаблона комментариев столкнулся с проблемой которую предполагал, но до этого момента всерьез не рассматривал - уровень вложенности.

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

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

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

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

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

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

beliyadm

  • Легенда
  • 9512
  • 1651 / 66
  • Севастополь == Россия
в этом отношении мне кажется стоит посмотреть в сторону того же ЖЖ - к примеру на 3-4-м уровне дерева делать ссылку "смотреть ветвь дискуссии" (в ЖЖ оно на новой странице)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

Vzx

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

CTPAHHuK

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

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Т.е. чтобы после, скажем, 5-го уровня комментарии шли плоским списком..
это в принципе и решается предложенным мной способом про присвоение уровням своих стилей...

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

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

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
О, еще один вариант придумал: у слоя-контейнера списка комментариев добавить стиль overflow: auto, чтобы при превышении ширины появлялась полоса горизонтального скроллинга. Тоже по идее может спасти от разрыва шаблона слишком ветвистым деревом...
*

..С...е...р...ы...й..

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

smart

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

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

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

beliyadm

  • Легенда
  • 9512
  • 1651 / 66
  • Севастополь == Россия
p.s. решение с выносом ветки на отдельную страницу еще спорно по той причине, что с одной стороны пользователя заставляют ходить на другую страницу, что немного рушит концепцию AJAX-коммментариев когда все на одной странице, а с другой стороны это просто отодвигает проблему на другую страницу - ведь на отдельной странице точно так же может быть большая вложенность, и проблема останется прежней
но если рассмотреть вариант подгрузки в новом окне на ajax - разворачивается блок по ширине всего экрана (опционально). Я думаю что на 1280 пкс можно вместить достаточно много уровней, и не будет перехода на другую страницу.
Если отключен JS - то тогда уж на новой странице...
И будет как раз то, чего всегда недоставало в ЖЖ
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

..С...е...р...ы...й..

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

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

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

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Блин, чувствую себя прям каким-то первооткрывателем. Вроде бы простой вопрос, вроде бы древовидные комментарии придуманы давным давно, а ведь решений такой простой проблемы не так уж и много - вчера пересмотрел кучу сайтов, ничего кроме выноса веток на отдельные страницы в ЖЖ не нашел. Хотя сайты с большой вложенностью попадались, но как правило там я видел либо порванный дизайн, либо резиновый шаблон...

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

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

Sulpher

  • Живу я здесь
  • 2057
  • 393 / 15
  • Шаблоны и расширения Joomla
Можно попробовать реалиовать в виде лестницы: когда смещение достигает максимального порога, происходит смещение в обратном порядке. Получится зигзагообразная лента.
*

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
ещё можно такое решение:

[вложение удалено Администратором]
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
ещё можно такое решение:
а в чем собственно решение-то?
*

iT)ZevS(

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

PaLyCH

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

..С...е...р...ы...й..

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

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

Dutch

  • Глобальный модератор
  • 662
  • 88 / 2
  • Проф. разработка больших порталов с нуля!
Блин, чувствую себя прям каким-то первооткрывателем. Вроде бы простой вопрос, вроде бы древовидные комментарии придуманы давным давно...

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

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

..С...е...р...ы...й..

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

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Может все таки ограничивать глубину вложенности в угоду дизайну?
скажем на N-уровне заданном в админке не прекращать отображение кнопки "ответить"
а какой то может значек отобразить что сообщение дочернее от какого то
а сам вывод оставить прежним

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

gorbi

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

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Все сообщения не читал, прошу прощения, если уже предложили.

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

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

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

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
уверен что более чем в 90% случаев такого "глубокого" уровня не достигнется.


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

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

Dutch

  • Глобальный модератор
  • 662
  • 88 / 2
  • Проф. разработка больших порталов с нуля!
есть еще такая мысля:

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

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

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

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

Как на это Вы смотрите?
*

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Как на это Вы смотрите?
мы смотрим на это так: компонент нужен вчера!!!
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Компонент уже есть
И никто не мешает им пользоваться  ;)

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

Dutch

  • Глобальный модератор
  • 662
  • 88 / 2
  • Проф. разработка больших порталов с нуля!
мы смотрим на это так: компонент нужен вчера!!!

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

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

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
а я и не занимаюсь капаньем ни на кого, очень жаль что вы шутку от серьёзности не отличаете!
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Так, хватит спорить и ругаться... В данный момент я работаю в максимально возможном режиме и быстрее все равно сделать не смогу. Пролью немного света на текущее положение дел и ситуацию в целом...

Я говорил и повторюсь еще раз. Мне самому этот компонент пока что не нужен, я разрабатываю его просто из интереса, ради удовольствия. Денег за разработку мне никто не платит, за все время существования компонента было порядка 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

  • Глобальный модератор
  • 662
  • 88 / 2
  • Проф. разработка больших порталов с нуля!
потому что функцию подписки на уведомления о новых комментариях ни кто не видит, а вот внешний вид да )))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Возможность загрузки изображений в комментарии

Автор luzzzana

Ответов: 21
Просмотров: 7585
Последний ответ 11.09.2020, 07:03:12
от AlexB
Древовидные комментарии. Порядок отображения

Автор smart

Ответов: 69
Просмотров: 45834
Последний ответ 29.11.2018, 14:35:59
от igorsuccess
JComments + Вконтакте комментарии...

Автор AlexanderKiselev

Ответов: 67
Просмотров: 34784
Последний ответ 30.03.2014, 00:09:53
от Opsan
Выбрать все комментарии без ответов

Автор eozee

Ответов: 0
Просмотров: 1662
Последний ответ 28.11.2012, 11:45:04
от eozee
Видят ли комментарии ПС?

Автор Garun

Ответов: 59
Просмотров: 31076
Последний ответ 02.11.2012, 13:03:40
от ChaosHead