Автор Тема: Доработка модуля комментариев  (Прочитано 24644 раз)

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

aim

  • Гость
Понадобился модуль комментариев, но после тестирования официальной версии, официально ещё не вышедшей убедился, что над ним нужно серьёзно поработать. Посидел пару дней и вот, что вышло.
Изменения, дополнения:

Админка.

1. Из админки вообще нельзя было добавить комментарий. Добавил выпадающий список со страницами, куда прикреплён текущий модуль.

2. В описание класса модуля добавил константу const ADMNAME = 'Админ'; - имя(ник) администратора сайта, от чьего имени добавляются комменты из админки(укажите своё имя-ник). Значение этой константы автоматически прописывается в поле "Автор" при добавлении комментария. Есть и ещё одна фишка, но чуть позже...

3. В разделе меню "Посмотреть" добавил колонку с отображением страницы комментария. В колонке "Дата" теперь выводится и время добавления коммента.

Пользовательская часть.

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

2. Добавил нумерацию комментариев (в шаблоне доступна переменная %num% в блоке <!-- @rows -->).

3. Добавил в шаблон блок <!-- @title --> в котором доступна переменная  %totals% - общее количество комментариев. Блок выводится один раз в самом верху.
 
4. Добавил в шаблон переменную %time% - время добавления, была только дата.

5. Ввёл пока простую проверку на заполнение формы, раньше можно было отправить пустую. Возможно, необходимо добавить проверку на количество вводимых символов.

6. Невозможно добавить комментарий от имени администратора сайта – фишка с const ADMNAME = 'Админ'; .
Сообщение об ошибке выводится в блоке шаблона  <!-- @no_admin_comments -->.

7. Ну и наверно последнее, но существенное дополнение. Допустим, пользователь наваял длинный комментарий, но в результате какой-то ошибки отправление формы не прошло (например, ввёл неправильно цифры в капче или забыл указать автора). В результате возвращается пустая форма и данные нужно вводить снова. Теперь содержимое формы сохраняется (берётся из сессии).

Работы с модулем конечно ещё много, но уже теперь им можно более-менее пользоваться.
Сейчас работаю над "прикруткой" какого-нибудь редактора BBcode – тестирую варианты.

Скачать доработанный модуль комментариев можно здесь: http://korchaginvn.ru/count/down.php?uri=download/comments_fix_ver_01.rar

Просьба потестить и отписаться с замечаниями и предложениями.

P.S. Все изменения, дополнения в коде пометил комментариями - //добавлено aim

Kanda

  • Гость
Re: Доработка модуля комментариев
« Ответ #1 : 27 мая 2009, 02:51:51 »
хм... респегт ))) надо потестить будет...

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 473
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Re: Доработка модуля комментариев
« Ответ #2 : 27 мая 2009, 17:36:56 »
1. Переделал, чтобы комменты отображались вверху, а форма внизу. По-моему так удобней и практически везде так используется. Кстати, кто-то уже на форуме спрашивал как это сделать.

Можешь сделать, чтобы в шаблоне было две метки:
%form% И %comments% к прмиеру. И от их расположения уже зависело что где будем отображать?

Еще совсем было бы здорово, если бы ты написал краткий мануал на wiki.santafox.ru по модулю камментов, мы его тогда выложим в официальное скачивание :)

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 473
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Re: Доработка модуля комментариев
« Ответ #3 : 27 мая 2009, 18:06:00 »
При добавлении камментария из админки у меня вылетает:
Warning: Invalid argument supplied for foreach() in D:\sites\etalon\modules\comments\comments.class.php on line 821

Warning: Invalid argument supplied for foreach() in D:\sites\etalon\modules\comments\comments.class.php on line 821

Warning: Cannot modify header information - headers already sent by (output started at D:\sites\etalon\modules\comments\comments.class.php:821) in D:\sites\etalon\include\kernel.class.php on line 1488

aim

  • Гость
Re: Доработка модуля комментариев
« Ответ #4 : 27 мая 2009, 19:00:21 »
Цитировать
Можешь сделать, чтобы в шаблоне было две метки:
%form% И %comments% к прмиеру. И от их расположения уже зависело что где будем отображать?
Попробую.

Прежде чем писАть мануал, модуль надо довести до ума.

Цитировать
При добавлении камментария из админки у меня вылетает:
Warning: Invalid argument supplied for foreach() in D:\sites\....
Странно. У меня нормально работает и на Денвере и на хосте spaceweb
Даже если ни одной метке не назначить модуль, коммент добавляется в БД, правда с пустым полем page_id - надо исправить.


Оффлайн alex_moscow

  • Местный лис
  • ***
  • Сообщений: 229
  • Авторитет: 37
  • Пол: Мужской
    • Просмотр профиля
Re: Доработка модуля комментариев
« Ответ #5 : 28 мая 2009, 05:38:12 »
aim
пока нет времени потестить, на за проделанную работу огромное спасибо Вам! тоже в свое время разбирался с данным модулем, чего-то удалось добиться http://forum.santafox.ru/index.php?topic=436.0 :)

использую тот же хостинг очень давно - тоже устраивает:))

В данный момент несколько вопросов: как работает исправленная версия со страницами каталога?? допустим, реально ли, чтобы можно было комментировать отдельный товар?
Давно мечтал вывести капчу в отдельный каталог(да и саму капчу сменить, тк ее дизайн не поддается изменению), но не знаю как (чтобы скрыть полный путь до модуля каталога), может вы подскажете??


aim

  • Гость
Re: Доработка модуля комментариев
« Ответ #6 : 28 мая 2009, 16:35:17 »
Цитировать
В данный момент несколько вопросов: как работает исправленная версия со страницами каталога?? допустим, реально ли, чтобы можно было комментировать отдельный товар?
Давно мечтал вывести капчу в отдельный каталог(да и саму капчу сменить, тк ее дизайн не поддается изменению), но не знаю как (чтобы скрыть полный путь до модуля каталога), может вы подскажете??
Пока ничего не скажу по этим вопросам, надо разбираться. Каталог вообще толком не тестил из-за ненадобности.

Как просил Oslix, сделал смену порядка вывода комментов и формы заменой расположения переменных в шаблоне:
<!-- @content -->
%show_comments%
%show_form%
                             или
<!-- @content -->
%show_form%
%show_comments%

Теперь для комментов и формы подключаются свои отдельные шаблоны show_comments.html и show_form.html

Пока выкладывать не буду, нужно исправить ещё несколько других косяков.

aim

  • Гость
Re: Доработка модуля комментариев
« Ответ #7 : 29 мая 2009, 17:42:06 »
to alex_moscow
Цитировать
...реально ли, чтобы можно было комментировать отдельный товар?
Напиши как может выглядеть полная ссылка на отдельный товар в каталоге (типа site.ru/catalog.html?id=5&bla=21), т.е. со всеми параметрами. Желательно ответ получить сегодня, а то завтра я уезжаю на неделю на рыбалку. Не будет инета, сотовой связи, ничего не будет...только рыбалка, но будет много времяни подумать ;)

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 473
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Re: Доработка модуля комментариев
« Ответ #8 : 29 мая 2009, 19:11:00 »
Так вроде базовый модуль камментов можно к какому угодно контенту подрубать. Толлько указываешь в поле параменты URL что считать уникальными страницами и он будет работать. Т.е. в случае site.ru/catalog.html?id=5&bla=21 делаем метод, указываем id в этом поле и все отлично. Только нужно сделать так, чтобы там, где этого ID нет, чтобы не работал модуль, навреное. Потому как в таком случае он отобразит свою форму и на странице catalog.html просто. Текущий по крайней мере так делает.

aim

  • Гость
Re: Доработка модуля комментариев
« Ответ #9 : 29 мая 2009, 20:50:33 »
Я как раз над этим и работаю.
Что реализовал:
Ввёл в настройках модуля новый параметр действия -"Выводить блок комментариев на родительской странице?" да:нет
Допустим указали http-параметры: id и НЕвыводить комменты на родительской, то в итоге получаем, например с новостями, что на странице news.html с архивом комменты выводится не будут, так как они там и не нужны, а на страницах  news.html?id=1 , id=2 и т.д. будет выводится свой уникальный блок. Если правда этот экземпляр модуля подцепить к страницам вида index.html то комменты тоже выводится не будут. Поэтому надо инсталировать дочерние модули с сооветветствующими настройками по потребностям.
Вобщем с новостями всё работает как надо, т.е фильтруются страницы без параметров и с несоответствующими параметрами, а спрашивал про вид ссылки потому-что параметров у URLа может быть несколько и не известно как себя поведёт модуль в этом случае.
Настраивать каталог у меня ща времяни не хватит чтоб потестить :( - только через неделю.
« Последнее редактирование: 29 мая 2009, 20:52:52 от aim »

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 473
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Re: Доработка модуля комментариев
« Ответ #10 : 29 мая 2009, 22:58:01 »
Поэтому надо инсталировать дочерние модули с сооветветствующими настройками по потребностям.

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

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 473
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Re: Доработка модуля комментариев
« Ответ #11 : 29 мая 2009, 23:00:21 »
И еще одна просьба.
У меня тут зреет идея, сделать так, чтобы у всех модулей линк был переменной %link% а текст ссылки - переменной %text%. Чтобы думать не надо было.
Потомучто к прмиеру, когда я делаю шаблон постраничной навигации - у меня там почему-то %url%  - это нужно помниьть.

Давайте может с этого модуля начнем следовать этому правилу?
А потом и остальные переделаем :)

aim

  • Гость
Re: Доработка модуля комментариев
« Ответ #12 : 30 мая 2009, 01:01:09 »
Цитировать
Давайте эту галку добавим в действие. Тогда можно в одном экземпляре модуля сделать столько действий, сколько нужно.
Туплю уже :)
Собственно так я и сделал, проверил - работает. Только не галку, а выпадающий список да:нет, потому-что чекбокс почему-то не пашет, ставишь в false, сохраняешь настройки, а он в true стоит...

И ещё, я сделал так, что значение этой опции важно если только заданы http-параметры, иначе вывод комментов от неё никак независит. Думал как бы поставить этот выпадающий список в disable если не указаны http-параметры, но это текстовое поле. А с ExtJS ещё плохо знаком, вот на jquery бы да...

Цитировать
У меня тут зреет идея, сделать так, чтобы у всех модулей линк был переменной %link% а текст ссылки - переменной %text%. Чтобы думать не надо было.
Потомучто к прмиеру, когда я делаю шаблон постраничной навигации - у меня там почему-то %url%  - это нужно помниьть.

Давайте может с этого модуля начнем следовать этому правилу?
ДАВАЙТЕ.

Кстати, постраничная навигация в комментах предусмотрена, но не работает. С ней ещё пока не разбирался. Так-что работы над модулем ещё дофига.
« Последнее редактирование: 30 мая 2009, 01:12:36 от aim »

aim

  • Гость
Re: Доработка модуля комментариев
« Ответ #13 : 07 июня 2009, 22:57:02 »
Новые исправления и добавления в модуле:

Админка.

1. Изменил способ выбора страницы добавления комментария админом. В первой версии выводились все страницы, куда был прикреплён модуль, но нельзя было выбрать, например страницу news.html?id=5, так как данные брались из таблицы sf_structure, а  она понятия не имеет о существовании этой страницы.
Сейчас доступны только те страницы, на которых оставлен хотя бы один комментарий.



В первом списке выбираем id страницы, во втором выводятся доступные sub_id.
На картинке пример выбора страницы для комментирования новости.

2. Как уже писАл выше:
   
Цитировать
Как просил Oslix, сделал смену порядка вывода комментов и формы заменой расположения переменных в шаблоне:
<!-- @content -->
%show_comments%
%show_form%
                             или
<!-- @content -->
%show_form%
%show_comments%

Теперь для комментов и формы подключаются свои отдельные шаблоны show_comments.html и show_form.html

3. Тоже выше упоминал. В настройках действий модуля добавилась новая опция - выводить или не выводить комменты на родительской странице. На картинке пример для новостей. Если указан какой-то http-параметр и выбрана опция не выводить, то как на примере комментарии будут выводиться на всех страницах news.html?id=... и не не будут на странице news.html



 
4. В таблице просмотра комментариев имя автора(админа) выделяется цветом.

Пользовательская часть.

1. Сделал простую (как в админке) постраничную навигацию вида: 1 | 2 | 3 | 4
При превышении лимита комменты будут разбиваться на блоки по N комментариев.

2. В админских комментариях имя админа тоже выделяется цветом.

Скачать новую версию можно здесь: comments_fix_ver_02.rar

Просьба потестить.
 


aim

  • Гость
Re: Доработка модуля комментариев
« Ответ #14 : 29 июня 2009, 01:03:53 »
Добавил в модуль поддержку bbcode.
Потестил около десятка различных парсеров bbcode и выбрал этот:
http://nbbc.sourceforge.net/
Так же потестил несколько редакторов bbcode и остановился на http://markitup.jaysalvat.com/home/
Немного поправил для совместимости с парсером, перевёл на russian, написал маленький скрипт для предосмотра набранного сообщения использующий ajax и получилось это:



Установка:

1.Копируем содежимое архива в корень сайта.

2.Добавляем в используемый шаблон в раздел <head>:

<link rel="stylesheet" type="text/css" href="design/css/bbcode.css" />
<link rel="stylesheet" type="text/css" href="design/markitup/markitup/skins/markitup/style.css" />
<link rel="stylesheet" type="text/css" href="design/markitup/markitup/sets/bbcode/style.css" />
<script type="text/javascript" src="design/markitup/jquery.pack.js"></script>
<script type="text/javascript" src="design/markitup/markitup/jquery.markitup.pack.js"></script>
<script type="text/javascript" src="design/markitup/markitup/sets/bbcode/set.js"></script>

3.Редактируем файл стилей design/css/bbcode.css отвечающий за офомление блоков Quote(цитата) и Code(код) по своему усмотрению не изменяя имена классов. Лучьше эти классы потом добавить в основной файл стилей.

Скачать архив можно здесь