[Tickets] 1.3.0-beta Анонимные комментарии

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

Благодарю всех, кто практически заставил меня это сделать, и оплатил все труды. Не знаю, сколько эта возможность принесёт нам в будущем проблем и вопросов, но работает она, вроде, неплохо.

Итак, основные изменения коснулись сниппета TicketComments, у него добавились следующие параметры:
  • allowGuest — Включить анонимное комментирование? По умолчанию — нет.
  • allowGuestEdit — Разрешать гостям редактировать свои комментарии? По умолчанию — да.
  • allowGuestEmails — Отправлять гостям email уведомления об ответах на их комментарии? По умолчанию — нет.
  • enableCaptcha — Включить простенькую капчу для гостей? По умолчанию — да.
  • minCaptcha — Минимальное число для генерации капчи. По умолчанию — 1.
  • maxCaptcha — Максимальное число для генерации капчи. По умолчанию — 10. То есть, складывать нужно будет 2 числа от 1 до 10.
Думаю, с параметрами всё понятно. Вы можете включать\выключать анонимные комментарии на любой странице вашего сайта. Например, новости комментируют только зарегистрированные посетители, а гостевую книгу — все.

Какие у гостей ограничения?
  1. Они не могут голосовать
  2. Им не подсвечиваются новые комментарии и они не видят панель с ними сбоку страницы
  3. Они обязательно должны вводить имя и почту. Конечно, последние значения сохраняются в сессии и каждый раз это делать не нужно.
  4. Счетчик просмотра тикетов их не считает
  5. Нет подписки на все комментарии тикета.
Все ограничения обусловлены невозможностью правильно работать с юзерами, когда у них нет учетной записи.

К примеру, для показа новых комментариев я должен сохранять время просмотра страницы пользователем. А как я его сохраню, если у юзера нет id?

В общем, если вы хотите все функции комментариев Tickets — авторизуйтесь.

Другие изменения

Добавил «затухание» заминусованных комментариев. Реализуется присвоением класса bad от bad1 до bad5.

Добавил комбинации клавиш для работы с формами тикетов и комментов:
  • Предпросмотр — Ctrl + Enter
  • Отправка — Ctrl + Shift + Enter
Для включения нужно обновить чанки форм.

Добавлена колонка owner в класс TicketVote. Теперь вы можете легко считать рейтинг юзеров по сумме голосов за их тикеты и комменты.
[[!pdoPage?
	&element=`pdoUsers`
	&leftJoin=`{"Vote":{"class":"TicketVote","on":"modUser.id=Vote.owner AND class IN ('Ticket','TicketComment')"}}`
	&select=`{"modUser":"*", "Vote":"SUM(value) as rating"}`
	&groupby=`modUser.id`
	&sortby=`rating`
	&sortdir=`desc`
	&tpl=`@INLINE <p>[[+idx]]. [[+fullname]] — <b>[[+rating]]</b></p>`
]]
[[!+page.nav]]
Кстати говоря, еще вы можете выводить тикеты, отсортировав их по рейтингу:
[[!pdoPage?
	&element=`getTickets`
	&parents=`0`
	&leftJoin=`{"Vote":{"class":"TicketVote","on":"Ticket.id=Vote.id and Vote.class='Ticket'"}}`
	&select=`{"Ticket":"*", "Vote":"SUM(value) as rating"}`
	&groupby=`Ticket.id`
	&sortby=`rating`
	&sortdir=`desc`
	&tpl=`@INLINE <p>[[+idx]]. [[+pagetitle]] — <b>[[+rating]]</b></p>`
]]
[[!+page.nav]]
Изменены кое-какие настройки по умолчанию. Теперь новые тикеты не будут контейнерами, скрытыми в меню. Это касается только новых установок, имеющиеся настройки обновление не меняет.

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

Заключение

Объём работ был выполнен приличный и в очень хорошие сроки. Это я к тому, что могут быть ошибки — имейте в виду, когда будете обновляться.

Поздравляю всех с кончиной Quip и жду отзывов о работе.

Следующая заметка
[Comparison] Сравнение товаров, бета версия
Предыдущая заметка
[AjaxSnippet] Запуск сниппетов через Ajax


Комментарии ()

  1. Сергей Шлоков 04 февраля 2014, 23:30 # +5
    RIP Quip.
    1. Chero 05 февраля 2014, 00:26 # 0
      Василий, скажите, Tickets с документами в migx работает или нужно, чтобы документ был ресурсом modx?
      Что-то не нашел этого в описании нигде. Если это работает из коробки, то допишите, пожалуйста, альтернатива Quip достойная.
      1. Василий Наумкин 05 февраля 2014, 00:29 # 0
        Тикет — ресурс MODX, так что всё должно работать.
        1. Chero 05 февраля 2014, 01:35 # +2
          Да, я путаюсь немного в терминологии. Имел ввиду комментарии к документам migx без создания Тикета.

          Чем спрашивать, решил проверить. Комментарии создаются и можно пользоваться.

          Единственное, при базовых настройках в управлении комментариями в колонке Тикет не формируется ссылка на документ контейнер, поскольку это не тикет и не документ modx. А есть возможность передать свой url, может через tpl.Tickets.comment.form? Или урл через makeUrl генерится по id?
          1. Василий Наумкин 05 февраля 2014, 06:00 # 0
            Чем спрашивать, решил проверить.
            Ура! Комментировать можно, что угодно, главное — указать уникальный параметр &thread при вызове TicketComments.

            А есть возможность передать свой url
            Нет, но можно добавить — пиши хотелку.
      2. Виталий Князь 05 февраля 2014, 00:35 # 0
        Как теперь спать то идти!
        1. Василий Наумкин 05 февраля 2014, 00:47 # +4
          Ты как хочешь — а я пошел =)
        2. Семён Лобачевский 05 февраля 2014, 02:17 # 0
          Только у меня перестали работать комментарии для авторизованных пользователей?
          Для гостей работают как надо.
          1. Василий Наумкин 05 февраля 2014, 05:58 # 0
            У меня, как видишь, не перестали.

            Что именно не работает?
            1. Семён Лобачевский 05 февраля 2014, 09:03 # 0
              При отправке комментария, нажимаю кнопку «Написать» ничего не происходит. В консоле видно что отправляется POST action.php, но комментарий не появляется.
              Кнопка «Предпросмотр» работает.
              1. Василий Наумкин 05 февраля 2014, 09:05 # 0
                А какой ответ приходит от сервера, посмотри в консоли?

                Может, там E_NOTICE какой закрался?
                1. Семён Лобачевский 05 февраля 2014, 09:07 # 0
                  data: [{error:{id:email, msg: Это поле обязательно.}, field:email, message: Это поле обязательно.]}
                  message: ""
                  success: false
                  1. Василий Наумкин 05 февраля 2014, 09:08 # 0
                    Хмм… У тебя что, есть авторизованный юзер, у которого не указан email?

                    Такого не должно быть, по идее.
                    1. Семён Лобачевский 05 февраля 2014, 09:11 # +1
                      Ага, теперь понятно. Всё заработало, спасибо за подсказку)
          2. Пётр Молчанов 05 февраля 2014, 11:39 # 0
            Василий, я вот тоже решил перевести каменты на TicketComments. Старые каменты доступны в xml-файле. Чем можно воспользоваться из компонента, чтобы по правильному экспортировать каменты?
            1. Василий Наумкин 05 февраля 2014, 11:42 # +2
              Не знаю.

              У меня есть только скрипт миграции с Quip.
              1. Пётр Молчанов 05 февраля 2014, 11:46 # +2
                Ага, тоже подойдет. Массив данных главное подготовить) И с названиями полей поколдовать
                1. Пётр Молчанов 12 марта 2014, 12:46 # 0
                  В этом скрипте не учитывается подписка на ветки. У тя это запускается каким-то отдельным путем? Можешь поделиться…
                  1. Василий Наумкин 12 марта 2014, 13:51 # 0
                    Этот скрипт писался до появления подписок.

                    Ну и разве в quip есть что-то подобное?
                    1. Пётр Молчанов 12 марта 2014, 14:39 # 0
                      я просто ковертирую не из qip, а из hypercomments :) У нас там по умолчанию все подписаны были, так что хотелось бы сохранить это
                      1. Василий Наумкин 12 марта 2014, 14:43 # 0
                        Нужно добавить JSON массив id подписчиков в поле subscribers таблицы TicketThread.

                        Можно через api, можно прямо запросом в БД.
                        1. Пётр Молчанов 12 марта 2014, 15:31 # 0
                          ладно, с этим разберусь. у мя тут другая дилемма — хочу прикрутить каменты к галерее (Gallery), но вот в БД пишется resource текущего документа (в name же я пишу galitem-id элемента), а он олучается всегда один и тот же. Я вот думаю, не будет ли потом проблем с этим и как правильно отредактировать чанки писем, чтобы ставить правильные урлы? Не знаю где глянуть какие переменные передаются в чанки писем((( Компонент смотрел, не нашел
                          1. Василий Наумкин 12 марта 2014, 15:39 # 0
                            Смотри параметр &thread у TicketComments и соответствующее поле у комментария.

                            Коммент привязывается к ветке, а ветка вызывается по имени, указанному в thread. Привязка к ресурсу просто для удобства и ни на что, кроме ссылок в админке не влияет.
                            1. Пётр Молчанов 12 марта 2014, 15:51 # 0
                              подскажи, плиз, какими переменными можно оперировать в чанке писем, чтобы мне ссылки-то правильные выставить
                              1. Василий Наумкин 12 марта 2014, 15:52 # 0
                                Ты думаешь, я их наизусть помню?

                                Смотри исходники + опытным путем.
                                1. Пётр Молчанов 12 марта 2014, 15:55 # 0
                                  в том-то и дело, что смотрел((( В этом файле ticketqueue.class.php вообще не вижу, чтобы body формировалось, в других даже этого не нашел. Ладно, метод научного тыка, надеюсь, поможет)
                                  1. Пётр Молчанов 12 марта 2014, 16:20 # 0
                                    не, не получится так… можно было бы писать урл прямо в name thread'а, но в письме на чанк name передается имя пользователя, написавшего камент. Как думаешь, он перезатирает name ветки каментов или у ветки name как-то по другому обзывается для чанков?
                                    1. Пётр Молчанов 12 марта 2014, 17:46 # 0
                                      А, понял, данные берутся из таблицы tickets_comments( Как-то еще tickets_threads зацепить можно?
                                      1. Пётр Молчанов 13 марта 2014, 11:00 # 0
                                        Сделал сниппет, ставлю в чанк письма [[!gallery_get_url? &by_thread=`[[+thread]]`]] а он таким и приходит в письме, т.е. не исполняется: Пользователь Петр [[!gallery_get_url? &by_thread=`1`]] оставил комментарий ((( Хотя вроде должен
                                        1. Василий Наумкин 13 марта 2014, 11:30 # 0
                                          Попробуй вызвать кэшированным.
                                          1. Пётр Молчанов 13 марта 2014, 12:06 # 0
                                            Спасибо. Всё получилось) Но вот как поменять заголовок у писем?
                                            1. Пётр Молчанов 13 марта 2014, 12:33 # 0
                                              Пока поменял в лексиконе на «Новый комментарий»
                                              1. Василий Наумкин 13 марта 2014, 13:27 # 0
                                                Так и надо — через лексиконы.
                                2. Пётр Молчанов 13 марта 2014, 15:55 # 0
                                  Ура, всё получилось! Но ловлю такой баг: не печатаются буквы «е» и «я» на любой раскладке. как такое вообще может быть? о_0 я один с такой проблемой?
                                  1. Чикин Артур 13 марта 2014, 16:00 # 0
                                    Это явно уже только твоя и твоей клавиатуры проблема.
                                    1. Пётр Молчанов 13 марта 2014, 16:08 # 0
                                      да я специально на нескольких компах проверил. засада(((
                              2. yani 05 февраля 2014, 22:31 # 0
                                Добрый вечер, Василий!
                                А планируется ли в тикетсах делать сортировку в гриде путем перетаскивания? или это можно осуществлять по иному? (кроме как не скрывать тикетсы из дерева ресурсов?)
                                1. Василий Наумкин 05 февраля 2014, 22:41 # 0
                                  Может быть, когда-нибудь.

                                  Это, и многое другое, уже есть в MS2, но некому заняться переносом наворотов.
                                2. Николай 06 февраля 2014, 14:32 # +1
                                  Как-то упустил из виду момент: можно ли пользователю из группы Администратор удалять/редактировать комментарии из frontend? (чтобы не лазать в админку постоянно)
                                  1. Василий Наумкин 06 февраля 2014, 14:36 # 0
                                    Нет.
                                  2. Антон Матвеев 09 февраля 2014, 11:37 # 0
                                    Здравствуйте, столкнулся с сообщением «tickets_err_register_globals».
                                    А на вашем демо-сайте делаю то же самое — все хорошо.
                                    1. Антон Матвеев 09 февраля 2014, 12:27 # 0
                                      извеняюсь, уже разобрался
                                      забыл золотое правило «сначало спроси у гугла» :))
                                    2. Andrew Byatets 09 февраля 2014, 15:14 # 0
                                      Василий, день добрый.
                                      А сколько будет стоить добавить плейсхолдер [[+text]] в TicketLatest?
                                      Чтобы публиковать текст последнего комментария.
                                      Спасибо
                                      1. Василий Наумкин 09 февраля 2014, 15:16 # 0
                                        &includeContent=`1`
                                        1. Andrew Byatets 09 февраля 2014, 15:25 # 0
                                          Спасибо, за ответ. Но что-то не получается… Использовал &includeContent=`1`, но не нашел там такого поля при выводе &tpl=``.
                                          1. Василий Наумкин 09 февраля 2014, 15:29 # 0
                                            Да как обычно, только у меня работает.
                                            <pre>
                                            [[!TicketLatest?
                                            	&action=`comments`
                                            	&includeContent=`1`
                                            	&tpl=``
                                            ]]
                                            </pre>
                                            1. Andrew Byatets 09 февраля 2014, 15:36 # 0
                                              Да, странно.
                                              У меня не так. Понял, буду копать, может переустановка поможет.
                                              Спасибо, в любом случае
                                              1. Andrew Byatets 09 февраля 2014, 15:37 # 0
                                                Все заработало, спасибо
                                        2. Ruslan Jn 09 февраля 2014, 15:38 # 0
                                          Добрый день! Проблема в том что Tickets у меня не работает.Вызываю так [[!TicketComments]]
                                          При нажатии кнопки написать ни чего не происходит.Я так понимаю проблема в jQuery.
                                          Скачивал библиотеку.Пробовал от гугла и яндекса ставить.Эффект 0.
                                          На данный момент стоит
                                          в error_log вот такие строки
                                          09-Feb-2014 10:20:30 UTC] PHP Fatal error: Call to a member function get() on a non-object in /home/rusllan/public_html/core/cache/includes/elements/modplugin/12.include.cache.php on line 95
                                          Пытался решить проблему сам но увы.Кто знает в чём причина?
                                          1. Чикин Артур 11 февраля 2014, 17:19 # 0
                                            В том что вам нужно почистить КЭШ.
                                            1. Василий Наумкин 11 февраля 2014, 17:30 # +1
                                              Ты хоть скопируй, что находится в этом файле на 95 строке.
                                            2. Ruslan Jn 11 февраля 2014, 18:03 # 0
                                              $seoKeywords = $modx->getObject('seoKeywords', array('resource' => $modx->resource->get('id')));

                                              Дело было в плагине Seo pro. На тестовом сайте установил его что бы убедиться и там комменты перестали работать. Снёс его к чертям — всё работает)))Сам разобрался кароче)
                                              Прописная истина в MODX — " не ставь всякие не известные плагины, ну их нафиг)))"
                                              1. Igor Churkin 11 февраля 2014, 19:02 # +1
                                                Ruslan, была проблема с seo pro. сегодня обновил компонент seo pro, проблема исчезла. видимо поправили баг.
                                                1. Ruslan Jn 11 февраля 2014, 20:08 # 0
                                                  Ага, понял.Поставил обратно.
                                                  1. Виталий Греков 11 февраля 2014, 23:30 # 0
                                                    Извините что не по теме, а seoPro с AjaxManager не дружит?
                                                    1. Igor Churkin 13 февраля 2014, 01:56 # 0
                                                      Я не знаю, не силён в этом.
                                                2. Ruslan Jn 28 февраля 2014, 17:23 # 0
                                                  Ребят, ни кто не в курсе где можно отредактировать текст в сплывающих окнах? К примеру
                                                  ВАШ КОММЕНТАРИЙ БУДЕТ ОПУБЛИКОВАН ПОСЛЕ ПРОВЕРКИ.
                                                  1. Антон Соловьёв 26 марта 2014, 15:36 # 0
                                                    А возможно заменить капчу на по-сложнее, на свою? Вообще у нас тут предлагается посылать пользователю sms с кодом капчи. Т.е. как я понимаю, мне придется мудрить с FormIt для того, чтобы сделать свою форму на создание комментария, где собственно через preHooks и hooks прикручивать капчу, в которой код отправляется через sms каким-нибудь подобным сервисом, потом данные обрабатывать через скрипт, который будет сохранять комментарий. Его скорее всего можно выпилить из этого bezumkin.ru/modx/tickets/comments/from_quip
                                                    Может есть какие способы проще, кроме как оставить простую капчу?
                                                    И потом надо будет как-то редактор тиккетов прикручивать…
                                                    1. Василий Наумкин 26 марта 2014, 15:46 # 0
                                                      Может есть какие способы проще, кроме как оставить простую капчу?
                                                      Нет.

                                                      А что, спам-боты уже научились отгадывать арифметические загадки?
                                                      1. Антон Соловьёв 26 марта 2014, 16:00 # 0
                                                        Там тема такая, что вместо спамботов могут посадить живого человека, с азами школьной математики, который будет набивать посты и ставить оценки положительные.
                                                        А почему нельзя через регистрацию через соц.сети, которые тоже фиксируют телефо сделать? Ну, каприз заказчика. Не хочет и все тут.
                                                        1. Василий Наумкин 26 марта 2014, 16:43 # 0
                                                          Защита от спама включается только для анонимных юзеров — голосовать они не могут.

                                                          А почему нельзя через регистрацию через соц.сети
                                                          А почему нельзя? Установи HybridAuth и настрой.
                                                          1. Антон Соловьёв 26 марта 2014, 17:19 # 0
                                                            Да понятно, что проще настроить НА и не любить мозг. Я ж пишу, нельзя потому что заказчик капризничает так. Хотю, говорит, чтоб человек вводил свое имя, номер телефона и фото, получал код для подтверждения капчи на смс и после того, как введет его — оставлял пост.
                                                            1. Василий Наумкин 26 марта 2014, 17:32 # 0
                                                              Могу только пожелать удачи.
                                                              1. Чикин Артур 26 марта 2014, 17:35 # 0
                                                                Любые действия с телефоном, особенно что бы оставлять отзыв на сайте очень подозрительно выглядит для пользователя. И будет сильно отпугивать. Лучше убедить вашего заказчика прикрутить Гибрит или убедить на обычную капчу.

                                                                Хотя то что нету pre\posthooks для капчи плохо…
                                                      2. Виталий Князь 27 мая 2014, 19:34 # 0
                                                        А как можно изменить внешний вид каптчи?
                                                        Сейчас я не нашел шаблон в чанках, можно ли как то его вынести в чанк, чтобы по своему выводить:
                                                        К примеру так
                                                        Введите сумму 89+12
                                                        1. Виталий Князь 27 мая 2014, 19:45 # 0
                                                          открыл глаза и нашел…
                                                          в чанке tpl.Tickets.comment.form.guest
                                                          закомментированы строчки отвечающие за вывод каптчи, я на них сначала не обратил внимание)))

                                                          <!--tickets_captcha
                                                          <div class="form-group">
                                                          	<label for="comment-captcha" id="comment-captcha">[[+captcha]]</label>
                                                          	<input type="text" name="captcha" value="" id="comment-captcha" class="form-control" />
                                                          	<span class="error"></span>
                                                          </div>
                                                          -->
                                                          1. Василий Наумкин 27 мая 2014, 20:05 # 0
                                                            Это незакомментированно, ознакомься.
                                                        2. Андрей 13 ноября 2014, 13:32 # 0
                                                          Доброго времени суток! Поставил вчера себе Ваш компонент версии tickets-1.4.2-pl и не нашел там функционала (настроек) по анонимным пользователям и капче, хотя по документации вашей даже в старой бето-версии было это все. Это что убрали функционал весь оттуда или как?
                                                          1. igor 21 ноября 2014, 17:37 # 0
                                                            привет Василий!
                                                            А подскажи как мне вывести последние комментарии с кусочком текста комментария
                                                            <div class="tickets-latest-row[[+guest]]">
                                                            	<span class="user"><i class="fa fa-user fa-lg"></i> [[+fullname]]</span> <span class="date">[[+date_ago]]</span>
                                                            	
                                                            	<span class="ticket">
                                                            		По товару: <a href="[[~[[+ticket.id]]]]#comment-[[+id]]">[[+ticket.pagetitle]]</a>
                                                            	</span>
                                                            	<nobr><i class="fa fa-comment"></i> <span class="comments">[[+comments]]</span></nobr>
                                                                      [[+text]]
                                                            </div>
                                                            <!--tickets_guest  ticket-comment-guest-->

                                                            так выводит весь текст комментария а
                                                            обрезка не работает

                                                            <div class="tickets-latest-row[[+guest]]">
                                                            	<span class="user"><i class="fa fa-user fa-lg"></i> [[+fullname]]</span> <span class="date">[[+date_ago]]</span>
                                                            	
                                                            	<span class="ticket">
                                                            		По товару: <a href="[[~[[+ticket.id]]]]#comment-[[+id]]">[[+ticket.pagetitle]]</a>
                                                            	</span>
                                                            	<nobr><i class="fa fa-comment"></i> <span class="comments">[[+comments]]</span></nobr>
                                                                      [[+text:ellipsis=`50`]]
                                                            </div>
                                                            <!--tickets_guest  ticket-comment-guest-->

                                                            1. Тимофей 27 ноября 2014, 17:46 # 0
                                                              Господа МОДэксеры или Аяксеры, помогите советом. Подключил модуль комментариев компонента Тикетс от Василия. В общем, все работает как для авторизованных так и для гостей. Вот только при нажатии на кнопку «Написать» видимых изменений не происходит, а сам комментарий появляется только после того, как ребутнешь страницу.
                                                              Кнопка затухает немного и все. F5 — и комментарий виден.
                                                              Ajax-запрос не возвращает ничего, кроме успешного статуса — может так и должно быть, но может и нет. Возможно, там ошибка. Только, не понимаю, как её мог сделать я. Ошибка-то в неприкасаемом коде вообще и неизвестно какая. А может её и нет, просто какой java-script не подключен для обновления.
                                                              Переустановил все компоненты, не говоря уже о ручной чистке кэша. В общем, при отправлении сообщения — до ребута страницы коммент не появляется. А вот при редактировании все работает, как положено. Есть идеи, как это исправить?
                                                              Возможно, настройки сервера нужно смотреть. А куда смотреть-то?
                                                              1. Василий Наумкин 27 ноября 2014, 18:24 # 0
                                                                Ты бы хоть ссылку дал, где посмотреть.

                                                                Похоже, что какая-то javascript ошибка при попытке обновления ветки комментов.
                                                              2. Тимофей 27 ноября 2014, 23:43 # 0
                                                                Василий, вот здесь, например: test3.trud.cv.ua/transport/23-staraya-rzhavaya-shesterka.html
                                                                Хм, после того, как здесь тоже не получилось коммент добавить, почистил кэш браузера и все заработало. Хотя до этого в разных браузерах одинаково глючило. Видимо, переустановка компонентов помогла. Спасибо за оперативность.
                                                                1. Василий Наумкин 28 ноября 2014, 05:21 # 0
                                                                  Да, у меня тоже нормально работает.

                                                                  На здоровье.
                                                                2. Добрый день, можно как то без бубнов настроить чтоб форму [[TicketComments?]] видели только группа например модераторов, а группа Users видела только опубликованные комменты?
                                                                  1. Тимофей 17 декабря 2014, 13:20 # 0
                                                                    Подскажите пожалуйста — можно ли сделать штатными методами, чтобы форма с инпутами комментария выводилась только после нажатия на кнопку «Оставить новый комментарий», как на этом сайте? А не мозолила глаза постоянно.
                                                                    1. Василий Наумкин 17 декабря 2014, 13:25 # 0
                                                                      Да, конечно.

                                                                      Посмотри, как именно сделано на этом сайте и всё станет понятно.
                                                                    2. Тимофей 19 декабря 2014, 21:42 # 0
                                                                      Василий, я собственно, с самого начала так и попытался сделать. Но, мягко говоря, не силен в JS. С кнопкой, вызывающей форму, разобрался. А какой адрес писать здесь:
                                                                      a href="#reply"
                                                                      , чтобы форма открылась, сейчас меня просто редиректит на главную?
                                                                      Добавление новых комментариев отключено.