Типовые решения и частые вопросы

06 августа 2018, 11:31

Типовые сценарии

Прикрепление картинки к сообщению

Достаточно трудоемкая задача, требующая участия понимающего программиста. См. публикацию на эту тему: https://modx.pro/components/5707-easycomm-additional-picture-field/

Подружить easyComm и msProducts / pdoResources / mFilter2

См. публикацию: https://modx.pro/solutions/7446-join-easycomm-and-mfilter2/

Присоединить таблицу пользователей при работе ecMessages

Если сообщения оставляют авторизованные пользователи, то можно добавить в выборку поля профиля юзера и затем их использовать в чанке. Пример кода:

// Стандартный парсер
[[!ecMessages?
....
&leftJoin=`{"modUserProfile":{"class":"modUserProfile","alias":"UserProfile","on":"ecMessage.createdby=UserProfile.internalKey"} }`
&select=`{"UserProfile":"*"}`
...
]]

// Fenom
{$_modx->runSnippet('!ecMessages', [
'leftJoin' => ['modUserProfile' => [ 'class'=>'modUserProfile', 'alias'=>'UserProfile', 'on'=>'ecMessage.createdby=UserProfile.internalKey']],
'select' => ['UserProfile'=>'*']
])}

Частые проблемы

Вижу сообщение «Can`t find jQuery ajaxForm plugin!»

Необходимо самостоятельно подключить плагин jquery.form (http://malsup.com/jquery/form/). В пакет easyComm он не входит, но требуется для отправки форм через ajax. Подключить скрипт нужно после подключения библиотеки jQuery, но до подключения скриптов от easyComm.

Форма добавления сообщения не отправляется или при отправке страница перезагружается

Возможные причины:

  • вы поместили вызов сниппета ecForm внутрь html тега form (что часто бывает при работе с товарами miniShop2). Сниппет ecForm генерирует свою html форму, а вложенные формы в html запрещены, поэтому ничего не работает.
  • иногда бывают трудности из-за старой версии php, попробуйте изменить версию php на более свежую.
  • проверьте, что у вас на странице jQuery подключается только 1 раз, частая причина в множественных подключениях этой библиотеки.
  • проверьте, что вы подключаете скрипты компонента ПОСЛЕ подключения jQuery.

Некоторые поля не сохраняются (при вызове ecForm)

Обратите внимание на параметры "allowedFields" и "requiredFields" сниппета ecForm, вероятно, вы забыли указать там нужные поля.

Потерялись css стили / Не видно рейтинг на сайте

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

Если у вас вызывается только сниппет ecMessages или ecThreadRating (например, на главной странице, а не на карточке товара), то css файл необходимо подключить вручную.


Предыдущий документ
Плагины и кастомизация