easyComm - комментарии, отзывы, вопросы на сайте

Установить easyComm >>

Компонент предназначен для создания на сайтах таких модулей/разделов, как:
  • Отзывы,
  • Комментарии,
  • Вопрос-ответ.
Название easyComm произошло от Easy Communication, или Easy Comments, кому как больше нравится.

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

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

Введение



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

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

Поэтому долгое время я использовал свое решение на базе MIGx, я даже писал про него modx.pro/help/3967/#comment-29953

Сделав десяток сайтов, пришел к пониманию того, что нужно:
— сообщения должны оставлять неавторизованные пользователи
— сообщения публикуются после модерации администратором
— минимально необходимый набор полей: имя, электронная почта, контакты (отдельно), текст сообщения, тема сообщения
— возможность администратора ответить на это сообщение, указав при этом кто отвечает (например свое ФИО)
— уведомление администратора о новом сообщении с сайта
— уведомление пользователя о публикации или получении ответа на его сообщение по почте
— достаточно простой в использовании компонент
— возможность внедрить на одну страницу несколько блоков с сообщениями (например Отзывы и Вопросы на разных вкладках, но в рамках одной страницы)

Используя эти требования в качестве своеобразного ТЗ я и написал этот компонент.

Видео работы, 3.5 минуты


При просмотре поставьте высокое качество.


Описание


Для понимания общей сути нужна написать, что компонент оперирует 2мя объектами: Сообщение (ecMessage) и Цепочка (ecThread). Каждое сообщение относится к определенной цепочке, а цепочка в свою очерез к определенному ресурсу. Это позволяет создать несколько цепочек для одного ресурса.

Поля объекта ecThread:
  • resource — id ресурса, к которому относится цепочка
  • name — уникальное имя цепочки
  • title — заголовок цепочки (для удобства)
  • message_last — id последнего опубликованного и неудаленного сообщения
  • message_last_date — дата последнего опубликованного и неудаленного сообщения
  • count — количество опубликованных и неудаленных сообщений в цепочке
  • properties — параметры, с которыми вызывался сниппет ecForm, создавший эту цепочку
  • extended — не используется в текущей версии
Поля объекта ecMessage:
  • thread — id цепочки
  • subject — тема сообщения, например вы можете создать выпадающий список со значениями «служба поддержки», «отдел продаж»
  • date — дата и время сообщения
  • user_name — имя пользователя, который оставил сообщение
  • user_email — электронная почта
  • user_contacts — контактная информация
  • text — текст сообщения
  • reply_author — автор ответа
  • reply_text — текст ответа
  • notify — уведомить об ответе пользователя
  • notify_date — дата последнего уведомления пользователя (что бы не уведомлять 2 раза)
  • extended — не используется в текущей версии

Фронтенд

При помощи сниппета
[[!ecForm]]
отображается форма добавления нового сообщения.



Когда пользователь заполняет ее, сообщение заносится в базу данных со статусом «не опубликовано». Менеджеру сайта приходит по почте уведомление. Если пользователь оставил свою электронную почту, ему так же придет уведомление о том, что его сообщение получено.

Менеджер в специальном разделе может управлять сообщениями, например опубликовать его, удалить, или оставить свой ответ. При редактировании сообщения менеджер имеет возможность установить галочку «уведомить об ответе», в этом случае пользователь получит уведомление о том, что менеджер опубликовал сообщение на сайте или дал ответ на него. Возможны различные варианты действий, например: опубликовал без ответа; опубликовал и оставил ответ; не публиковал на сайте, но ответил.

При помощи сниппета
[[!ecMessages]]
выводятся сообщения на странице.



Административный интерфейс

После установки компонента в меню Приложения появится новый пункт меню «Сообщения».

Раздел имеет 2 вкладки: Сообщения и Цепочки.

Сообщения
В этом разделе собраны все сообщения на сайте, последние добавленные будут сверху.



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

Для создания нового сообщения необходимо нажать на кнопку «Создать», для редактирования существующего — кликнуть правой кнопкой мыши по сообщению и выбрать в контекстном меню пункт «Изменить». Откроется окно со всеми доступными для заполнения полями. Перед этим необходимо, что бы у вас была создана цепочка, в которой данное сообщение будет находится.

У окна редактирования сообщения 3 вкладки:
— Сообщение. Основная информация о сообщении.
— Ответ. Поля для ответа на сообщение. Заполняется менеджером сайта.
— Настройки. Служебные настройки.



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



Цепочки
В этом разделе собраны все цепочки сообщений.



Каждая цепочка привязана к определенному ресурсу и имеет свое уникальное имя, по умолчанию «resource-[[*id]]». Для одного ресурса может существовать несколько цепочек, например «reviews-[[*id]]» (Отзывы) и «questions-[[*id]]» (Вопросы).

Кроме того, для цепочки можно задать Заголовок, например «Отзывы о компании» для удобства работы.

В контекстом меню цепочек доступен пункт «Управление сообщениями этой цепочки», которые открывает отдельную вкладку с сообщениями только этой цепочки.



Цепочки создаются автоматически при отображении формы с добавлением сообщения на сайте.

Управление сообщениями через вкладку «Сообщения» при редактировании ресурсов.
Если в настройках включено отображение вкладки Сообщения, то при редактировании ресурса появится эта вкладка. Ее функционал идентичен тому, что есть в меню «Приложения» с той разницей, что доступны только те сообщения и цепочки, которые относятся к текущему ресурсу.



Ссылки


Документация: docs.modx.pro/komponentyi/easycomm
Установочный пакет: modstore.pro/packages/utilities/easycomm

Примечание


easyComm для своей работы использует pdoTools, не забудьте его установить.

В общем если что-то сбивчиво или непонятно написал — укажите мне на это, поправлю. Задавайте вопросы, постараюсь ответить!

Обновления


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

09.04.2015, версия 1.0.4-beta2, Оценки и Рейтинг
Заметка: modx.pro/components/5299

13.04.2015, версия 1.1.0-beta, Плагины для добавления полей
Заметка: modx.pro/components/5299
Документация: docs.modx.pro/komponentyi/easycomm/plaginyi-i-kastomizacziya

05.06.2015, версия 1.2.0-pl, Дополнительное поле Изображение
Заметка: modx.pro/components/5707

31.05.2017, версия 1.3.2-pl, поддержка Google ReCaptcha v2

Пожалуйста, не путайте с компонентом ReCaptchaV2, который лежит в репозитории MODX. easyComm поддерживает рекапчу от гугл не зависимо от того компонента и его установка не требуется!

Для того, что бы включить капчу, нужно:
1. Зарегистрировать сайт, получить site key и secret key, вписать их в настройки MODX (раздел easyComm, настройки ec_recaptcha2_site_key, ec_recaptcha2_secret_key).
2. Включить капчу, настройка ec_captcha_enable

Если вам не нужна капча — просто не включайте ее, все будет работать, как раньше (простая проверка на спам осуществляется через скрытое поле).

Да, при обновлении — нужно перезаписать чанк tpl.ecForm, т.к. он изменился (или добавить в него плейсхолдер [[+recaptcha]] перед блоком с кнопкой).

Если у вас уже используется на сайте компонент ReCaptchaV2 (в других формах, реализованных через Formit), то вам придется самостоятельно подумать, как подключать скрипт от google recaptcha только 1 раз и как совместить работу компонентов. Это уже все индивидуально.

24.05.2018, версия 1.5.0-pl, переезд на Fenom.
В этой версии синтаксис чанков был изменен на Fenom, как более понятный.
Кроме того, добавилась вкладка с историей изменения Сообщения (создано, обновлено, удалено).
И да, внедрен механизм защиты от «левых установок», не через ModStore. Последняя версия без этого механизма — 1.4.3. Если вас устраивает отсутствие обновлений и не нужна поддержка — пользуйтесь)

19.12.2018, версия 1.6.0-pl, Множественные поля рейтинга
Заметка: modx.pro/components/17177
Документация: docs.modx.pro/komponentyi/easycomm/neskolko-polej-s-rejtingom

26.12.2018, версия 1.7.0-pl, Расширенный вывод рейтинга
Заметка: modx.pro/components/17212

16.01.2019, версия 1.8.0-pl, Шаблоны ответов
Заметка: modx.pro/components/17334

04.02.2019, версия 1.8.6-pl, Новые возможности
— прямая ссылка на сообщение в письме менеджеру (через GET параметр ecmessage)
— Wysiwyg редактор в поле Ответ в панели управления (отключаемый)
— Возможность настраивать фильтры в списке сообщений в панели управления (настройка ec_message_grid_filters)

15.11.2019, версия 1.10.0-pl, Голосование за сообщения
Заметка: modx.pro/components/19235
Наумов Алексей
03 апреля 2015, 09:40
modx.pro
13
32 360
+14
Поблагодарить автора Отправить деньги

Комментарии: 479

Илья Уткин
03 апреля 2015, 13:26
+3
Работа, конечно немаленькая проведена. Получилось очень хорошо. Я восхищен. Считаю, что цена адекватная.
    Наумов Алексей
    03 апреля 2015, 13:46
    +2
    Спасибо! Постараюсь до вечера еще видео о работе снять, что бы 100% понятны стали возможности и назначение компонента.
      Илья Уткин
      03 апреля 2015, 13:47
      0
      Лучше подключайся к MODX Russia Online — там все покажешь, а запись твоего доклада разместим на YouTube
        Наумов Алексей
        03 апреля 2015, 13:50
        0
        К сожалению ни подготовится не успею, ни по участвовать не смогу, только потом запись гляну…
          wgame
          03 апреля 2015, 14:31
          0
          Илья что-то не понял как посмотреть в онлайне можно будет
    Наумов Алексей
    03 апреля 2015, 15:00
    0
    Добавил небольшое видео в статью о работе компонента.
      Денис Богдановский
      03 апреля 2015, 16:46
      +3
      Алексей, отличная работа! Ценник хороший )
        Мордынский Николай
        03 апреля 2015, 17:37
        0
        С учетом наличия Tickets — велосипед или я ошибаюсь?
          Wassi Wassinen
          03 апреля 2015, 17:48
          0
          Ветки есть (несколько веток комментариев в одном ресурсе). В Тикетах, как я понимаю, этого нет.
            Наумов Алексей
            03 апреля 2015, 17:58
            0
            В тикетс с тояки срения архитектуры это есть, но фронтенд js скрипт это не поддерживает
            Наумов Алексей
            03 апреля 2015, 18:02
            0
            Я написал в статье про тикетс… Это несколько не то. Авторизация, древоводные комментарии, весьма сложная настройка (если нужно поменять стандартный функционал), неудобство работы из админки… Все это скорее мешает, чем помогает в тех задачах, которые призван решать мой компонент. Тикетс отлично подходит для блогов, а мой компонент наоборот)
              Wassi Wassinen
              03 апреля 2015, 18:08
              0
              В тикетс все то же самое, только нет реализации из коробки нескольких веток комментариев в одном ресурсе. Если вы зайдете в раздел «Приложения» -> «Тикеты» в админке сайта, то увидите то же самое, что и в вашем дополнении. Удобства столько же. Отсюда вопрос к ценнику. :) Вот если бы можно было добавлять свои поля… :)
                Илья Уткин
                03 апреля 2015, 18:42
                +2
                Тут основное — это бэкенд.

                Менеджер получает письмо «На сайте новый вопрос», заходит в админку, видит там «Эй, вы меня обманули!» и может ответить, не публикуя вопрос на сайте — прямо через админку. А тому, кто вопрос задал будет отправлено письмо.
                  Wassi Wassinen
                  03 апреля 2015, 18:50
                  0
                  Мысль понял.
                    Наумов Алексей
                    03 апреля 2015, 19:04
                    0
                    Все верно, Илья. В этом ключе и собирался продолжать. Пока только первая версия, надеюсь дальше функционал будет улучшаться.
                    Сергей Шлоков
                    03 апреля 2015, 18:43
                    +3
                    Если компонент предназначен для коммерческой работы, то ценник должен быть. Его все равно оплачивает закачик. Если для социальной сферы (как тикетс), то бесплатно. Такое мое скромное мнение.
                    Ведь покупать же никто не заставляет. :)
                      Wassi Wassinen
                      03 апреля 2015, 18:52
                      0
                      Было бы неплохо дать ссылку на гитхаб.

                      Про оплачивающего заказчика — согласен. :)
                        Сергей Шлоков
                        03 апреля 2015, 18:58
                        0
                        Гитхаб на платный компонент? Ну не все же такие щедрые как Василий :)
                          Наумов Алексей
                          03 апреля 2015, 19:03
                          0
                          Да исходники есть, я просто ссылку не публиковал)) но кто захочет, найти сможет. =)
                            Wassi Wassinen
                            03 апреля 2015, 19:04
                            +1
                            Дело в том, что отсутствие ссылки на гитхаб только немного усложняет неизбежное. :) Василий поступает не только щедро, но и мудро — те кто хотят купить — купят. И возможно предложат полезные изменения на гитхабе.

                            Посмотрите статистику modstore.pro :) mSearch2, Office, ms2Gallery — говорят о том, что качественные дополнения будут покупать. Потому что, цитирую :)
                            Его все равно оплачивает закачик.
                              Сергей Шлоков
                              03 апреля 2015, 19:08
                              0
                              Могу ошибаться, но думаю, что в статистике по mSearch2, Office, ms2Gallery учтены загрузки на тестовые сайты. Поэтому реальное количество покупок на самом деле гораздо меньше.
                              Посмотрите статистику modstore.pro :)
                              Лучше на ты. Так я чувствую себя моложе. :)
                                Wassi Wassinen
                                03 апреля 2015, 19:16
                                0
                                Лучше на ты. Так я чувствую себя моложе. :)
                                Аналогично :)
                                  Василий Наумкин
                                  03 апреля 2015, 19:44
                                  +1
                                  Нет, тестовые сайты не считаются, только реальные.

                                  Но показываются именно загрузки, а не покупки. То есть, чем больше новых версий дополнения — тем больше закачек.
                    Андрей
                    Андрей
                    03 апреля 2015, 18:57
                    +3
                    — сообщения должны оставлять неавторизованные пользователи
                    — сообщения публикуются после модерации администратором
                    — минимально необходимый набор полей: имя, электронная почта, контакты (отдельно), текст сообщения, тема сообщения
                    — возможность администратора ответить на это сообщение, указав при этом кто отвечает (например свое ФИО)
                    — уведомление администратора о новом сообщении с сайта
                    — уведомление пользователя о публикации или получении ответа на его сообщение по почте
                    — достаточно простой в использовании компонент
                    — возможность внедрить на одну страницу несколько блоков с сообщениями (например Отзывы и Вопросы на разных вкладках, но в рамках одной страницы)
                    Использую для всего этого Tickets — всё супер)



                    P.S. но ваш компонент лишним, безусловно, не будет.
                      Wassi Wassinen
                      03 апреля 2015, 18:59
                      +1
                      Андрей, скажите, как вы реализовали это изящное решение с оценкой?
                        Андрей
                        Андрей
                        03 апреля 2015, 19:54
                        1
                        +4
                        Весьма благодарен, что находите это изящным)

                        У меня на сайте Tickets используется для оценки товаров и оставления отзыва о том или ином товаре. Соответственно, голосовалка за отзывы мне не нужна (как здесь со стрелочками), а вот само поле `rating` в базе очень даже подходит для оценки товара, причём по любой шкале)

                        Поэтому я убрал возможность голосовать за отзывы, а на событие OnCommentSave повесил плагин, сохраняющий оценку пользователя в поле `rating`. Соответственно, в форму отзыва добавил радиокнопки для возможности выставить оценку. С помощью JS высвечивается та оценка, которую выбирает в данный момент пользователь.

                        Звёздочки картинками выводятся сниппетом (выбирает этот самый `rating` из базы) и чанком на основании выставленной оценки (c плейсхолдером [[+rating]]). В чанке примерно следующее:
                        <img src="/assets/theme/image/stars-[[+rating]].png" alt="Оценка [[+rating]]">
                        Там ещё прикручена общая оценка для товара на основании всех оценок юзеров.
                        В общем, может это и не совсем прямое использование компонента, и в некоторых местах костыльно получилось, но всё же работает быстро и свои функции выполняет, и меня в целом устраивает)
                          Wassi Wassinen
                          03 апреля 2015, 20:33
                          +1
                          Вы могли бы поделиться реализацией? Очень полезный функционал, тем более что к минишопу отзывы-комментарии идут по по умолчанию.
                            Андрей
                            Андрей
                            03 апреля 2015, 22:06
                            +3
                            Да я с радостью выложу, когда приведу код в божеский вид, а то в «коленочном» виде стыдно в сообщество выкладывать))) А руки всё не доходят.
                            Выше я озвучил общую концепцию функционала.
                              Wassi Wassinen
                              03 апреля 2015, 22:07
                              +1
                              Спасибо за ответ. Будет любопытно посмотреть.
                              Mihan
                              03 апреля 2015, 23:49
                              +1
                              тоже очень нужен такой функционал. Буду благодарен, если Андрей выложит.
                        Наумов Алексей
                        08 апреля 2015, 10:58
                        +1
                        Пакет доступен в репозитории: modstore.pro/packages/utilities/easycomm
                          Хулио Надда
                          09 апреля 2015, 01:08
                          0
                          Подскажите есть ли возможность добавлять свои поля TV?
                            Наумов Алексей
                            09 апреля 2015, 08:50
                            0
                            Ну во первых это не ресурсы MODx, поэтому о каких TV полях речь вообще?

                            А если имеются ввиду просто дополнительные поля, например, как в minishop2 — то нет. Но возможно, что пока нет.

                            Каких полей вам не хватает?
                              Хулио Надда
                              09 апреля 2015, 08:55
                              0
                              Ну собственно конечн дополнительные. Каких именно я сказать не могу. Сегодня одних завтра другой сайт и понадобятся другие. В Tickets например можно к отзыву добавлять свои TV поля и писать в них. Поэтому и спросил для меня это важно. Дополнение хорошее, судя по описанию и скриншотам удобное, но пока увы я не смогу воспользоваться. Так что есть куда развиваться =)
                                Наумов Алексей
                                09 апреля 2015, 09:02
                                0
                                Дело в том, что я пока вижу следующие сценарии использования дополнения: отзывы, вопрос-ответ, комментарии. Для этих сценариев стандартных полей хватает. Если вы назовете другие сценарии использования — я подумаю над ними, но пока даже сам не представляю.
                                  Василий Наумкин
                                  09 апреля 2015, 09:15
                                  1
                                  0
                                  Он говорит о том, что в Tickets при создании комментария все нестандартные поля формы добавляются в properties и их потом можно как-то использовать.

                                  Исходник.
                                    Наумов Алексей
                                    09 апреля 2015, 09:16
                                    0
                                    А, ок =)

                                    Спасибо! Ну, почему бы и нет конечно )
                                      Хулио Надда
                                      09 апреля 2015, 12:55
                                      0
                                      По моему не так вы меня поняли. Я имею ввиду возможность писать в TV дополнительные свойства для моего тикета.

                                      Ну например мне нужно к Записи прикрутить доп поле с датой я добавляю в чанк с формой дополнительный инпут и передаю в TV своего тикета, дальше уже вывожу список с дополнительными полями.
                                      Более конкретный пример тут. Есть два дополнительных TV: date (не заполнено) и resouecelist

                                      Василий, если не сложно не могли бы вы меня направить в правильное русло. При создании тикета хочу отправлять уведомление менеджеру сайта. Я так понимаю проще через плагин?
                              Наумов Алексей
                              05 мая 2015, 16:49
                              +1
                              В версии 1.1.1-pl добавил возможность автопубликации сообщений, такие просьбы были.
                                Dementor218
                                01 февраля 2020, 14:02
                                0
                                В версии 1.1.2-pl автопубликацию сообщений включить можно ли? Если да, то как?
                                  Dementor218
                                  02 февраля 2020, 16:37
                                  0
                                  Разобрался.))
                                Александр
                                10 мая 2015, 01:00
                                0
                                Пагинацию сделайте пожалуйста в новых версиях.
                                  Василий Наумкин
                                  10 мая 2015, 07:21
                                  1
                                  +1
                                  А что, pdoPage не работает?
                                    Наумов Алексей
                                    10 мая 2015, 16:35
                                    1
                                    0
                                    Ну да, должно по идее работать с pdoPage
                                      Сергей
                                      30 июля 2015, 14:49
                                      0
                                      Да, работает
                                      [[!pdoPage?
                                          &element=`ecMessages`
                                          &limit=`2`
                                          &tpl=`tpl.ecMessages.Row`
                                          &thread=`reviews-[[*id]]` 
                                      ]]
                                    Александр янк
                                    26 мая 2015, 11:50
                                    0
                                    Компонент классный, не пожалел, что купил. Вопрос, как быть с конфликтами других js скриптами?


                                    $(document).ready(function(){
                                        easyComm.initialize();
                                    });
                                    Тестовый сайт
                                    artlenk.ru/otzyivyi-klientov/
                                      Наумов Алексей
                                      26 мая 2015, 12:30
                                      +1
                                      Надо заменить $(document) на jQuery(document), как в остальных подключенных скриптах… подробности stackoverflow.com/questions/7975093/typeerror-undefined-is-not-a-function-evaluating-document
                                        Александр янк
                                        26 мая 2015, 13:22
                                        0
                                        Алексей, искренне благодарю. Все заработало как надо. А я уже подумал отказаться от других скриптов.

                                        Для тех кто не понял, нужно в файле ec.default.js (assets/components/easycomm/js/web/) заменить все знаки:

                                        $
                                        на
                                        jQuery
                                          Наумов Алексей
                                          26 мая 2015, 15:49
                                          +1
                                          Только лучше сделайте копию файла, когда делаете изменения и укажите путь к нему в системных настройках, а то при обновлении ваши правки перезатрутся. Хотя конкретно эту проблему постараюсь закрыть в следующей версии.
                                    Katya Larionova
                                    01 июня 2015, 19:25
                                    0
                                    У меня через easycomm реализован вопрос-ответ. Как сделать поиск по вопросам?
                                      Наумов Алексей
                                      02 июня 2015, 08:54
                                      1
                                      0
                                      Вы можете в параметре where сниппета ecMessages указать поисковый запрос, например:
                                      &where=`{"`ecMessage`.`text`:LIKE": "%слово%"}`
                                      А для подстановки «слово» из $_GET использовать простой сниппет
                                      return empty($_GET['query']) ? '' : $_GET['query'];
                                      не проверял, но как то так…
                                      Дмитрий
                                      02 июня 2015, 13:36
                                      0
                                      Алексей, спасибо за модуль. То что надо.
                                      Правда купить пока не получилось — при оплате по ВебМани ругается. Но решу сегодня.

                                      Вопрос у меня следующий:
                                      — Хочу к «вопросам» прикрепить возможность загрузки скриншота (фотки). Планирую использовать Uploadify. Такое возможно? или может что-то посоветуете?
                                        Наумов Алексей
                                        02 июня 2015, 14:37
                                        0
                                        Даже не знаю, чего посоветовать…
                                        Я не пробовал прикреплять файлы, наверное пока что никаких в этом направлении идей у меня нет… я даже не знаю что посоветовать, наверное вам придется самому подумать. Если будут нужны какие-то изменения в компоненте для реализации — я готов их внести, но пока не знаю что =)
                                          Дмитрий
                                          02 июня 2015, 17:27
                                          0
                                          Мое ощущение (я не очень «программист»), что достаточно «подружиться» с модулем загрузки, иметь возможность в компоненте вашей опцию включить типа «useUploadify», чтобы появилось в форме поле «Загрузить файл» и кнопочка от Uploadify. Не знаю как это точнее описать. На текущий момент у меня очень остро стоит задача такая и я даже думал, что временным решением будет 2 формы выводить, одну вашу, а перед ней (или между input'ами форму от загрузчика файла (если я правильно понял, он может работать независимо).
                                        Денис
                                        10 июня 2015, 23:42
                                        0
                                        Подскажите пожалуйста, как отключить вывод времени создания сообщения?
                                        Дата\время создания выводятся через [[+date]], а стандартные фильтры не срабатывают
                                          Наумов Алексей
                                          11 июня 2015, 08:43
                                          0
                                          Фильтры должны работать. Даже в стандартном чанке для вывода даты используется фильтр dateAgo.
                                            Денис
                                            11 июня 2015, 10:46
                                            0
                                            Ввожу вместо
                                            [[+date]]

                                            [[!dateAgo? &input=`[[*date]]` &dateFormat=`dateFormat`]]
                                            дата вообще не выводиться.
                                              Пётр Молчанов
                                              11 июня 2015, 10:55
                                              +1
                                              [[+date]]
                                              [[*date]]
                                              не видите разницу?
                                                Денис
                                                11 июня 2015, 11:17
                                                0
                                                [[!dateAgo? &input=`[[+date]]` &dateFormat=`dateFormat`]]
                                                Я первоначально так и делал. так тоже не работает.

                                                [[+date:dateAgo=`{"dateFormat":d F Y}`]]
                                                Вот так дата выводится, но фильтры не применяются
                                        Сергей
                                        29 июня 2015, 19:32
                                        0
                                        Можно ли в форме ответа включить визуальный редактор для создания ссылок и т.п?
                                          Наумов Алексей
                                          29 июня 2015, 20:42
                                          0
                                          Имеется ввиду поле «Ответ» в админке? Думаю, что это реально, поставлю в планы на будущее.
                                            Сергей
                                            01 июля 2015, 23:24
                                            0
                                            Да. Клиенты спрашивают. Думаю, популярная функция — сослаться на какую-то страницу. Держите в курсе.
                                              Сергей
                                              01 сентября 2015, 16:18
                                              0
                                              Здравствуйте. Как там визуальный редактор поживает?)
                                                Наумов Алексей
                                                01 сентября 2015, 17:02
                                                0
                                                Добрый день!

                                                Честно говоря, пока у меня не получилось это реализовать. Поиск не дал мне нужных знаний, что бы понять, как это правильно сделать в MODx. Те способы, которые я испробовал не работают до конца. Но задача стоит, так что надежды не теряем!)
                                                  Klike
                                                  04 августа 2016, 11:57
                                                  0
                                                  Алексей, скажите пожалуйста, получилось ли реализовать визуальный редактор?
                                                    Наумов Алексей
                                                    04 августа 2016, 15:43
                                                    0
                                                    Нет, я что-то и не брался за эту задачу. Насколько помню в прошлый раз у меня это не получалось, не все так просто было там.
                                            Антон Левиц
                                            Антон Левиц
                                            20 июля 2015, 16:42
                                            0
                                            А как вывести количество комментариев на странице?
                                            Сергей
                                            23 июля 2015, 23:29
                                            0
                                            Здравствуйте. По поводу плагинов.
                                            Как осуществить этот пункт?
                                            «5. Добавить записи в словари системы ec_message_field1 и ec_message_field2 (пространство имен easycomm).»
                                            Спасибо.
                                            И еще, есть ли возможность для отправки вопросов/отзывов зарегистрированными юзерами?
                                              Наумов Алексей
                                              24 июля 2015, 08:40
                                              0
                                              Находите в админке пункт меню «Управление словарями» и там создаете новую запись, указав пространство имен easycomm, язык ru.

                                              Отправлять вопросы зарегистрированные пользователи могут, да. В этом случае автоматически подставляется их имя и заполняется колонка createdby (посмотрите структуру таблиц компонента в phpmyadmin).
                                              Сергей
                                              23 июля 2015, 23:46
                                              0
                                              Еще один вопрос в догонку. Есть ли возможность создания рубрикатора? Интересует функционал www.lood.ru/index.php?rubr=consult&page=list&cur_page=9.
                                              Ну и выбор отвечающего из списка с ссылкой на профиль и изображением.
                                              Спасибо.
                                                Наумов Алексей
                                                24 июля 2015, 08:37
                                                0
                                                Рубрики — это ресурсы modx, тогда все должно получиться.

                                                Ну и выбор отвечающего из списка с ссылкой на профиль и изображением.
                                                не очень понял, про что вы.
                                                  Сергей
                                                  28 июля 2015, 10:41
                                                  0
                                                  Спасибо за ответы.
                                                  Чтобы в админке можно было выбрать отвечающего из пользователей сайта ( у каждого свой профиль, например с помощью userProfile).
                                                  И поддерживается ли древовидная структура вопросов-ответов?
                                                    Наумов Алексей
                                                    28 июля 2015, 10:52
                                                    0
                                                    Для ответа предусмотрено 2 поля: текст (reply_text) и имя (reply_author), иного функционала нет.

                                                    Древовидной структуры так же нет.
                                                      Сергей
                                                      28 июля 2015, 11:50
                                                      0
                                                      Понятно. А древовидная, я так понимаю может быть с помощью Tickets реализована?
                                                        Наумов Алексей
                                                        28 июля 2015, 18:46
                                                        0
                                                        Если посмотреть на сайт, где мы сейчас общаемся — да.
                                                        Сергей
                                                        28 июля 2015, 13:02
                                                        0
                                                        Еще пока стоит старая версия «вопросов», которая не компонент.
                                                        Там такое вот поведение странное, завис
                                                        mail.yandex.ru/message_part/Screenshot+%2827%29.png?_uid=89491354&hid=1.1.2&ids=2560000001153381924&name=Screenshot+%2827%29.png
                                                          Наумов Алексей
                                                          28 июля 2015, 18:46
                                                          0
                                                          По ссылке у меня белый экран
                                                            Сергей
                                                            29 июля 2015, 09:33
                                                            0
                                                            Загружается на диск файл по ссылке.
                                                            Я разобрался с этим. Оказалось что если в поле ответа есть тег ссылки с незакрытым кавычкой адресом, то не грузится. Вот такое странное поведение.
                                                              Воеводский Михаил
                                                              29 июля 2015, 09:39
                                                              +1
                                                              Сергей, смотрите внимательно на ссылки, которые размещаете.
                                                              В данном случае ссылка на файл из письма, данный файл доступен только при авторизации в вашем почтовом ящике. Совершенно естественно, что больше никто получить к нему доступ не может.
                                                          Сергей
                                                          28 июля 2015, 15:52
                                                          0
                                                          И еще =) Есть ли возможность задавать вопросы с разных ресурсов на определенный ресурс и выводить все ответы на нем?
                                                  Максим Степанов
                                                  24 июля 2015, 04:26
                                                  0
                                                  Здравствуйте. Приобрел компонент. но при вызове выдает ошибку Can`t find jQuery ajaxForm plugin! Подскажите как поправить? Или его нужно выводить как то совместно с ajaxForm?
                                                  На данные момент так
                                                  [[!ecForm]]
                                                  [[!ecMessages]]
                                                  Вопрос закрыт сразу не заметил про jquery.form.js.
                                                    Наумов Алексей
                                                    24 июля 2015, 08:35
                                                    0
                                                    Хорошо, что разобрались =) Вообще изначально были вопросы у многих подобные, но я все это старался отражать в документации.
                                                    Егор
                                                    12 августа 2015, 03:49
                                                    0
                                                    Не могу на отдельной странице вывести все цепочки, даже одну не получается(
                                                    [[ecMessages? &thread=`1`]] — Вот так вывожу
                                                    Кэши сайта также обновляю
                                                      Наумов Алексей
                                                      12 августа 2015, 08:49
                                                      +1
                                                      thread=`1`
                                                      1 — это id цепочки в вашем понимании? Должно быть имя, например resource-1.
                                                        Егор
                                                        12 августа 2015, 12:03
                                                        0
                                                        Получилось вывести одну цепочку вот так [[ecMessages? &tpl=`mess` &thread=`resource-18`]] спасибо)
                                                        А как теперь вывести несколько цепочек?
                                                          Наумов Алексей
                                                          12 августа 2015, 14:07
                                                          0
                                                          Скопируйте сниппет ecMesasges, в нем найдите обработку параметра $thread, начиная со строки
                                                          $thread = $modx->getOption('thread', $scriptProperties, '');
                                                          и немного ниже, удалите.

                                                          После чего еще ниже найдите

                                                          $where = array('`Thread`.`name`' => $thread->get('name'));
                                                          и поменяйте на

                                                          $where = array();
                                                          по идее все
                                                            Егор
                                                            12 августа 2015, 14:26
                                                            0
                                                            Все получилось спасибо большое) Очень крутой плагин спасибо ещё раз. Полностью окупает свою стоимость. Хотелось бы видеть в будущем возможность добавления фото в админке)
                                                              Наумов Алексей
                                                              12 августа 2015, 15:51
                                                              0
                                                              Прям в ядре компонента этого не будет. Но через плагины сделать можно: modx.pro/components/5707-easycomm-additional-picture-field/
                                                                Егор
                                                                12 августа 2015, 23:01
                                                                0
                                                                Да круто тоже получилось. Теперь не получается вывести 3 или 4 цепочки на одной странице. Вывести подряд не подходит такой вариант, потому что потом хочу сделать пагинация с помощью [[!pdoPage?]]. Как нибудь можно вывести несколько определенных цепочек?
                                                                  Наумов Алексей
                                                                  13 августа 2015, 09:38
                                                                  0
                                                                  Не очень понял… Несколько вызовов ecMessages вроде как и все:

                                                                  [[ecMessages? &thread=`resource-1`]]
                                                                  [[ecMessages? &thread=`resource-2`]]
                                                                  [[ecMessages? &thread=`resource-3`]]
                                                    varanika
                                                    05 ноября 2015, 17:05
                                                    0
                                                    А можно подробнее про ajaxform? Не до конца поняла про подключение.
                                                    Вызывать так:
                                                    [[!AjaxForm? 
                                                    &snippet=`ecForm`
                                                    &form=`tpl.ecForm`
                                                    Нужно ли что-то дописывать в php? Выбивает error submit…
                                                      Наумов Алексей
                                                      05 ноября 2015, 19:47
                                                      0
                                                      Нет, не тот ajaxform имею ввиду, а вот это плагин jQuery malsup.com/jquery/form/, подключите его на страницу.
                                                        varanika
                                                        06 ноября 2015, 13:11
                                                        0
                                                        Спасибо, ох уж эти тезки :) А не подскажете, какие таблицы в базе создает плагин? Интересует, ибо планирую сделать чистку от старого удаленного мусора, который сидит то в базе, то в папках…
                                                    Denis
                                                    19 ноября 2015, 21:30
                                                    0
                                                    Здравствуйте! У меня возникла проблема с выводом отзывов в других разделах моего сайта. При выводе отзыва на странице ресурса, к которому он принадлежит, звездочки выводятся нормально, но при выводе в другом разделе сайта, например, если нужно вывести несколько последних отзывов на главной странице сайта, то в этом случае звездочки не выводятся. Кто знает куда копать?
                                                      Denis
                                                      19 ноября 2015, 23:06
                                                      0
                                                      Проблема решена. Нужно было прописать путь к файлу ec.default.css в секции
                                                      <head></head>
                                                        Наумов Алексей
                                                        20 ноября 2015, 10:19
                                                        0
                                                        Все верно.

                                                        Компонент использует свой файл стилей, который подключается при вызове сниппета ecForm.

                                                        Я рекомендую еще убрать из системных настроек путь к этому файлу, что бы избежать двойного подключения на странице.
                                                      Виталий
                                                      01 декабря 2015, 17:38
                                                      0
                                                      Крутая штука, но мне в ней не хватает возможности оставлять комменты после авторизации через соц сети! А так бы купил
                                                        Наумов Алексей
                                                        03 декабря 2015, 10:02
                                                        0
                                                        В каком плане? После авторизации можно оставлять комментарии… И id авторизованного пользователя даже в базе сохраняется, после чего можно делать выборку с JOIN таблицы пользователей. Но да, это не из коробки, нужно писать самому.
                                                          Виталий
                                                          03 декабря 2015, 11:51
                                                          0
                                                          Я имею ввиду авторизацию через соц сети не на самом сайте где есть форма с комментариями, а именно что бы соц и конки были возле формы комментариев, и только после авторизации нажав на любую соц иконку можно было писать комменты или отзывы!
                                                            Наумов Алексей
                                                            03 декабря 2015, 11:55
                                                            0
                                                            Воспользуйтесь HybrudAuth или иным компонентом для авторизации, а компонентом Personalize для того, что бы скрывать форму добавления новых сообщений не авторизованными пользователями.
                                                        Anton
                                                        02 декабря 2015, 23:21
                                                        0
                                                        а как вывести средний рейтинг в отдельное ТВ?
                                                          Наумов Алексей
                                                          03 декабря 2015, 10:03
                                                          0
                                                          Что значит в отдельное ТВ?

                                                          Если я верно понял, то можно написать плагин, который будет реагировать на добавление/редактирование/удаление комментария и в этот момент копировать рейтинг цепочки хоть куда, в том числе и в TV.
                                                            Anton
                                                            03 декабря 2015, 14:10
                                                            0
                                                            Поняли правильно. Только я не зна как так сделать
                                                            Роман Воропаев (Volk)
                                                            16 декабря 2015, 13:18
                                                            +1
                                                            Хотелось бы, что бы было реализовано в отзыве загружать фотографии на сервер, которые потом будут автоматом прикреплены к отзыву. ну и с возможностью отключения этой функции.
                                                              Сергей
                                                              23 декабря 2015, 08:25
                                                              0
                                                              Где подкрутить, что бы при ответе на сообщение в админке галка «Уведомить о публикации (или ответе) пользователя по почте:» была по умолчанию включена?
                                                                Наумов Алексей
                                                                23 декабря 2015, 10:46
                                                                0
                                                                Думаю, что можно попробовать пойти аж тремя путями:
                                                                1. Добавить hidden поле notify=«1» в форму, не забыв добавить и его и в параметр allowedFields сниппета ecForm.
                                                                2. Написать плагин на событие OnEcMessageSave с проверкой, что это новое сообщение и там установить значение поля notify.
                                                                3. Поменять в исходниках значение поля по-умолчанию =)
                                                                  Сергей
                                                                  23 декабря 2015, 11:58
                                                                  0
                                                                  задал 1 в 'notify' => 1, в файле и все заработало как надо
                                                                  core\components\easycomm\model\easycomm\mysql\ecmessage.map.inc.php
                                                                    Наумов Алексей
                                                                    23 декабря 2015, 12:02
                                                                    0
                                                                    Ну так то оно да, но ровно до следующего обновления компонента…
                                                                antonina022
                                                                27 декабря 2015, 14:15
                                                                0
                                                                Подскажите, пожалуйста, easycomm можно применять для modx evolution???
                                                                  Николай
                                                                  27 декабря 2015, 14:18
                                                                  0
                                                                  Конечно нет, это два разных движка
                                                                  Сергей
                                                                  13 января 2016, 11:01
                                                                  0
                                                                  Использую ваш компонент, на мед портале, для ответов на вопросы пациентов, на форме добавил галку
                                                                  Не отображать вопрос на сайте
                                                                  />
                                                                  в core\components\easycomm\model\easycomm\easycomm.class.php
                                                                  Добавил if (!$data['noshow']) $fields['published'] = 1;
                                                                  т.е. если человек не хочет что бы его вопрос отображался на сайте, ставит галку «Не отображать вопрос на сайте»

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

                                                                    Наумов Алексей
                                                                    13 января 2016, 11:37
                                                                    0
                                                                    У вас часть кода съелась в комментарии…

                                                                    Но если я верно понял, то добавьте в вызов ecMessages условие:

                                                                    &where=`{"noshow": 0, "reply_text:!=": ""}`
                                                                    как-то так получается…
                                                                      Сергей
                                                                      14 января 2016, 06:23
                                                                      0
                                                                      то что съехало, там был просто input type=«checkbox» id=«noshow» name=«noshow»
                                                                      в зависимости от того стоит там галка или нет в core\components\easycomm\model\easycomm\easycomm.class.php

                                                                      $fields['published'] присваивается либо 0 либо 1

                                                                      &where=`{«noshow»: 0, «reply_text:!=»: ""}`
                                                                      как-то так получается…
                                                                      Так?
                                                                      [[!ecMessages? &where=`{"noshow": 0, "reply_text:!=": ""}`]]
                                                                      от куда сниппет узнает про noshow? он же только в html

                                                                      ps: Мне нужно сделать мадерирование вопросов пользователей, перед публикацией, а публиковать автоматом при ответе только те, на которых сняли галку «Не отображать вопрос на сайте»
                                                                      <td><label for="noshow">Не отображать вопрос на сайте</label></td>
                                                                      <td><input type="checkbox" id="noshow" name="noshow"/></td>
                                                                        Наумов Алексей
                                                                        14 января 2016, 09:44
                                                                        0
                                                                        Я думал, что noshow — это поле, которое вы добавили к объекту и оно есть в таблице, я бы так сделал.

                                                                        Если у вас уже проставляется published так, как нужно, то просто добавьте условие, что бы показывались все опубликованные отзывы, у которых есть ответ:

                                                                        [[!ecMessages? &where=`{"reply_text:!=": ""}`]]
                                                                        По идее должно работать
                                                                    Сергей
                                                                    16 февраля 2016, 08:30
                                                                    0
                                                                    постоянно выскакивает надпись ec_fe_spam_detected
                                                                    при выводе сообщений
                                                                    искал в исходниках что бы затереть, что то не могу найти
                                                                      Наумов Алексей
                                                                      16 февраля 2016, 11:12
                                                                      0
                                                                      У компонента есть такая защита, что одно из полей (address) при добавлении нового сообщения должно быть hidden и пустым. Поищите в документации antispamField.

                                                                      Вероятно вы что-то с ним связанное поменяли.

                                                                      Вот код из файла easycomm.class.php, который проверяет на спам:

                                                                      if(!empty($this->config['antispamField'])) {
                                                                                  if(!empty($data[$this->config['antispamField']])) {
                                                                                      return $this->error("ec_fe_spam_detected");
                                                                                  }
                                                                              }
                                                                        Сергей
                                                                        16 февраля 2016, 11:19
                                                                        0
                                                                        Спасибо, помогло, не стал разбираться, просто затер сообщение.
                                                                        Оно появляется на странице где только снипет ecMessages формы нету. какой там антиспам может быть?
                                                                          Наумов Алексей
                                                                          16 февраля 2016, 11:22
                                                                          0
                                                                          Очень странно:) вроде только в 1-м месте этот ec_fe_spam_detected выводится и то, при создании сообщения…
                                                                      Andrey Frost
                                                                      16 февраля 2016, 15:54
                                                                      0
                                                                      Подскажите, пожалуйста как реализовать возможность ответа на вопрос/комментарий с фронтенда
                                                                        Наумов Алексей
                                                                        16 февраля 2016, 16:25
                                                                        +1
                                                                        Такой возможности не предусмотрено и она не закладывалась.

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

                                                                        Конечно, вы можете написать некий код, что бы и с фронтэнда отвечать, но какого то общего решения нет. В вашем коде вам нужно просто заполнять поле reply_text у сообщения, это и есть ответ на него.
                                                                          Andrey Frost
                                                                          16 февраля 2016, 17:57
                                                                          0
                                                                          Подскажите пожалуйста в какую сторону копать, пробовал через сниппет ecForm, но как определить к какому из комментов цепочки относится ответ
                                                                            Наумов Алексей
                                                                            16 февраля 2016, 21:00
                                                                            0
                                                                            Сниппет ecForm вам тут совершенно не поможет. Нужно полностью писать самому всю обработку, ничего готового — нет.
                                                                        Сергей
                                                                        16 марта 2016, 14:33
                                                                        0
                                                                        Добрый день!
                                                                        Только установил и столкнулся с проблемой. Русский язык не понимает screenshot.su/show.php?img=423faa833ff89bd360c3df58450832a7.jpg
                                                                        В админке та-же проблема.
                                                                        Помогите решить
                                                                          Наумов Алексей
                                                                          16 марта 2016, 14:37
                                                                          0
                                                                          Добрый день. Ищите проблему в кодировке вашей БД. Должна быть utf-8 как всей базы, так и отдельных таблиц и колонок.

                                                                          У вас с вероятностью 99% где-то стоит иная кодировка.
                                                                            Сергей
                                                                            16 марта 2016, 15:01
                                                                            0
                                                                            Спасибо за такой быстрый ответ.
                                                                            1. Админку проверил, стоит utf8
                                                                            2. Базу скачал, там везде CHARSET=utf8
                                                                            Единственное, что сделал, это сравнение utf8_general_ci
                                                                            Сбросил кэш, перезашел в админку, не помогло. Что еще посмотреть.
                                                                            Дополнение tickets работает нормально.
                                                                            И как цепочки скрыть?
                                                                              Konstantin
                                                                              16 марта 2016, 15:08
                                                                              0
                                                                              заголовки сервера какие?
                                                                              в исходном коде страницы что стоит?
                                                                              в базе данных уже хранятся знаки вопроса вместо букв?
                                                                              В браузере меняли кодировку?
                                                                                Сергей
                                                                                16 марта 2016, 15:23
                                                                                0
                                                                                заголовки сервера какие? — это вы про логи или что?? Если да, то по данному компоненту нет ошибок
                                                                                в исходном коде страницы что стоит? — это вы про что? m2.demo.cresca.ru/otzyivyi.html
                                                                                в базе данных уже хранятся знаки вопроса вместо букв? — да
                                                                                В браузере меняли кодировку? — я даже знать не знаю как это сделать, как и любой другой пользователь, который будет комментарий оставлять

                                                                                И как вот этот бред остановить в логах? Я уже давно удалил компонент этот
                                                                                [2016-03-08 15:04:14] (ERROR @ /index.php) Could not load class: TicketsSection from mysql.ticketssection.
                                                                                Из-за этого логи уже 120 мб весят
                                                                                  Сергей
                                                                                  16 марта 2016, 15:40
                                                                                  0
                                                                                  Все вопрос решен, при установке, 2 таблицы и строки создались в неверной кодировке.
                                                                                  Пришлось заменить в скаченном файле кодировку.

                                                                                  Вопрос по поводу как закрыть или спрятать «цепочки» еще открыт.
                                                                                  И подскажите пожалуйста как полностью удалить компонент tickets, всем заранее спасибо.
                                                                                    Наумов Алексей
                                                                                    16 марта 2016, 16:35
                                                                                    0
                                                                                    закрыть или спрятать «цепочки»
                                                                                    Где? Что именно вы хотите получить?
                                                                                      Сергей
                                                                                      16 марта 2016, 17:50
                                                                                      0
                                                                                      Я установить хочу ваш модуль клиенту, сделать отзывы, но при этом не хочу, что бы эта вкладка вообще была ему доступна screenshot.su/show.php?img=7263530b9811f70d71a2d376f51fc072.jpg
                                                                                      Убрать полностью это вкладку для роли manager
                                                                                        Наумов Алексей
                                                                                        17 марта 2016, 08:51
                                                                                        0
                                                                                        вот как… понял. Штатно вроде бы нет такой возможности.

                                                                                        Могу предложить закомментировать в файле
                                                                                        assets/components/easycomm/js/mgr/widgets/home.panel.js

                                                                                        строки с 28 по 38, вот так:
                                                                                        }/*, {
                                                                                                        title: _('ec_threads'),
                                                                                                        layout: 'anchor',
                                                                                                        items: [{
                                                                                                            html: _('ec_threads_intro_msg'),
                                                                                                            cls: 'panel-desc'
                                                                                                        }, {
                                                                                                            xtype: 'ec-grid-threads',
                                                                                                            cls: 'main-wrapper'
                                                                                                        }]
                                                                                                    }*/]
                                                                                        только в скобочках не запутайтесь, по идее это просто уберет вкладку, на иной функционал повлиять не должно.

                                                                                        В будущей версии мож придумаю чего, хотя вы первый попросили. Ну или надо плагин написать, который будет скрывать эту вкладку, но как это сделать я не знаю :)
                                                                                          Сергей
                                                                                          17 марта 2016, 09:21
                                                                                          0
                                                                                          Все супер, спасибо, работает!
                                                                                            Сергей
                                                                                            17 марта 2016, 12:45
                                                                                            0
                                                                                            Простите, я вас еще немного помучаю, как скрыть их у самой страницы, цепочки screenshot.su/show.php?img=4cd4c4240479460f3e52c32da5efd9d9.jpg
                                                                                              Наумов Алексей
                                                                                              17 марта 2016, 13:54
                                                                                              0
                                                                                              Если только по аналогии…

                                                                                              файл assets/components/easycomm/js/mgr/widgets/page.panel.js

                                                                                              Там с 30 по 40 строки аналогичные действия.
                                                                                              Сергей
                                                                                              17 марта 2016, 14:53
                                                                                              0
                                                                                              Все супер, работает! Спасибо еще раз.
                                                                                            Илья
                                                                                            03 апреля 2016, 11:41
                                                                                            0
                                                                                            В будущей версии мож придумаю чего, хотя вы первый попросили. Ну или надо плагин написать, который будет скрывать эту вкладку, но как это сделать я не знаю :)
                                                                                            Честно говоря, я тоже хотел такую возможность. Буквально вчера настроил политики доступа, ограничил юзеру ресурсы, встал вопрос с сообщениями.

                                                                                            У меня юзер видит только тот ресурс, который я ему разрешил (в настройках пользователя указал id ресурса для ключа tree_root_id), и хотелось бы, что бы юзер мог видеть сообщения только для видимого ему ресурса, без правки исходников.

                                                                                            ps. если tree_root_id указать 0 — видны все ресурсы, если перечислять (можно перечислять через запятую), то видны только перечисленные ресурсы. Отсюда можно ввести проверку по этому ключу и на основе проверки показывать только сообщения и цепочки для разрешенного ресурса.

                                                                                            Спасибо, надеюсь моё сообщение поможет в реализации данной функции.
                                                                                              Наумов Алексей
                                                                                              03 апреля 2016, 16:23
                                                                                              0
                                                                                              Так можно ж вывести вкладку Сообщения для ресурсов, соответсвенно и будут пользователи видеть только сообщения тех ресурсов, что они видят :)
                                                                                              Илья
                                                                                              03 апреля 2016, 17:27
                                                                                              0
                                                                                              Верно, только еще пользователь видит и может редактировать цепочки,
                                                                                              а при редактировании сообщения можно в настройках поменять привязку к цепочке. Такая возможность удручает.
                                                                          Roman Sirecky
                                                                          20 марта 2016, 03:23
                                                                          0
                                                                          Подскажите, пожалуйста, можно ли вывести последний комментарий, например, на главной? В схожих приложениях есть что то типа «lastcomment», есть ли это тут?
                                                                          Сергей
                                                                          24 марта 2016, 10:14
                                                                          0
                                                                          Вы простите меня, но я вас еще немного помучаю.
                                                                          Как сделать, что бы эта вкладка не создавалась на других страницах? Надо что бы она была только на 1 й. Где действительно отзывы. А то при создании новых ресурсов она появляется автоматически.
                                                                            Sergey
                                                                            24 марта 2016, 10:17
                                                                            0
                                                                            В системных настройках параметры: ec_show_resources, ec_show_templates.
                                                                            Сергей
                                                                            24 марта 2016, 10:20
                                                                            0
                                                                            Все вопрос решен!
                                                                            Артур
                                                                            17 апреля 2016, 23:46
                                                                            0
                                                                            Добрый день! Во-первых огромное спасибо за компонент, он действительно шикарен) А во-вторых — подскажите пожалуйста, возможно ли сделать так, чтобы если на странице нет ни одного сообщения выдавалось что-то вроде
                                                                            <div>К данному товару пока нет отзывов</div>
                                                                            А когда было оставлено первое сообщение данный блок пропадал?) Я понял, что штатно этой функции нет, но может подскажите куда пилить) Заранее огромное спасибо)
                                                                              Наумов Алексей
                                                                              18 апреля 2016, 11:01
                                                                              1
                                                                              0
                                                                              Добрый день! Спасибо за спасибо)

                                                                              По сабжу: а вызов типа

                                                                              [[!ecMessages:default=`НИЧЕГО НЕТ`? ..параметры..]]
                                                                              не решит этот вопрос?
                                                                                Артур
                                                                                18 апреля 2016, 19:44
                                                                                0
                                                                                Оу)) не знал, что так можно) Молодой, не опытный… Спасибо огромное)
                                                                              Denis
                                                                              22 апреля 2016, 14:36
                                                                              0
                                                                              Здравствуйте. Можете подсказать как вывести средний рейтинг по отзывам для одной ветки?
                                                                                Наумов Алексей
                                                                                22 апреля 2016, 15:25
                                                                                0
                                                                                Так сниппет ecThreadRating есть в комплекте, он именно это и делает.
                                                                                  Denis
                                                                                  28 апреля 2016, 14:24
                                                                                  0
                                                                                  Я новичек в modx поэтому возникают некоторые вопросы. С выводом рейтинга на странице я разобрался, а как можно вывести среднее значение рейтинга, на превью. Допустим у меня есть каталог отелей, в карточке отеля понятно как вывести рейтинг, как это сделать в превью отеля на общей странице не ясно.
                                                                              Mike
                                                                              01 августа 2016, 10:25
                                                                              0
                                                                              Здравствуйте. Подскажите пожалуйста куда копать, при нажатии кнопки «Отправить» возникает всплывающее окно «Неизвестное действие». Jquery и jquery.form вроде подключил.
                                                                                Наумов Алексей
                                                                                01 августа 2016, 10:34
                                                                                0
                                                                                Что-то с формой наверное намудрили. Сложно сказать, нужно смотреть сайт.
                                                                                  Mike
                                                                                  01 августа 2016, 10:58
                                                                                  0
                                                                                  Поставил форму по умолчанию, результат тот-же. Были проблемы с установкой дополнения, слетели разрешения, потом вроде поправил — ошибок при переустановке не было. Форма находится здесь kim-rm.ru/otzyivyi-o-rabote-kliniki
                                                                                    Наумов Алексей
                                                                                    01 августа 2016, 11:08
                                                                                    0
                                                                                    Попробуйте в файле /assets/components/easycomm/action.php отловить, что происходит с переменной $action. Такой ответ (срока 50 файла) вроде только из-за проблем с ней может быть.

                                                                                    Может быть на сервере какие-то настройки мешают…
                                                                                      Mike
                                                                                      07 августа 2016, 16:33
                                                                                      0
                                                                                      В переменной $action — message/create, а по оператору switch в 50 строке берется действие не для case 'message/create', а применяется default действие. Ничего не понимаю. Я печатал в начале файла массив $_REQUEST целиком и $_REQUEST[action] в частности, значение message/create. Смотрел POST-запрос — все данные уходят. Наверное на сервере что-то не так отрабатывается, других вариантов скорее всего нет. Может попробовать поставить пустой тестовый modx на этот же сервер и запустить на нем компонент с целью проверки? Насколько я понимаю компонент привязан к доменному имени. Можно потом вернуть привязку к первоначальному имени?
                                                                                Сергей
                                                                                17 августа 2016, 11:52
                                                                                0
                                                                                Сегодня или вчера перестали выводиться вопросы, пол года все работало, ни чего не трогал, форма для ввода выводится, сообщения отправляются, а не выводится на сайте ни чего, уже все позабыл, где что копать и еще названия всех цепочек продублировались gyazo.com/bbac00cc73d3dd9fa790fc8b234ed094

                                                                                За день до этого перестали подходить пороли от всех админов сайта, сбросил их запросом к базе
                                                                                Сами вопросы в админке есть, в базе всмысле
                                                                                  Сергей
                                                                                  17 августа 2016, 12:26
                                                                                  0
                                                                                  Удаляю новые дублированные цепочки из админки или прям из базы и она снова создаются, gyazo.com/6a72ec7d01f668fd2a48c33e4edef702 выделено желтым

                                                                                  и названия в апострофах заключено почему то
                                                                                    Сергей
                                                                                    17 августа 2016, 12:49
                                                                                    0
                                                                                    Если я вызываю на странице у которой заголовок английскими буквами, то все работает и создается цепочка с названием из заголовка, а если заголовок русскими буквами, то создается цепочка с заголовком заключенным в апострофы, с чего вдруг так стало, на сайте ни чего не менял
                                                                                      Сергей
                                                                                      17 августа 2016, 13:11
                                                                                      0
                                                                                      Если переименовать заголовок документа и соответствующую цепочку в английскии символы, то все начинает работать.
                                                                                      Но нужны русские, зачем
                                                                                      [[!ecForm?
                                                                                      &requiredFields=`user_name,text,user_email`
                                                                                      &thread=`[[*pagetitle]]`
                                                                                      ]]

                                                                                      создает цепочку и добавляет апострофы к заголовку (для русских заголовков)?
                                                                                        Наумов Алексей
                                                                                        17 августа 2016, 14:20
                                                                                        0
                                                                                        кавычки из-за каких-то проблем на сервере, точно не могу сказать.

                                                                                        А зачем thread делаете равным pagetitle?
                                                                                        Это же чревато… чем родной resource-[[*id]] не устроил? Думаю, что нужно это исправить и проблем не будет.
                                                                                          Klike
                                                                                          18 августа 2016, 07:56
                                                                                          0
                                                                                          Алексей, подскажите пожалуйста, можно ли реализовать вывод формы ecForm, с выбором ветки?
                                                                                          Например, на сайте есть две ветки (вопросы, отзывы), и в форме, например выпадающим списком (или радио, не важно) посетитель выбирает, куда написать.
                                                                                            Наумов Алексей
                                                                                            18 августа 2016, 09:35
                                                                                            +1
                                                                                            Да, вы просто делаете select с name=«thread», где у options разные value, например review-[[*id]], question-[[*id]] и работаете.
                                                                                              Klike
                                                                                              18 августа 2016, 10:12
                                                                                              0
                                                                                              Спасибо!
                                                                                        Кирилл Киселев
                                                                                        19 августа 2016, 21:23
                                                                                        0
                                                                                        Здравствуйте! Пытался сделать свои дополнительные поля через эту статью:
                                                                                        docs.modx.pro/components/minishop2/development/plug-ins-products
                                                                                        В админке поля создаются, но через форму в базе данных они не сохраняются! Как быть?
                                                                                        В бд я эти поля создал.
                                                                                        Валерий
                                                                                        31 августа 2016, 19:30
                                                                                        0
                                                                                        Добрый вечер.
                                                                                        А можно в данном компоненте настроить подтверждение активации отзыва через почту. Т.е. на почту администратору приходит письмо с самим отзывом и ссылкой, перейдя по которой, администратор активирует этот отзыв (как подтверждение регистрации на большинстве сайтов)?
                                                                                          Наумов Алексей
                                                                                          01 сентября 2016, 09:18
                                                                                          +1
                                                                                          Приветствую!

                                                                                          Из коробки нет такой функции, нужно что-то придумывать и писать, например сделать отдельную страницу и разместить там небольшой сниппет, который будет обрабатывать запросы типа: /puplish-comment/?id=XXX&publish=1&secret=XXXXXXX
                                                                                          где secret это что нибудь типа md5 от id + секретный код, записанный в настройках.

                                                                                          А ссылку такую уже формировать в шаблоне письма…
                                                                                            Валерий
                                                                                            01 сентября 2016, 13:33
                                                                                            0
                                                                                            Спасибо, буду пробовать :)
                                                                                            Перед глазами код с предыдущего сайта на Evo. Там это реализовано. В принципе, примерно так, как вы описали, по крайней мере в реализации ссылки.
                                                                                          Tomas
                                                                                          22 сентября 2016, 21:27
                                                                                          1
                                                                                          0
                                                                                          Здравствуйте.
                                                                                          Использую компонент для отзывов о пользователях.

                                                                                          Подскажите как вывести общий рейтинг в списке пользователей? Используется pdoUser.

                                                                                          thread == user-(id пользователя)

                                                                                          Форма с добавлением отзыва находится на одном и том же ресурсе для разных пользователей, пример www.site.ru/user?id=111

                                                                                          Пробовал сделать плагин, при добавлении, удалении и тд. Он должен был брать из обновленной ветки рейтинг и добавлять его в кастомную таблицу пользователя, но он срабатывал только при добавлении отзыва с сайта, а при публикации, удалении не срабатывал. Использовал эти события joxi.ru/Q2KlNas95nXoAj
                                                                                            Наумов Алексей
                                                                                            23 сентября 2016, 09:08
                                                                                            0
                                                                                            Добрый день!
                                                                                            При вызове pdoUsers делайте join таблицы отзывов, по аналогии с этой публикацией: modx.pro/solutions/7446-join-easycomm-and-mfilter2/, только у вас условие будет не
                                                                                            "on": "msProduct.id = ecThread.resource"
                                                                                            а что-то вроде (не проверял)
                                                                                            "on": "CONCAT('user-', modUser.id)= ecThread.name"
                                                                                              Tomas
                                                                                              23 сентября 2016, 11:57
                                                                                              0
                                                                                              Спасибо, все получилось
                                                                                            max
                                                                                            max
                                                                                            30 сентября 2016, 08:52
                                                                                            0
                                                                                            Отличный плагин!
                                                                                            Есть маленькое предложение: было бы неплохо в настройки сниппета ecForm внести параметр типа adminEmail — чтобы можно было уведомлять определенных менеджеров. Часто, например, за функционал «вопрос-ответ» и «отзывы» (оба реализованы с помощью EasyComm) отвечают два разных контент-менеджера и хотелось бы распределять уведомления о новых сообщениях пользователей по конкретным ответственным менеджерам. Плюсом было бы неплохо, если в параметр можно было бы передавать несколько адресов e-mail разделенных запятой.
                                                                                            А так — все отлично! Спасибо за плагин =)

                                                                                            Для тех, кому срочно надо (типа меня)… По идее, достаточно поменять код в файле easycomm.class.php в функции sendNewMessageNotification:
                                                                                            if(empty($to)) {
                                                                                                $to = $this->modx->getOption('emailsender');
                                                                                            }
                                                                                            на
                                                                                            if(empty($to)) {
                                                                                                $to = !empty($this->config['adminEmail']) ? $this->config['adminEmail'] : $this->modx->getOption('emailsender');
                                                                                            }
                                                                                            и затем передавать в вызове ecForm параметр adminEmail
                                                                                              Наумов Алексей
                                                                                              30 сентября 2016, 09:11
                                                                                              0
                                                                                              Спасибо за отзыв и предложение, запишу в пожелания.
                                                                                                Наумов Алексей
                                                                                                11 января 2017, 15:41
                                                                                                0
                                                                                                С опозданием, но сделал :)

                                                                                                Параметр mailManager у сниппета ecForm в свежей версии (1.2.7-pl), доступно для обновления.
                                                                                                  Василий Столейков
                                                                                                  06 декабря 2017, 13:29
                                                                                                  1
                                                                                                  +1
                                                                                                  Вопрос: параметр mailManager (как и системная настройка ec_mail_manager) позволяет указывать только один емайл, или можно несколько через запятую как это сделано у тикетов?
                                                                                                  Если нет, то как отправить сообщение нескольким менеджерам одновременно?
                                                                                              Сергей
                                                                                              07 октября 2016, 10:35
                                                                                              0
                                                                                              вывожу сообщения так
                                                                                              [[!ecMessages?  &limit=`1200`]]

                                                                                              но все равно выводятся не все сообщения, а всего 11 штук примерно, а должно быть гораздо больше, где и что можно подправить?
                                                                                                Наумов Алексей
                                                                                                07 октября 2016, 10:55
                                                                                                0
                                                                                                т.к. по-умолчанию выводятся сообщения текущего ресурса.

                                                                                                Укажите &threads=`*`, см. описание параметра в документации docs.modx.pro/components/easycomm/snippets
                                                                                                  Сергей
                                                                                                  07 октября 2016, 10:57
                                                                                                  0
                                                                                                  Дак мне и надо текущего, в админки их больше гораздо
                                                                                                    Сергей
                                                                                                    07 октября 2016, 10:59
                                                                                                    0
                                                                                                    В админке 64, а выводится 11
                                                                                                      Сергей
                                                                                                      07 октября 2016, 11:02
                                                                                                      0
                                                                                                      gyazo.com/0b0d55b1ddffb02310869f6203c2a8ba

                                                                                                      прописал так [[!ecMessages? &threads=`resource-242` &limit=`1200`]]

                                                                                                      стало вообще одно выводиться

                                                                                                      так &threads=`*` тоже одно выводится
                                                                                                        Сергей
                                                                                                        07 октября 2016, 11:06
                                                                                                        0
                                                                                                        [[!ecMessages? &limit=`0`]]

                                                                                                        все вот так теперь выводятся все сообщения из этого раздела
                                                                                                          Наумов Алексей
                                                                                                          07 октября 2016, 11:33
                                                                                                          0
                                                                                                          Очень странное поведение, никогда не встречал такого…
                                                                                                          параметр limit всегда отличался корректностью работы. Я обычно 0 пишу, когда нужно вывести все. Хорошо, что заработало.
                                                                                                            Konstantin
                                                                                                            30 октября 2016, 21:10
                                                                                                            0
                                                                                                            А у меня [[!ecMessages?
                                                                                                            &limit=`0`
                                                                                                            ]]
                                                                                                            категорически не работает… выводит всего несколько сообщений
                                                                                                Александр
                                                                                                06 ноября 2016, 08:54
                                                                                                0
                                                                                                напишите как вывести средний рейтинг я не понимаю использую rating_simple но может не так как то вывожу?
                                                                                                Александр
                                                                                                09 ноября 2016, 20:31
                                                                                                0
                                                                                                подскажите пожалуйста как вывести комментарий:

                                                                                                к примеру у меня такая структура:

                                                                                                дом (родитель)
                                                                                                — о доме (дочерний элемент)
                                                                                                — новости (дочерний элемент)
                                                                                                — отзывы (дочерний элемент)

                                                                                                отзывы люди оставляют во вкладке отзывы, как эти отзывы вывести на родительской странице «дом»

                                                                                                спасибо за ответ
                                                                                                  Наумов Алексей
                                                                                                  09 ноября 2016, 20:56
                                                                                                  0
                                                                                                  Добрый день. Используйте параметр thread у сниппетов, например:

                                                                                                  // на странице Дом
                                                                                                  &thread=`house-[[*id]]`
                                                                                                  // на странице Отзывы
                                                                                                  &thread=`house-[[*parent]]`
                                                                                                Александр
                                                                                                09 ноября 2016, 21:03
                                                                                                0
                                                                                                все разобрался спасибо!
                                                                                                  Александр
                                                                                                  10 ноября 2016, 09:08
                                                                                                  0
                                                                                                  Добрый день!

                                                                                                  Подскажите пожалуйста так и на могу разобраться как вывести рейтинг среднее цифрой.

                                                                                                  Спасибо.
                                                                                                    Наумов Алексей
                                                                                                    10 ноября 2016, 10:13
                                                                                                    0
                                                                                                    Вы же выше это же спросили и написали, что разобрались.
                                                                                                    Я не очень понимаю, где, как, каким сниппетом вы выводите, что значит цифрой?
                                                                                                    Александр
                                                                                                    10 ноября 2016, 10:15
                                                                                                    0
                                                                                                    на странице записи как вывести эти значения?

                                                                                                    prntscr.com/d5edsf
                                                                                                    Александр
                                                                                                    29 ноября 2016, 09:13
                                                                                                    1
                                                                                                    0
                                                                                                    День добрый! Сразу оговорюсь, я чайник в этих делах. Купил Ваше дополнение, установил. Создаю новый ресурс, привязываю к нему это дополнение, получается, что могу редактировать сообщения прям из под ресурса — это понял, все ок. Но скажите какой код нужно вставить на странице ресурса, чтобы он начал отображать комменты и дал возможность писать новые! Заранее спасибо! Все, что необходимо для работы установил, как написано в инструкции.
                                                                                                      Наумов Алексей
                                                                                                      29 ноября 2016, 16:02
                                                                                                      0
                                                                                                      На странице вызываете сниппеты:

                                                                                                      [[!ecMessages]]
                                                                                                      [[!ecForm]]
                                                                                                      первый выводит опубликованные сообщения, второй выводит форму добавления.
                                                                                                      Даниил
                                                                                                      19 декабря 2016, 11:01
                                                                                                      0
                                                                                                      С плагинами вроде понял и разобрался. Поля могу добавить. А вот как мне через систему плагинов подключить свой JS-скрипт? Надо добавить кое-какие действия, а в родной JS не хочется засовывать, ибо потом обновления все дела. Конечно можно просто в системных настройках прописать свой JS-файл, но тоже чревато.

                                                                                                      Помню была какая-то старая версия Tickets у меня, я там как раз сделал так. Через достаточно большой период времени обновил компонент, в итоге с моим JS-скриптом отказался вообще работать, т.к. за длительный период родной JS у Tickets значительно изменил логику работы. Замучался потом из старого и нового скриптов делать гибрид, чтоб и новое все заработало и мои дополнения чтоб функционировали.

                                                                                                      Не хочу чтоб через пару лет мне пришлось столкнуться с той же проблемой у easyComm. Поэтому хочу именно еще одним дополнительным JS-файлом это сделать, как плагин.
                                                                                                        Даниил
                                                                                                        19 декабря 2016, 11:07
                                                                                                        0
                                                                                                        Пробовал в плагине «core/components/easycomm/plugins/actions/index.php» просто подключиться к MODX и зарегать свой скрипт

                                                                                                        <?php
                                                                                                        define('MODX_API_MODE', true);
                                                                                                        require $_SERVER['DOCUMENT_ROOT'].'/index.php';
                                                                                                        $modx->getService('error','error.modError');
                                                                                                        $modx->regClientStartupScript('assets/components/easycomm/plugins/actions/actions.js');

                                                                                                        Так не работает. Вообще страница падает из-за php конфликта.
                                                                                                          Наумов Алексей
                                                                                                          19 декабря 2016, 12:08
                                                                                                          0
                                                                                                          Так просто в head подключите свой скрипт и все, зачем мучать себя? Пусть всегда будет подключен.

                                                                                                          Я же обычно делаю так:
                                                                                                          Конечно можно просто в системных настройках прописать свой JS-файл, но тоже чревато.
                                                                                                          но при обновлениях приходится следить, что произошло и вносить изменения.
                                                                                                            Даниил
                                                                                                            20 декабря 2016, 12:39
                                                                                                            0
                                                                                                            Ну в head эт я в первую очередь сделал, но думаю это как временное решение, потом всеж придумаю как плагином. Поросто сайтов много и когда переносишь какое-то настроенное решение с одного сайта на другой, то всеж гораздо удобнее, чтоб достаточно было ограничиться перекидыванием чанков и заливкой файлов, чтоб в коды поминимуму вникать… Ну и как-то цивилизованнее и современнее чтоль так)))
                                                                                                        Даниил
                                                                                                        20 декабря 2016, 12:45
                                                                                                        0
                                                                                                        Сейчас вот еще вопрос возник. Как после отправки сообщения сразу отобразить его, как в Tickets?

                                                                                                        Попытался в tpl.ecForm.Success впихнуть вызов ecMessages с &limit=`1`, но там видимо где-то есть оператор экранирующий теги MODX, в итоге вместо вывода результата работы сниппета вижу просто строку его вызова. Как исправить, в каком php-файле какой кусок кода? Ну или можт еще какой путь есть?
                                                                                                          Даниил
                                                                                                          20 декабря 2016, 14:17
                                                                                                          0
                                                                                                          Компонент кстати, если интересно, прикручиваю вот на этот лэндинг http://abortam.net/. Там еще многое не работает, так сказать в процессе сборки и тестов…

                                                                                                          Изначально был Tickets, но отказался из-за того, что в базовом варианте нет поддержки вывода нескольких веток комментариев на одной странице, а easyComm имеется. Править исходники Tickets, чтобы сделать поддержку нескольких вызовов сейчас банально нет времени.

                                                                                                          Что касательно easyComm сделано:
                                                                                                          1. Сделал поддержку включения/отключения комментов для статьи в один клик в доп.полях через радиобатон в админке.
                                                                                                          2. Само-собой с CSS поработал
                                                                                                          3. Убрал лишние стандартные поля, вход/регистрация производится через собственный компонент logReg (доведу однажды до ума — выложу релиз)
                                                                                                          4. Реализована возможность мультикомментариев (комментарии на комментарий).

                                                                                                          Сейчас после входа и отправки сообщений приходится обнавлять страницу, но в планах все через AJAX допилить. Также будут аватары, загружаемые пользователями (не через Gravatar, а напрямую на хостинг). Сейчас заканчиваю еще один собственный компонент modxAva. Точнее компонент уже готов, просто на этом сайте еще не прикрутил, но потестить его можно на другом сайте — http://esolife.ru/. Там он успешно работает в паре с Tickets (на основе которого кстати там построен полноценный форум, функционал которого постепенно расширяю).
                                                                                                            Наумов Алексей
                                                                                                            20 декабря 2016, 15:44
                                                                                                            0
                                                                                                            Вот с Success не понял, в чем причина, вроде бы все должно быть хорошо…

                                                                                                            К сожалению, сейчас нет времени смоделировать ситуацию, проверьте еще раз, что каких-нибудь досадных опечаток нет…
                                                                                                              Даниил
                                                                                                              21 декабря 2016, 15:03
                                                                                                              0
                                                                                                              На всякий, для полного понимания ситуации

                                                                                                            exist17
                                                                                                            22 декабря 2016, 14:47
                                                                                                            +1
                                                                                                            Здравствуйте!
                                                                                                            Ваш отличный компонент пришелся очень вовремя и к месту. Буду использовать его для раздела FAQ. У меня на вопросы пользователей будет отвечать около 20 специалистов. Будет довольно большой объем сообщений. Поэтому без аватаров, страница будет довольно обезличенная и «не живая». Отсюда вопрос.
                                                                                                            Подскажите пожалуйста, как бы вы реализовали вывод аватара менеджера сайта, того который отвечает на вопрос пользователя?
                                                                                                            Вижу в плагине «easyComm» следующий код:
                                                                                                            $defaultReplyAuthor = '';
                                                                                                            if($modx->getOption('ec_auto_reply_author')) {
                                                                                                            	$defaultReplyAuthor = addslashes($modx->user->getOne('Profile')->get('fullname'));
                                                                                                            }
                                                                                                            Как бы так тоже прикрутить вывод аватара, который прописан у менеджера в профиле?
                                                                                                              Наумов Алексей
                                                                                                              22 декабря 2016, 15:04
                                                                                                              +2
                                                                                                              Добрый день.

                                                                                                              Жёсткой привязки автора ответа к пользователю нет, как видите тут просто fullname берем. Я бы рекомендовал в этом случае вам заменить на такой код:

                                                                                                              $defaultReplyAuthor = $modx->user->get('id');
                                                                                                              и хранить уже id пользователя.

                                                                                                              На на фронте в выборку добавлять fullname и аватар удобным вам способом
                                                                                                                exist17
                                                                                                                22 декабря 2016, 17:53
                                                                                                                0
                                                                                                                Спасибо! Примерно так структурно и представлял себе решение.
                                                                                                                Алексей, можете чуть подробнее подсказать в каком модуле можно определить текущего пользователя админки и сохранить его в таблицу «modx_ec_messages»?.. А то, изменив код именно в плагине «easyComm» как вы описали, даже после очистки кэша и всяческих перелогиниваний и удалении core\cache ничего не меняется. Думаю что это делается где-то в другом месте…
                                                                                                                  Наумов Алексей
                                                                                                                  22 декабря 2016, 19:58
                                                                                                                  0
                                                                                                                  Еще в файле /core/components/easycomm/index.class.php, аналогичный код.

                                                                                                                  Плагин работает когда работаем на странице ресурса, файл выше — работает в разделе Приложения/easyComm.
                                                                                                                    exist17
                                                                                                                    22 декабря 2016, 23:22
                                                                                                                    0
                                                                                                                    Теперь понятно. Спасибо!
                                                                                                              varanika
                                                                                                              24 декабря 2016, 22:45
                                                                                                              0
                                                                                                              Добрый вечер.
                                                                                                              Хочу реализовать форму вопроса во всплывающем окне. Если использовать фэнсибок и настроить в js закрытие на клик по кнопке — то форма закроется даже при ошибке в заполнении. Случайно в коробке нет ответов на эту реализацию?
                                                                                                                varanika
                                                                                                                25 декабря 2016, 00:55
                                                                                                                +2
                                                                                                                Как бы нашла решение :)
                                                                                                                jQuery(form).hide();
                                                                                                                                             setTimeout( function() {$.fancybox.close(); },3000);
                                                                                                                Добавить в my.default.js вместо
                                                                                                                jQuery(form).hide();
                                                                                                                varanika
                                                                                                                25 декабря 2016, 21:14
                                                                                                                1
                                                                                                                0
                                                                                                                Целиком, вдруг кто еще захочет сделать всплывающую форму связи с администрацией
                                                                                                                var easyComm = {
                                                                                                                    initialize: function(){
                                                                                                                        if(!jQuery().ajaxForm) {
                                                                                                                            easyComm.notice.error('Can`t find jQuery ajaxForm plugin!');
                                                                                                                        }
                                                                                                                        easyComm.rating.initialize();
                                                                                                                        jQuery(document).on('submit', 'form.ec-form', function(e){
                                                                                                                            easyComm.message.send(this);
                                                                                                                            e.preventDefault();
                                                                                                                            return false;
                                                                                                                        });
                                                                                                                    },
                                                                                                                
                                                                                                                    message: {
                                                                                                                        send: function(form) {
                                                                                                                            jQuery(form).ajaxSubmit({
                                                                                                                                data: {action: 'message/create'}
                                                                                                                                ,url: easyCommConfig.actionUrl
                                                                                                                                ,form: form
                                                                                                                                ,dataType: 'json'
                                                                                                                                ,beforeSubmit: function() {
                                                                                                                                    jQuery(form).find('input[type="submit"]').attr('disabled','disabled');
                                                                                                                                    jQuery(form).find('.has-error').removeClass('has-error');
                                                                                                                                    jQuery(form).find('.ec-error').text('').hide();
                                                                                                                                    return true;
                                                                                                                                }
                                                                                                                                ,success: function(response) {
                                                                                                                                    var fid = jQuery(form).data('fid');
                                                                                                                                    jQuery(form).find('input[type="submit"]').removeAttr('disabled');
                                                                                                                                    if (response.success) {
                                                                                                                                        jQuery(form)[0].reset();
                                                                                                                                        if(typeof (response.data) == "string") {
                                                                                                                                            jQuery('#ec-form-success-' + fid).html(response.data);
                                                                                                                                            jQuery(form).hide();
                                                                                                                                            setTimeout( function() {$.fancybox.close(); },3000);
                                                                                                                                        }
                                                                                                                                        else {
                                                                                                                                            easyComm.notice.show(response.message);
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                    else {
                                                                                                                                        if(response.data && response.data.length) {
                                                                                                                                            jQuery.each(response.data, function(i, error) {
                                                                                                                                                jQuery(form).find('[name="' + error.field + '"]').closest('.form-group').addClass('has-error');
                                                                                                                                                jQuery(form).find('#ec-' + error.field + '-error-' + fid).text(error.message).show();
                                                                                                                                            });
                                                                                                                                        } else {
                                                                                                                                            easyComm.notice.error(response.message);
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                                ,error: function(){
                                                                                                                                    jQuery(form).find('input[type="submit"]').removeAttr('disabled');
                                                                                                                                    easyComm.notice.error('Submit error');
                                                                                                                                }
                                                                                                                            });
                                                                                                                        }
                                                                                                                    },
                                                                                                                
                                                                                                                
                                                                                                                    rating: {
                                                                                                                        initialize: function(){
                                                                                                                            var stars = jQuery('.ec-rating').find('.ec-rating-stars>span');
                                                                                                                            stars.on('touchend click', function(e){
                                                                                                                                var starDesc = jQuery(this).data('description');
                                                                                                                                jQuery(this).parent().parent().find('.ec-rating-description').html(starDesc).data('old-text', starDesc);
                                                                                                                                jQuery(this).parent().children().removeClass('active active2 active-disabled');
                                                                                                                                jQuery(this).prevAll().addClass('active');
                                                                                                                                jQuery(this).addClass('active');
                                                                                                                                // save vote
                                                                                                                                var storageId = jQuery(this).closest('.ec-rating').data('storage-id');
                                                                                                                                jQuery('#' + storageId).val(jQuery(this).data('rating'));
                                                                                                                            });
                                                                                                                            stars.hover(
                                                                                                                                // hover in
                                                                                                                                function() {
                                                                                                                                    var descEl = jQuery(this).parent().parent().find('.ec-rating-description');
                                                                                                                                    descEl.data('old-text', descEl.html());
                                                                                                                                    descEl.html(jQuery(this).data('description'));
                                                                                                                                    jQuery(this).addClass('active2').removeClass('active-disabled');
                                                                                                                                    jQuery(this).prevAll().addClass('active2').removeClass('active-disabled');
                                                                                                                                    jQuery(this).nextAll().removeClass('active2').addClass('active-disabled');
                                                                                                                                },
                                                                                                                                // hover out
                                                                                                                                function(){
                                                                                                                                    var descEl = jQuery(this).parent().parent().find('.ec-rating-description');
                                                                                                                                    descEl.html(descEl.data('old-text'));
                                                                                                                                    jQuery(this).parent().children().removeClass('active2 active-disabled');
                                                                                                                                }
                                                                                                                            );
                                                                                                                        }
                                                                                                                    },
                                                                                                                
                                                                                                                    notice: {
                                                                                                                        error: function(text) {
                                                                                                                            alert(text);
                                                                                                                        },
                                                                                                                        show: function(text) {
                                                                                                                            alert(text);
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                
                                                                                                                jQuery(document).ready(function(){
                                                                                                                    easyComm.initialize();
                                                                                                                    
                                                                                                                     var forma = $('a.fansy');
                                                                                                                     if (forma.length > 0) {
                                                                                                                     forma.fancybox({
                                                                                                                		closeClick  : false,
                                                                                                                		closeBtn	: false,
                                                                                                                		width       : '70%',
                                                                                                                                height	: '70%',
                                                                                                                		openEffect	: 'elastic',
                                                                                                                    	        closeEffect	: 'elastic',
                                                                                                                		hideOnContentClick:false,
                                                                                                                		titleShow:false,
                                                                                                                                helpers: {
                                                                                                                                   overlay: {
                                                                                                                                      locked: false
                                                                                                                                                 },
                                                                                                                		   title:      {
                                                                                                                			type: 'outside'
                                                                                                                			         }
                                                                                                                    }
                                                                                                                });
                                                                                                                }
                                                                                                                });
                                                                                                                Само собой кнопка вызова формы имеет класс fansy, a на странице подключен стиль и скрипт fancyapps.com/
                                                                                                                  Sergey Boev
                                                                                                                  30 декабря 2016, 07:05
                                                                                                                  0
                                                                                                                  Доброе утро.
                                                                                                                  У меня не работает отправка писем на почту о новых отзывах и тд. Как и где мне настроить необходимые параметры, чтобы все работало верно?
                                                                                                                    Любовь
                                                                                                                    03 января 2017, 15:47
                                                                                                                    0
                                                                                                                    Есть ли возможность выводить комментарии в случайном порядке? Или сделать для каждого комментария свой шаблон вывода?
                                                                                                                      Артём
                                                                                                                      14 февраля 2017, 15:40
                                                                                                                      +1
                                                                                                                      Здравствуйте! Подскажите, можно ли реализовать выставление нескольких рейтингов, например: 1 — сервис, 2 — качество, 3 — цена? И чтобы была сумма отдельно групповых оценок и итоговая оценка, реально ли реализовать?
                                                                                                                        Наумов Алексей
                                                                                                                        14 февраля 2017, 15:48
                                                                                                                        0
                                                                                                                        Добрый день. «Из коробки» нет такой возможности. Вы можете добавить через плагин доп поля для хранения нужных вам рейтингов, но всю их обработку придется производить самостоятельно.
                                                                                                                        exist17
                                                                                                                        02 марта 2017, 12:59
                                                                                                                        0
                                                                                                                        Доброго дня!
                                                                                                                        У меня компонент используется для вывода более 100 000 сообщений. Все они находятся в одной цепочке. Конечно же используется пагинация, выводится все через pdoPage. В каждом сообщении выводится id-шник, это как бы «номер вопроса». Поток вопросов довольно большой, поэтому пользователям нужна возможность находить свой вопрос по его номеру. В идеале бы генерировать алиас для каждого сообщения и иметь возможность вывести сообщение как ресурс MODX, чтобы на него можно было ссылаться. Скажите, как бы вы это реализовали?
                                                                                                                        Спасибо.
                                                                                                                          Наумов Алексей
                                                                                                                          02 марта 2017, 15:41
                                                                                                                          +1
                                                                                                                          Добрый день.

                                                                                                                          Я бы взял VirtualPage, настроил в нем правило для страниц типа /message/XXX/, где XXX — id сообщения, и дальше уже вроде все понятно… конкретная реализация — на ваше усмотрение, но в целом это абсолютно реализуемо.
                                                                                                                            exist17
                                                                                                                            02 марта 2017, 20:51
                                                                                                                            0
                                                                                                                            Очень интересный компонент. Похоже, именно то что нужно! Спасибо!
                                                                                                                              Наумов Алексей
                                                                                                                              02 марта 2017, 21:15
                                                                                                                              0
                                                                                                                              Думаю, что да. Я уже на 2-х сайтах по данному сценарию его использую, все ок.
                                                                                                                          Denis
                                                                                                                          13 марта 2017, 11:39
                                                                                                                          0
                                                                                                                          Добрый день.
                                                                                                                          А есть ли возможность добавлять фото к отзыву?
                                                                                                                          Или можно её реализовать.
                                                                                                                          Sergey
                                                                                                                          14 марта 2017, 02:31
                                                                                                                          0
                                                                                                                          Добрый день, Алексей!
                                                                                                                          После создания доп. полей по твоей инструкции, по-умолчанию они не сохраняются в базе через форму на сайте (в админке редактирование/сохранение работает).
                                                                                                                          Сохраняется только при добавлении их в allowedFields при вызове сниппета формы. В доках этот момент не описан. Или я что-то не верно делаю?
                                                                                                                            Наумов Алексей
                                                                                                                            14 марта 2017, 08:50
                                                                                                                            0
                                                                                                                            Да не, все верно. Про allowedFields в заметке видимо упустил.
                                                                                                                            Заработало все в итоге?
                                                                                                                              Sergey
                                                                                                                              14 марта 2017, 08:53
                                                                                                                              0
                                                                                                                              Да, заработало.
                                                                                                                            Семён Лебедев
                                                                                                                            29 марта 2017, 11:00
                                                                                                                            0
                                                                                                                            Вам бы стоило нормально документацию здесь переписать:
                                                                                                                            docs.modx.pro/components/easycomm/

                                                                                                                            А то ты его покупаешь, а потом нескольким веткам начинаешь собирать инфу о его работе.
                                                                                                                            При таком раскладе можно было tikets использовать, и заниматься тем же самым.

                                                                                                                            Ещё очень не понравилось то, что CSS дефолтный отключить нельзя, что загрузить его отдельно и подогнать под speedtest google
                                                                                                                              Наумов Алексей
                                                                                                                              29 марта 2017, 11:13
                                                                                                                              0
                                                                                                                              Документация процентов на 90 актуальная, но все равно исправить ее в планах.

                                                                                                                              CSS отключается, есть соответствующая настройка, прям первая на странице.
                                                                                                                                Семён Лебедев
                                                                                                                                29 марта 2017, 12:29
                                                                                                                                0
                                                                                                                                Спасибо!

                                                                                                                                В версии 1.1.1-pl добавил возможность автопубликации сообщений, такие просьбы были.
                                                                                                                                А где это можно сделать?

                                                                                                                                Как вариант на будущее:
                                                                                                                                css-tricks.com/examples/StarRating/
                                                                                                                                  Семён Лебедев
                                                                                                                                  29 марта 2017, 12:55
                                                                                                                                  0
                                                                                                                                  И последнее как вывести черерзз ecThreadRating rating_simple?
                                                                                                                                  А то уже начали писать ecThreadRatingCustom
                                                                                                                                    Семён Лебедев
                                                                                                                                    29 марта 2017, 13:06
                                                                                                                                    -1
                                                                                                                                    Ответа от вас нет.
                                                                                                                                    Сделал так
                                                                                                                                    продублировал ecThreadRatingCustom и заменил rating_wilson
                                                                                                                                    array(
                                                                                                                                            'rating_wilson_percent' => number_format($thread->get('rating_simple') / $ratingMax * 100, 3),
                                                                                                                                            'rating_simple_percent' => number_format($thread->get('rating_simple') / $ratingMax * 100, 3),
                                                                                                                                        )
                                                                                                                                    Это не круто вообще но это бытсрее чем найти ответ в документации которой по рейтингу нет.
                                                                                                                                      Наумов Алексей
                                                                                                                                      29 марта 2017, 14:15
                                                                                                                                      +1
                                                                                                                                      Вопрос мне не понятен, и смысл вашей замены я тоже не понял.
                                                                                                                                      Я вижу перед собой 2 одинаковые строчки и чем они должны различаться — не ясно.
                                                                                                                                        Алексей Федоров
                                                                                                                                        29 марта 2017, 18:26
                                                                                                                                        0
                                                                                                                                        То есть вызвать плейсхолдер [[+rating_simple]] уже не торт? И он есть в документации --_--
                                                                                                                                  Максим
                                                                                                                                  17 апреля 2017, 20:59
                                                                                                                                  0
                                                                                                                                  Всем привет! Пробую задать e-mail получателя:
                                                                                                                                  [[!ecForm?
                                                                                                                                      					   &mailManager=`info@yandex.ru`
                                                                                                                                      					   &ec_mail_from_name=`info@site.ru`
                                                                                                                                      					   &ec_mail_new_subject_manager=`Новый отзыв с сайта site.ru`
                                                                                                                                      					   &tplForm=`tpl.FormReviews`
                                                                                                                                      					]]
                                                                                                                                  Письма не приходят, если поменять почту в системе сайта на info@yandex.ru, все работает. В чем трабл. Может кто подскажет?
                                                                                                                                    Sergey
                                                                                                                                    17 апреля 2017, 21:02
                                                                                                                                    0
                                                                                                                                    &ec_mail_manager
                                                                                                                                      Максим
                                                                                                                                      17 апреля 2017, 21:04
                                                                                                                                      0
                                                                                                                                      Пробовал и так, не приходят(. И первом и втором случае приходят только отправителю отзывы, админу нет(
                                                                                                                                      Наумов Алексей
                                                                                                                                      17 апреля 2017, 21:32
                                                                                                                                      0
                                                                                                                                      ec_mail_from, ec_mail_from_name — это системные настройки, а не параметры сниппета.

                                                                                                                                      Если проверить отправку почты через QuickEmail, письма приходят? Может дело в настройке почты именно сайта, а не компонента?
                                                                                                                                        Максим
                                                                                                                                        17 апреля 2017, 21:54
                                                                                                                                        0
                                                                                                                                        Проблема решилась настройкой smtp
                                                                                                                                          Jaz75RUS
                                                                                                                                          24 апреля 2017, 08:16
                                                                                                                                          0
                                                                                                                                          modx.pro/solutions/7446-join-easycomm-and-mfilter2/
                                                                                                                                          это бы в доки добавить, а то долго искал) Спасибо за сниппет, шикарная вещь)

                                                                                                                                          Единственное не совсем понял, через плейсхолдер [[+rating]] выводится рейтинг в цифре, где его чанк оформления или как вместо него вывести рейтинг в звездах?
                                                                                                                                            Наумов Алексей
                                                                                                                                            24 апреля 2017, 10:02
                                                                                                                                            +1
                                                                                                                                            1. Плохо искали))) docs.modx.pro/components/easycomm/standard-solutions-and-frequently-asked-questions
                                                                                                                                            не давно добавил ссылку в документацию.
                                                                                                                                            2. Для вывода в звездах смотрите, как это сделано в стандартных чанках, там используется конструкция
                                                                                                                                            style="width:[[+rating_persent]]%"
                                                                                                                                            которая позволяет задать ширину блока со звездами
                                                                                                                                              Jaz75RUS
                                                                                                                                              24 апреля 2017, 10:54
                                                                                                                                              0
                                                                                                                                              Спасибо за ответ, плейсхолдер [[+rating_persent]] должен выводить процент рейтинга я так понимаю, пока че то не хочет =(
                                                                                                                                                Наумов Алексей
                                                                                                                                                24 апреля 2017, 11:04
                                                                                                                                                +1
                                                                                                                                                А, если вы делаете JOIN — то конечно его не будет.

                                                                                                                                                Нужна хитрость, добавить в select поле, которое вычислить через запрос, как (rating * 20), что как раз составит проценты, т.к. максимальный рейтинг 5 — это 100%, значит текущий это (X *100) / 5 = (X * 20).
                                                                                                                                                  Jaz75RUS
                                                                                                                                                  24 апреля 2017, 11:07
                                                                                                                                                  0
                                                                                                                                                  ок спасибо, разберусь)
                                                                                                                                                    Jaz75RUS
                                                                                                                                                    24 апреля 2017, 11:40
                                                                                                                                                    0
                                                                                                                                                    вы не могли бы все же показать пример поля в селекте, и плейсхолдер вывода в превьюшке, я на эти эксперементы еще пол дня убью) Думаю многим это поможет, вопрос наверняка частый)))
                                                                                                                                                      Наумов Алексей
                                                                                                                                                      24 апреля 2017, 12:06
                                                                                                                                                      0
                                                                                                                                                      Как-то вот так должен выглядеть select:
                                                                                                                                                      &select=`{"ecThread": "ecThread.rating_simple * 20 AS rating"}`
                                                                                                                                                      Проверить на живом примере я сейчас, к сожалению, не могу. Если совсем не получается -можете доступ к сайту дать, я там настрою.
                                                                                                                                                        Jaz75RUS
                                                                                                                                                        24 апреля 2017, 13:09
                                                                                                                                                        0
                                                                                                                                                        спасибо что отвечаете))
                                                                                                                                                        селект в filters такой:
                                                                                                                                                        &select=`{
                                                                                                                                                        «msProduct»: "*",
                                                                                                                                                        «ecThread»: «ecThread.rating_simple * 20 AS rating, ecThread.count AS reviews»
                                                                                                                                                        }`

                                                                                                                                                        в чанке tpl.msProducts.row так:

                                                                                                                                                        [[+rating_simple]] — ничего
                                                                                                                                                        [[+rating_percent]] — ничего
                                                                                                                                                        [[+rating_simple_percent]] — ничего
                                                                                                                                                        [[+rating]] — число рейтинга (3 звезды) умноженное на 20, т.е. 60.000000
                                                                                                                                                          Jaz75RUS
                                                                                                                                                          24 апреля 2017, 13:32
                                                                                                                                                          0
                                                                                                                                                          нули нужно убирать или css на них пофиг?)
                                                                                                                                                          Дальше по идее все должно заработать на стилях ec-stars
                                                                                                                                                            Наумов Алексей
                                                                                                                                                            24 апреля 2017, 14:08
                                                                                                                                                            0
                                                                                                                                                            В базе 2 поля: rating_simple и rating_wilson, мы выбрали rating_simple под именем rating просто.

                                                                                                                                                            60.0000 — это корректное значение процентов для css, можно использовать его.
                                                                                                                                                              Jaz75RUS
                                                                                                                                                              24 апреля 2017, 15:22
                                                                                                                                                              0
                                                                                                                                                              да, все заработало, большое спасибо за помощь, отличное дополнение, куплю еще на один сайт)
                                                                                                                                          Николай
                                                                                                                                          29 апреля 2017, 15:33
                                                                                                                                          0
                                                                                                                                          Добрый день, а работает ли компонент с товарами в отдельной таблице migx?
                                                                                                                                            Наумов Алексей
                                                                                                                                            01 мая 2017, 18:13
                                                                                                                                            +1
                                                                                                                                            Да, только параметр thread нужно сделать уникальным каким-либо образом для каждого товара, например можно использовать комбинацию id ресурса + idx от migx (типа page-6-product-12).
                                                                                                                                            Николай
                                                                                                                                            29 апреля 2017, 15:34
                                                                                                                                            0
                                                                                                                                            И еще вопрос, при загрузке/выгрузке товаров, когда они автоматом создаются/удаляются, как можно удалять ветки комментариев?
                                                                                                                                            Может можно привязать не к id товара, а к alias?
                                                                                                                                              Наумов Алексей
                                                                                                                                              01 мая 2017, 18:14
                                                                                                                                              0
                                                                                                                                              оперируйте объектом ecThread, удаляйте его в нужный момент, все привязанные к цепочке сообщения удаляться автоматически.

                                                                                                                                              Создавать не обязательно, он создается при первом вызове сниппета ecForm.
                                                                                                                                                Николай
                                                                                                                                                01 мая 2017, 23:33
                                                                                                                                                0
                                                                                                                                                установил, пока тестирую, все удобно и настраивается легко.

                                                                                                                                                Вот чего не нашел — это возможности передать кастомный урл в снипет ecMessages, чтобы в админке можно было на ресурс перейти.
                                                                                                                                                Например, у меня товары в таблице migx. У них также есть свои страницы и урл.
                                                                                                                                                Я могу передать относительный урл к ресурсу в виде /category/tovar.html (site_url уже из системных параметров брать). Если не затруднит, не могли бы добавить такой функционал?
                                                                                                                                                Простите за наглость))
                                                                                                                                                  Наумов Алексей
                                                                                                                                                  02 мая 2017, 09:41
                                                                                                                                                  0
                                                                                                                                                  Не оч понял суть вопроса…
                                                                                                                                                  нужен более детальный пример.
                                                                                                                                                    Николай
                                                                                                                                                    02 мая 2017, 10:09
                                                                                                                                                    0
                                                                                                                                                    Итак, у меня товары хранятся в своей таблице.
                                                                                                                                                    У каждого товара есть следующие поля:
                                                                                                                                                    article — уникальный номер товара
                                                                                                                                                    alias — ссылка относительно категории
                                                                                                                                                    category_id — id категории. Категория это обычный ресурс modx.

                                                                                                                                                    Я хочу сделать отзывы к товарам на странице каждого товара. На странице товара вызываю ecForm
                                                                                                                                                    с параметром thread = [[*article]]. Во фронтенде все работает отлично, а вот бекенде — нет.

                                                                                                                                                    В качестве ресурса в админке сейчас получается просто один из ресурсов modx с тем же id, что и у товара, что конечно не корректно. Т.е. из админки, при клике перейти к ресурсу с комментарием во фронтенде забрасывает вообще на другой документ и то же самое в бекенде.

                                                                                                                                                    Я в код не влезал, но предполагаю, что в снипете автоматом генерится ссылка на ресурс по id.

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

                                                                                                                                                    Я предлагаю добавить в снипет ecForm, например такой параметр — &customFrontUrl- в него можно будет передать такую конструкцию:
                                                                                                                                                    &customFrontUrl=[[~[[*category_id]]? &scheme=`abs`]]/[[*alias]]
                                                                                                                                                    , чтобы сформировать ссылку на товар с комментарием в виде:
                                                                                                                                                    &frontUrl=`/category_1/category_2/tovar_1.htm`
                                                                                                                                                    Тогда из бекенда можно будет заходить на товар во фронтенде.

                                                                                                                                                    И еще параметр &customBackId- сюда можно забрасывать id категории, чтобы формировалась ссылку уже на ресурс в бекенде, к которому привязана таблица modx с товарами.
                                                                                                                                                      Наумов Алексей
                                                                                                                                                      02 мая 2017, 11:20
                                                                                                                                                      0
                                                                                                                                                      Понял суть…

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

                                                                                                                                                      Сейчас да, в админке «Перейти к ресурсу с комментарием» открывает ресурс, к которому привязан ecThread.

                                                                                                                                                      Постараюсь поразмыслить, чтобы сделать красивое решение.
                                                                                                                                                        Николай
                                                                                                                                                        02 мая 2017, 11:25
                                                                                                                                                        0
                                                                                                                                                        Нет, для простых пользователей ничего не надо менять, у вас все отлично работает.

                                                                                                                                                        Я предлагаю сделать проверку, что если &customFrontUrl или &customBackId не заданы, то у вас все формируется как сейчас, а если заданы, то урл из них берется.
                                                                                                                                                        Или вы так и поняли и я зря пишу?))
                                                                                                                                                          Наумов Алексей
                                                                                                                                                          02 мая 2017, 11:43
                                                                                                                                                          +1
                                                                                                                                                          Суть предложения понял, но 2 доп параметра для формирования + видимо поле в базе не очень хочется создавать для довольно простой вещи, нужно подумать :)
                                                                                                                                                            Николай
                                                                                                                                                            02 мая 2017, 13:58
                                                                                                                                                            0
                                                                                                                                                            Согласен, поля в базу придется добавлять))

                                                                                                                                                            Сейчас можно сделать, чтобы бы id ресурса можно было передавать.

                                                                                                                                                            Те у кого товары в migx, а категории в ресурсах будут передавать сюда id нужной под категории.
                                                                                                                                                            И внутри через makeUrl будет уже часть ссылки /category_1/category_2/. Внутри категории товар проще найти, чем вообще в другом месте.

                                                                                                                                                            Более того, есть побочный плюс — форму с комментарием на одном ресурсе повесить можно будет, а комментарии в буду выводить на том, к который указан к форме, например.
                                                                                                                                                              Николай
                                                                                                                                                              02 мая 2017, 14:00
                                                                                                                                                              0
                                                                                                                                                              Как вариант, можно в системные настройки добавлять параметры пакета migx (название класса и т.п.) и принцип формирования урл на основе этих данных.

                                                                                                                                                              Дальше, в админке добавлять пакет migx.
                                                                                                                                                              По переданному id отыскивать товар в таблице. Вытягивать у него все поля для формирования урл, например — alias (у кого-то может быть другое название) и id категории (ресурс модх).
                                                                                                                                                              И по шаблону
                                                                                                                                                              modx->makeUrl($category_id).'/'.$alias.$urlSuffix
                                                                                                                                                              $urlSuffix брать из настроек modx

                                                                                                                                                                Наумов Алексей
                                                                                                                                                                02 мая 2017, 15:52
                                                                                                                                                                0
                                                                                                                                                                Привязывать один компонент к другому — совсем плохая идея, завтра выйдет альтернатива MIGX, и что мы будем делать? Привязываться ко второму компоненту? Нужно более универсальное решение.
                                                                                                                                                                  Николай
                                                                                                                                                                  02 мая 2017, 17:09
                                                                                                                                                                  0
                                                                                                                                                                  К migx привязки не нужно.

                                                                                                                                                                  migx ведь по сути только обертка для создания своих таблиц и класса с описанием для товаров. Любая своя таблица с товарами будет именно по такому принципу формироваться, какой бы компонент ее не строил.

                                                                                                                                                                  Важно только, чтобы человек указал название класса и пакета со своими товарами.
                                                                                                                                                                  А дальше уже подключать пакет через adPackage и доступ к таблице через класс.
                                                                                                                                              Николай
                                                                                                                                              04 мая 2017, 22:51
                                                                                                                                              0
                                                                                                                                              Добрый день! Скажите, а через AjaxSnippet нельзя ecForm вызвать получится?
                                                                                                                                              Хотел сделать по клику:
                                                                                                                                              [[!AjaxSnippet?
                                                                                                                                               	&snippet=`ecForm`
                                                                                                                                              	&thread=`[[*thread]]`
                                                                                                                                                    &as_mode=`onclick`
                                                                                                                                                   &as_trigger=`Написать сообщение`
                                                                                                                                              ]]
                                                                                                                                              Форма отображается, но не скрывается скрытое поле и голосование не работает. Похоже jquery.form.js не срабатывает.
                                                                                                                                                Наумов Алексей
                                                                                                                                                05 мая 2017, 09:15
                                                                                                                                                0
                                                                                                                                                Скрипты и стили компонента в этом случае подключите вручную.
                                                                                                                                                Вам потребуются:
                                                                                                                                                1. сами jquery.js, jquery.forms.js
                                                                                                                                                2. /assets/components/easycomm/css/web/ec.default.css
                                                                                                                                                3. /assets/components/easycomm/js/web/ec.default.js

                                                                                                                                                Пункты 2 и 3 подключаются через regClientJs/CSS, при вызове через AjaxSnippet этого не происходит.
                                                                                                                                                  Николай
                                                                                                                                                  06 мая 2017, 11:14
                                                                                                                                                  0
                                                                                                                                                  Стили подключаются все в порядке.
                                                                                                                                                  Но JS не срабатывает, хотя и подключил ec.default.js. Скорее всего JS внутри Ajax работать не будет.