easyComm 1.15.0 большой апдейт: ответы, улучшенные файлы и многое другогое!
Привет!
Сегодня расскажу про обновление easyComm до версии 1.15.0.
В этом обновлении огромное количество улучшений и исправлений, разных изменений.
В связи с этим: БЕКАП ПЕРЕД ОБНОВЛЕНИЕМ ОБЯЗАТЕЛЕН!!!
Эта версия содержит большое количество изменений, я не исключаю того, что будут баги.
На это обновление я затратил наверное часов 60 рабочего времени, так что в этой статье даже и не опишу всего, точно что-нибудь пропущу или забуду.
Про это у меня много раз спрашивали, будут ли ответы на сообщения (отзывы/вопросы — смотря для чего компонент используется на вашем сайте). Пора что-то сделать)))
В прошлых версиях компонента у менеджера была возможность написать на сообщение пользователя. Для этого у объекта ecMessages были доступны 2 текстовых поля: reply_author и reply_text, которые мог заполнить менеджер сайта, например так: «Администратор: спасибо за ваш отзыв».
В этой версии я добавил новую сущность Ответ (ecReply), содержащий просто имя пользователя, его почту и текст. Ответы не влияют на рейтинг, на количество отзывов или вопросов на вашем сайте. Воспринимайте их как комментарии к отзывам. В целом ecReply поддерживают вложенность (древовидность), но на фронте я не стал реализовать мощную систему вроде комментариев Tickets. Всё несколько проще, напоминает наверное ответы в telegram.
Сразу отвечу: к ответам нельзя прикреплять файлы или голосовать за них, это простое обсуждение.
Для того, чтобы функционал ответов стал доступен на сайте нужно:
1. у сниппета ecMessages включить параметр repliesEnable
2. Добавить в произвольное место страницы вызов сниппета ecReplyForm (форма добавления ответа другая, поэтому для нее свой сниппет по аналогии со знакомым ecForm).
1. Добавил генерацию превьюшек для изображений, чтобы страницы вашего сайта открывались быстрее. Для управления размером превью посмотрите настройки (конкретно thumbnailConfig) источника файлов easyComm.
В принципе демонстрация работы тоже не скриншоте выше. Если прикреплено изображение — видим его превью с открытием по клику, а если это файл — то видим ссылку с именем файла, его типом и размером. Само собой всё можно поменять в чанке и через css.
Здесь много мелочей:
— я переписал чанки, стили;
— обновил js файл (в т.ч. потому что появились ответы);
— один момент изменился очень сильно: в чанке tpl сниппета ecMessages теперь выводятся все сообщения в цикле, а не сообщения по одному! Поэтому если вы делали свой чанк на его основе — просто обновится не получится! При этом такие параметры сниппета как tplWrapper, tplEmpty, outputSeparator, toSeparatePlaceholders стали не нужны и были удалены.
— чанк tpl.ecForm (это тот, который использует сниппет ecForm) тоже изменился, там теперь другие идентификаторы (id) у слоёв, это важно, новый js файл рассчитан на работу с ними.
Переименованы поля у объектов:
— ecThread: resource > resource_id
— ecMessage: thread > thread_id
— ecVote: message > message_id
— Переименованы timestamp поля объектов (напр. createdon => created_on)
Я учел эти переименования в установщике, но БЕКАП ВСЕ РАВНО ОБЯЗАТЕЛЕН при обновлении.
Изменена работа уведомлений через email, обновились соответствующие чанки шаблонов писем и параметры сниппетов ecForm и ecMessage.
Все параметры для сниппетов прописаны, когда вы перетаскиваете в админке сниппет в область контента, в появившемся окне их можно подсмотреть и настроить.
И я решил не отправлять письмо пользователю в момент добавления нового отзыва (там ранее был текст вроде «Ваше сообщение отправлено, оно будет опубликовано после модерации»). Аналогичное сообщение выводится на фронте, зачем его дублировать на почту я не знаю. Email будет отправляться только при публикации сообщения на сайте.
При добавлении нового сообщения или ответа мы теперь сразу его видим с предупреждением, что он не опубликован.
Постарался немного улучшить интерфейс путем добавления индикаторов, сигнализирующих о наличии у сообщения прикрепленных файлов, ответов, голосов, а так же о кол-ве неопубликованных сообщений и ответов.
upd 28.03.2024: Для MODX 3 выпущена версия 3.6.0-pl, доступна в modstrore.pro
К сожалению на это требуется много времени, займусь по мере возможностей.
Сегодня расскажу про обновление easyComm до версии 1.15.0.
В этом обновлении огромное количество улучшений и исправлений, разных изменений.
В связи с этим: БЕКАП ПЕРЕД ОБНОВЛЕНИЕМ ОБЯЗАТЕЛЕН!!!
Эта версия содержит большое количество изменений, я не исключаю того, что будут баги.
На это обновление я затратил наверное часов 60 рабочего времени, так что в этой статье даже и не опишу всего, точно что-нибудь пропущу или забуду.
1. Ответы на сообщения
Про это у меня много раз спрашивали, будут ли ответы на сообщения (отзывы/вопросы — смотря для чего компонент используется на вашем сайте). Пора что-то сделать)))
В прошлых версиях компонента у менеджера была возможность написать на сообщение пользователя. Для этого у объекта ecMessages были доступны 2 текстовых поля: reply_author и reply_text, которые мог заполнить менеджер сайта, например так: «Администратор: спасибо за ваш отзыв».
В этой версии я добавил новую сущность Ответ (ecReply), содержащий просто имя пользователя, его почту и текст. Ответы не влияют на рейтинг, на количество отзывов или вопросов на вашем сайте. Воспринимайте их как комментарии к отзывам. В целом ecReply поддерживают вложенность (древовидность), но на фронте я не стал реализовать мощную систему вроде комментариев Tickets. Всё несколько проще, напоминает наверное ответы в telegram.
Сразу отвечу: к ответам нельзя прикреплять файлы или голосовать за них, это простое обсуждение.
Для того, чтобы функционал ответов стал доступен на сайте нужно:
1. у сниппета ecMessages включить параметр repliesEnable
2. Добавить в произвольное место страницы вызов сниппета ecReplyForm (форма добавления ответа другая, поэтому для нее свой сниппет по аналогии со знакомым ecForm).
2. Улучшил работу с прикрепленными к сообщениям файлами
1. Добавил генерацию превьюшек для изображений, чтобы страницы вашего сайта открывались быстрее. Для управления размером превью посмотрите настройки (конкретно thumbnailConfig) источника файлов easyComm.
В принципе демонстрация работы тоже не скриншоте выше. Если прикреплено изображение — видим его превью с открытием по клику, а если это файл — то видим ссылку с именем файла, его типом и размером. Само собой всё можно поменять в чанке и через css.
3. Улучшил внешний вид и внутренности стандартных чанков
Здесь много мелочей:
— я переписал чанки, стили;
— обновил js файл (в т.ч. потому что появились ответы);
— один момент изменился очень сильно: в чанке tpl сниппета ecMessages теперь выводятся все сообщения в цикле, а не сообщения по одному! Поэтому если вы делали свой чанк на его основе — просто обновится не получится! При этом такие параметры сниппета как tplWrapper, tplEmpty, outputSeparator, toSeparatePlaceholders стали не нужны и были удалены.
— чанк tpl.ecForm (это тот, который использует сниппет ecForm) тоже изменился, там теперь другие идентификаторы (id) у слоёв, это важно, новый js файл рассчитан на работу с ними.
4. Переименованы некоторые поля в БД
Переименованы поля у объектов:
— ecThread: resource > resource_id
— ecMessage: thread > thread_id
— ecVote: message > message_id
— Переименованы timestamp поля объектов (напр. createdon => created_on)
Я учел эти переименования в установщике, но БЕКАП ВСЕ РАВНО ОБЯЗАТЕЛЕН при обновлении.
5. Изменена работа уведомлений через email
Изменена работа уведомлений через email, обновились соответствующие чанки шаблонов писем и параметры сниппетов ecForm и ecMessage.
Все параметры для сниппетов прописаны, когда вы перетаскиваете в админке сниппет в область контента, в появившемся окне их можно подсмотреть и настроить.
И я решил не отправлять письмо пользователю в момент добавления нового отзыва (там ранее был текст вроде «Ваше сообщение отправлено, оно будет опубликовано после модерации»). Аналогичное сообщение выводится на фронте, зачем его дублировать на почту я не знаю. Email будет отправляться только при публикации сообщения на сайте.
6. Улучшено уведомление о добавлении сообщения
При добавлении нового сообщения или ответа мы теперь сразу его видим с предупреждением, что он не опубликован.
7. Улучшения по интерфейсу в админке
Постарался немного улучшить интерфейс путем добавления индикаторов, сигнализирующих о наличии у сообщения прикрепленных файлов, ответов, голосов, а так же о кол-ве неопубликованных сообщений и ответов.
Версия компонента для MODX 3
upd 28.03.2024: Для MODX 3 выпущена версия 3.6.0-pl, доступна в modstrore.pro
Актуализация документации
К сожалению на это требуется много времени, займусь по мере возможностей.
Комментарии: 7
Крутое обновление, спасибо
Почему может не подхватывать системную настройку ec_mail_manager? Подставляет emailsender, а при указании mailManager подхватывает его верно.
PS: перестало подхватывать сразу после обновления пакета до последней версии, до этого работало.
PS: перестало подхватывать сразу после обновления пакета до последней версии, до этого работало.
Добрый день. Может глюк?) Вообще код вот такой, выглядит вроде верно, но проверить сейчас не могу…
// Почта менеджера указана в настройке ec_mail_manager
$to = $this->modx->getOption('ec_mail_manager', null, '');
// Параметр mailManager сниппета ecForm (ecReplyForm) переопределяет эту настройку
$to = $this->modx->getOption('mailManager', $snippetProperties, $to, true);
// Если везде пусто - письма пойдут на адрес, указанный в emailsender
if (empty($to)) {
$to = $this->modx->getOption('emailsender');
}
Это файл /core/components/easycomm/model/easycomm/easycommnotifier.class.php, строка примерно 120…
Тоже думал сначала что глюк, но обновил 4 сайта и везде одинаково не подхватывает. Пока явно указал везде mailManager в вызовах. Код easycommnotifier.class.php у меня сходится — такой же везде.
Вот оно и переопределяет ПУСТЫМ значением mailManager. Поменял эти две строчки на одну, протестировал сейчас — работает как надо.
PS: надо тестировать и выпускать апдейт )
$to = $this->modx->getOption("mailManager", $snippetProperties, $this->modx->getOption("ec_mail_manager"), true);
PS: надо тестировать и выпускать апдейт )
Можно поинтересоваться чем обусловлено использование input[type=«submit»] вместо button. Мало того что форма сейчас просто не отправляется — обновляется страница, в предыдущих версиях работало отправка по button (бог с ним про disable и тд) — проверки кнопки не было.
Но как использовать input, если переписывать с button, если кнопка нужна двустрочная или текст с картинкой. Попалось сейчас пару проектов таких при обновлении.
Но как использовать input, если переписывать с button, если кнопка нужна двустрочная или текст с картинкой. Попалось сейчас пару проектов таких при обновлении.
Добрый день. Да ничем в принципе)
Замените на button. В js скрипте в первых строчках файла есть селектор для элемента, отправляющего форму, замените и его тоже.
Замените на button. В js скрипте в первых строчках файла есть селектор для элемента, отправляющего форму, замените и его тоже.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.