[Tickets] Компонент TicketMessages
По мотивам заметки про сообщения на Tickets.
Освоил создание компонентов (спасибо Василию за курс) и предлагаю на ваш суд свой первый компонент TicketMessages. Напомню, это дополнение к Tickets, которое позволяет работать с комментариями как с личными сообщениями.
Инструкция по установке и настройке
1. Скачиваем из репозитория MODSTORE.PRO.
2. Устанавливаем.
Теперь нужно разместить в нужном месте чанк

В левом окне список пользователей формирует сниппет msgUsers
В админке открываем компонент Tickets. Каждая ветка содержит комментарии 2-х пользователей. В названии ветки указаны id этих пользователей. Таким вот нехитрым способом комментарии превращаются в личные сообщения. А главное, не пришлось трогать ядро Tickets.

Если ветку закрыть, то во фронт-энде нельзя будет добавить сообщение, но переписку будет видно.
Если ветку отключить, то пользователь будет удален из списка.
Маленькое дополнение. Компонент грузит стиль Bootstrap. Поэтому, у кого он уже грузится, то у компонента его нужно отключить в сниппете TicketMessages.
Вот, собственно, и все. Компонент в боевом режиме не тестировался. Это пока бета версия. Пробуйте, тестируйте, пишите. Очень надеюсь, что ошибок не будет.
Проект на GitHub.
Компонент в магазине MODSTORE.PRO.
Освоил создание компонентов (спасибо Василию за курс) и предлагаю на ваш суд свой первый компонент TicketMessages. Напомню, это дополнение к Tickets, которое позволяет работать с комментариями как с личными сообщениями.
Инструкция по установке и настройке
1. Скачиваем из репозитория MODSTORE.PRO.
2. Устанавливаем.
Теперь нужно разместить в нужном месте чанк
[[$TicketMessages]]Должно получится так 
В левом окне список пользователей формирует сниппет msgUsers
[[!msgUsers? &groups=`MessageUsers` &tpl=`@INLINE <a href="#" class="list-group-item user4message" data-id="[[+id]]" data-thread="[[+thread]]"><span class="badge messages-count">[[+messages]]</span>[[+fullname]]</a>` &users=`-[[!+modx.user.id]]`]]Как видно из кода, он собирает пользователей из группы MessageUsers. Она создается при установке пакета с двумя политиками доступа к контексту Web: Context и TicketUserPolicy. Т.е. с правами все должно быть уже нормально. В данной версии в группу MessageUsers пользователей добавлять нужно вручную. В дальнейшем может я или кто-нибудь поумнее придумает общий механизм добавления пользователей в группу. В админке открываем компонент Tickets. Каждая ветка содержит комментарии 2-х пользователей. В названии ветки указаны id этих пользователей. Таким вот нехитрым способом комментарии превращаются в личные сообщения. А главное, не пришлось трогать ядро Tickets.

Если ветку закрыть, то во фронт-энде нельзя будет добавить сообщение, но переписку будет видно.
Если ветку отключить, то пользователь будет удален из списка.
Маленькое дополнение. Компонент грузит стиль Bootstrap. Поэтому, у кого он уже грузится, то у компонента его нужно отключить в сниппете TicketMessages.
Вот, собственно, и все. Компонент в боевом режиме не тестировался. Это пока бета версия. Пробуйте, тестируйте, пишите. Очень надеюсь, что ошибок не будет.
Проект на GitHub.
Компонент в магазине MODSTORE.PRO.
Комментарии: 104
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Такой велосипед пригодится или в MODX такое уже где-то есть? Функционал пока маленький. Просто накидал макетик. Добавлять пока можно на страничке сообщений.
Поближе глянуть можно тут. Пользователи: user1,user2,user3. Пароли: 123
А вообще это разные компоненты, друг с другом не связанные, один — личные сообщения, другой — почта. Просто если такое уже есть, нафига изобретать еще один велосипед. А если это интересно, то можно будет и сделать нормально — Написать, Ответить, Переслать и т.д.
Хотя это может пригодится и для сообщений, удобно разбить на Входящие и Исходящие.
И есть функционал подсчета непрочитанных комментариев
Т.е. такой функционал может пригодиться?
Это на мой быстрый взгляд… Но функционал нужный!
Во входящих просто отвечаешь на сообщение, как в обычной почте или как в комментариях тут. Просто в никуда писать не надо.
А чтобы написать кому-то, думаю, можно сделать также как в почтовых программах — выбираешь из списка пользователя, или даже группу пользователей и отправляешь.
Как-то так я себе представляю это почтовый функционал на Tickets. Просто это какая-то специфическая вещь получается.
А ты как это себе представляешь?
П.С. Посмотрел в одноклассниках. Там также можно добавлять собеседников. Будем подумать.
Вообще хотелось сделать на данном компоненте, что бы в Группе пользователи (кому можно написать сообщение) отображались только несколько человек кому могут написать все остальные зарегистрированные пользователи.
Но даже при тесте послу установки пишет: У вас недостаточно прав. Где поправить необходимо по правам.
Буду очень благодарен.
Насколько я понимаю, авторизованный пользователь, под которым ты пытаешься написать сообщение, не входит в группу MessageUsers, у которой прописаны права. Поэтому ему надо дать их самостоятельно — дать группе пользователя те же права, что и у MessageUsers.
В чем может быть проблема?
Права вроде правильно настроил.
Минимальная роль должна быть member-9999?
Проверь в таблице tickets_threads, создается она или нет. Подробнее разобраться пока не могу, погряз в проверках — куча документов, штрафы, невры и т.п. Не до MODX сейчас.
П.С. В очередной раз убедился, что наши национальные лидеры пустомели. Поддержка малого и среднего бизнеса по их убеждению — это повышение налогов, повышение штрафов до максимума и бесконечные и бесконтрольные проверки. Сорри за небольшое лирическое отступление.
ПашокВот и получается, если президент говорит, что нужно перестать кошмарить бизнес и всеми силами помочь малому бизнесу не сдохнуть, а подчиненные делают все наоборот, то возникает вопрос — кто занимает не свое место? И как верить такому президенту, когда он говорит, про амнистию оффшорных денег и что преследований не будет? Также отвечать ежели чего — ну это же не лично президент вас посадил… Или про замораживание пенсионных накоплений. Сначала говорил, что это не из-за Крыма. А через год оказалось (министр Силуанов сообщил), что эти деньги пошли именно на Крым. С царями у нас все хорошо. Это народ у нас плохой.
Все, давайте без оффтопиков. Это тема не для этого ресурса.
ПашокДа, в базе есть запись, но она не похожа на ветку сообщений.
Там вроде имя ветки должно быть message23/23, а создается resource-
Я проверил на тестовом сайте, на modhost.ru такая же беда.
ПашокОбнови сниппеты TicketMessages и getMessages, action.php и скрипт.
Должно помочь.
Как будто вообще не реагирует на него.
Я заметил, что теперь при изменении комментария не пишется «Комментарий изменен» как раньше.
Надеюсь, теперь заведется.
Теперь jGrowl показывается черным цветом =) а сообщения также требуют модерации.
А в таблице tickets_threads поле properties заполнено?
На тестовом сайте на modhost.ru все было нормально, а у меня что-то требовалась модерация.
Действовал я немного топорным способом: переустановил Tickets (не знаю зачем=), вроде там не ковырялся) и Ticketmessages и поменял все скрипты еще раз, после этого я удалил все старые ветви комментариев, чтобы создались новые.
Кажется надо было просто удалить старые ветви=))
Жду когда Василий примет мое предложение
рукио возможности менять базовые скрипты на свои. Тогда добавлю еще интерфейс Входящие/Исходящие. Просто не хочется на костылях городить.Подскажите как можно вывести оповещение о не прочитанных сообщениях?
Напомню, что на базе Tickets я делал 2 компонента — книга отзывов и сообщения. Все это я делал для себя и поделился с сообществом полученным результатом. Задача стояла обойтись минимальным количеством дополнений. Tickets на 99% все это умел. Нужны были небольшие доработки. И я отправил автору Tickets несколько предложений (еще полгода назад), пара из которых была принята пару дней назад. А вот это так и висит до сих пор. Если уж автору не интересна такая возможность Tickets, то что уж мне остается. Только пожать плечами.
П.С. Я без каких-либо претензий. Просто условий для дальнейшего развития нет. Просто сделал и забыл. Мне было это интересно полгода назад.
Подскажите пожалуйста, все установил, настроил права, как было описано.
Но возникает проблема — сообщения просто не отправляются. Т е. нажатии на отправить, создаются ветки комментариев, в самом диалоге появляется что кол-во сообщений «0». При пустом сообщение выдают ошибку что не ввели сообщения. но сообщение как таковое не отправляет, в чем можем быть проблема?
На всякий случай, ели не понятно объяснил, вот ссылка на страницу. Юзер — Elfim Пароль- ElfimElfim
Пробовал обновить ТикетсМессадж из репозитрия ГитХаб — не помогло.
Сам Тикетс стоит последнией версией — 1.6.0
Заранее спасибо за помощь
Подскажите еще такой вопрос. Как уже было сказано выше, меня тоже волнует вопрос групповых переписок. На сколько это возможно/сложно реализовать в данной модели?
Этот факт немного сковывает в свободе действий. Почему бы не создавать ветвь непосредственно при добавленнии комментария.
При создании ветви в неё пишутся параметры вызова сниппета TicketComments, где куча всего, включая шаблоны для вывода и предпросмотра.
Если тебя там что-то сковывает — создавай ветку сам перед отправкой комментария.
Надо переадресовать этот вопрос автору Tickets. Доколе народ будет мучатся, запуская всякие ненужные сниппеты?
Думаю, общество с удовольствием скинется для решения этой проблемы. Также предлагаю расширить решение, чтобы можно было добавлять комментарии без ModX. Жутко не удобно.
Ну и не взирая на настройки, да? Потому что возможность комментирирования гостями, премодерация, шаблоны и еще много чего — это всё в настройках ветки, которую будет создавать ваш юзер одним POST запросом.
Повторяю еще раз — создавайте, что хотите самостоятельно, а я дырявые дополнения стараюсь не делать.
Кстати, для своих нужд пришлось кастомизировать проц для голосования, чтобы можно было рейтинг не только +- выставлять, а по 10-бальной шкале. Такая возможность не планируется в будущем из коробки (многозвездочный рейтинг)?
p.s. Всех с празником!
Ты же не обязан пользоваться родным процессором голосования, Можно создавать запись TicketVote любым иным способом.
СтасСтасСтасСтас— непрочитанные соообщения
— в сети — не в сети
— и время в реальном режиме времени!!! Системная настройка тут не поможет, динамически времая должно обновляться.
СтасСтасСтасПробовал в разных шаблонах, в пустом шаблоне, отключал подключал стили, не работает. Tickets версия 1.6.5-pl. Скажите пожалуйста, вообще расширение работает или нет, стоит ли пыжиться?
Ну и как всегда ) Все супер, но идеально было бы…
Чтобы работала конструкция, например:
На странице где выводятся пользователи, можно было отправлять ЛС и передовалось имя пользователя для активации на странице сообщений.
Спасибо большое за дополнение и помощь!
Либо писать на английском, как Павел Дуров с телеграммом поступил по той же причине… )))
2 дня все работало! а теперь я в экшене получаю пустые сообщения, ветки создаются пустые
несколько раз все просмотрел, в упор не вижу в чем проблема
mr.titan87[a]mail.ru
После обновления сниппета Looked и pdotools, почему-то перестал работать счетчик комментариев.
В сам сниппет TicketComments никаких своих изменений не добавлял, использую его полностью по умолчанию.
Вызов делаю так:
Вот этот шаблон выводит количество комментариев:
tpl.Tickets.comment.wrapper
Просто даже не понимаю, что смотреть. Looked удалять не хочется)
Причем когда напишешь комментарий, то отображается количество комментариев, но после обновления страницы уже нет(
MODX Revolution 2.6.1-pl
Дело было в этом)
Теперь такой вызов:
сообщения не отправляются и не показываются. Группа указана, разрешения на контекст — load list and view + ticket user policy
проблема оказалась в action.php. пока насильно не запихнул в $properties все параметры сниппета, tickets подключался без них. теперь работает