Реализация отзывов на tikets
Здравствуйте.
Можно ли на Tikets реализовать следующую систему отзывов?
— все отзывы будут находиться на одной странице.
— форма добавления отзыва должна находиться на этой же странице.
— отзывы должны проходить модерацию.
— на отзывы может отвечать админ или несколько заданных групп пользователей.(у обычных пользователей не должно быть этой возможности)
— форма должна отправляться при помощи ajax.
— отзыв могут добавлять неавторизированные пользователи.
Не смог сделать так что бы тикеты или комментарии могли добавлять неавторизированные пользователи и решил спросить у Вас возможно ли все это реализовать на Tikets?
Можно ли на Tikets реализовать следующую систему отзывов?
— все отзывы будут находиться на одной странице.
— форма добавления отзыва должна находиться на этой же странице.
— отзывы должны проходить модерацию.
— на отзывы может отвечать админ или несколько заданных групп пользователей.(у обычных пользователей не должно быть этой возможности)
— форма должна отправляться при помощи ajax.
— отзыв могут добавлять неавторизированные пользователи.
Не смог сделать так что бы тикеты или комментарии могли добавлять неавторизированные пользователи и решил спросить у Вас возможно ли все это реализовать на Tikets?
Комментарии: 19
На все — ДА, в одном из последних релизов тикетов есть как раз разработка для неавторизированных юзеров
не подскажете как реализовать возможность публикации неавторизированными пользователями?
Спасибо
Господи, почему сначала задают вопрос, а потом смотрят в сам компонент и его параметры?!
параметры смотрел, но скорее всего не внимательно…
Есть еще одна проблема.
На сайте вообще нет авторизации.
Указал что комментарии могут писать и гости. передал параметры &tplCommentFormGuest=`my.tpl.Tickets.comment.form.guest` и &tplCommentFormGuest=`my.tpl.Tickets.comment.one.guest`
в этом чанке my.tpl.Tickets.comment.one.guest просто нет кнопки ответить на комментарий, а вот для авторизированных пользователей кнопку, ответить оставил.
Предполагалось что авторизированными пользователями могут быть только админы и модераторы т.к. авторизация есть только в админке.
Так вот я залогиниваюсь в админке перехожу на сайт, но вижу шаблон, который должен видеть гость. Получается авторизация в админке не считается как авторизация на всем сайте? Как будет правильнее реализовать такую вещь?
На сайте вообще нет авторизации.
Указал что комментарии могут писать и гости. передал параметры &tplCommentFormGuest=`my.tpl.Tickets.comment.form.guest` и &tplCommentFormGuest=`my.tpl.Tickets.comment.one.guest`
в этом чанке my.tpl.Tickets.comment.one.guest просто нет кнопки ответить на комментарий, а вот для авторизированных пользователей кнопку, ответить оставил.
Предполагалось что авторизированными пользователями могут быть только админы и модераторы т.к. авторизация есть только в админке.
Так вот я залогиниваюсь в админке перехожу на сайт, но вижу шаблон, который должен видеть гость. Получается авторизация в админке не считается как авторизация на всем сайте? Как будет правильнее реализовать такую вещь?
Попробуйте создать плагин на событие OnHandleRequest:
<?php
if ($modx->event->name != 'OnHandleRequest') return;
if ($modx->user->hasSessionContext('mgr') && !$modx->user->hasSessionContext('web')) {
$modx->user->addSessionContext('web');
}
спасибо
И снова я столкнулся с проблемой
Вот вызов сниппета
Но вот комментарии для всех показываются одинаково, по шаблону описанному в чанке my.tpl.Tickets.comment.one.auth. Параметр &tplCommentGuest=`my.tpl.Tickets.comment.one.guest` просто игнорируется.
Вот вызов сниппета
[[!TicketComments? &thread=`отзывы`
&autoPublish=`0`
&allowGuest=`1`
&allowGuestEdit=`0`
&tplCommentFormGuest=`my.tpl.Tickets.comment.form.guest`
&tplComments=`my.tpl.Tickets.comment.wrapper`
&tplCommentGuest=`my.tpl.Tickets.comment.one.guest`
&tplCommentAuth=`my.tpl.Tickets.comment.one.auth`]]
Форма для гостей показывается одна, а для авторизированых пользователей(админа) другая. Все как и должно быть. Но вот комментарии для всех показываются одинаково, по шаблону описанному в чанке my.tpl.Tickets.comment.one.auth. Параметр &tplCommentGuest=`my.tpl.Tickets.comment.one.guest` просто игнорируется.
Но вот комментарии для всех показываются одинаково, по шаблону описанному в чанке my.tpl.Tickets.comment.one.auth. Параметр &tplCommentGuest=`my.tpl.Tickets.comment.one.guest` просто игнорируется.Ты авторизированный пользователь, по этому тебе показывается чанк для авторизированных, зайди на сайт с другого браузера или в режиме инкогнито.
Ну это понятно. Форма отображается для авторизированных одна, для неавторизированных другая.
Хотя я нашел решение. Тут, наверно, косяк в самом сниппите TicketComments вот в этом месте
Хотя я нашел решение. Тут, наверно, косяк в самом сниппите TicketComments вот в этом месте
$tpl = !$thread->get('closed') && ($modx->user->isAuthenticated($modx->context->key) || !empty($allowGuest))
? $tplCommentAuth
: $tplCommentGuest;
Я передаю параметр $allowGuest = 1, поэтому !empty($allowGuest) будет всегда TRUE. И в любом случае условие верно и $tpl = $tplCommentAuth. Нужно без восклицательного знака empty($allowGuest)$tpl = !$thread->get('closed') && ($modx->user->isAuthenticated($modx->context->key) || empty($allowGuest))
? $tplCommentAuth
: $tplCommentGuest;
Имеется ввиду, что если пользователь неавторизован, он не видит ссылок «Ответить», поэтому нужно использовать другой шаблон. А если гостям разрешено комментировать, то ответить они могут и им надо показывать тот же самый шаблон.
Да, я уже в этом разобрался, но для моих нужд гостям нужно показывать другой шаблон.
Подскажите как сделать чтобы анонимные пользователи могли создать тикет?
Также комментарии не нужны, только ответ от администратора.
Сейчас на странице тикетов выводятся сами тикеты
а далее
Также комментарии не нужны, только ответ от администратора.
Сейчас на странице тикетов выводятся сами тикеты
а далее
Вы должны авторизоваться, чтобы создать тикет.
вместо формы, вызываю ее так [[!TicketForm]]
При создании тикета пользователь ОБЯЗАТЕЛЬНО должен быть авторизован, т.к. у ресурсов модкса (тикеты — такие же ресурсы) всегда должен быть автор.
Можно попробовать вешать плагин для анонимных пользователей, присваивающий им авторизацию какого-нибудь дефолтного пользователя, предварительно создав такого.
Можно попробовать вешать плагин для анонимных пользователей, присваивающий им авторизацию какого-нибудь дефолтного пользователя, предварительно создав такого.
Попробуем разабраться, хотя в данный момент будучу залогиненным админом вижу ту же самую надпись.
А каким образом сделать ответ администратором?
А каким образом сделать ответ администратором?
Если необходимо сделать добавление со стороны фронтэнда, то самый простой вариант:
[[!TicketComments? &depth=`1`]] — и оставить права комментирования только у администратора.
Ну или можно добавить одно дополнительное tv-поле (допустим, adminComment) и выводить его.
Ну или создать небольшой сниппет, проверяющий права юзера, и если юзер — админ, то давать возможность заполнять поле комментария и сохранять значение в tv при отправке.
[[!TicketComments? &depth=`1`]] — и оставить права комментирования только у администратора.
Ну или можно добавить одно дополнительное tv-поле (допустим, adminComment) и выводить его.
[[+adminComment:notempty=`
//здесь верстка для вывода комментария, если пол не пустое.
`]]
Возможность заполнения, соответственно, оставить только со стороны админки. Ну или создать небольшой сниппет, проверяющий права юзера, и если юзер — админ, то давать возможность заполнять поле комментария и сохранять значение в tv при отправке.
мне подошел такой вариант
[[!+modx.user.id:is=`1`:then=`контейнер со ссылкой ответ`]]
[[!+modx.user.id:is=`1`:then=`контейнер со ссылкой ответ`]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.