UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: robert от 26 Августа 2012, 19:27:20

Название: Модуль отзывы
Отправлено: robert от 26 Августа 2012, 19:27:20
Всем привет!

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

Мои видение: скопировать модуль Комментарии и написать custom'ы для тех самых звезд.

Проблема: как скопировать модуль полностью?
Название: Re:Модуль отзывы
Отправлено: admin от 26 Августа 2012, 19:31:56
скопировать модуль, насколько я знаю, нельзя... система следит за этим)

я бы предложил вам просто дописать кастомы в модуль comments, этого вполне должно хватить. Хотя зависит от того что именно вы хотели модифицировать в модуле comment.
Название: Re:Модуль отзывы
Отправлено: robert от 26 Августа 2012, 19:41:39
 Модуль Комментарии уже использую по прямому назначению.
Название: Re:Модуль отзывы
Отправлено: admin от 27 Августа 2012, 01:25:39
ок, что вам мешает создать подтип данных комментарии с рейтингом и написать кастомные макросы для вывода, подсчета и т.п. функции данного рейтингово комментария?
Название: Re:Модуль отзывы
Отправлено: robert от 27 Августа 2012, 05:07:09
Хороший вариант, вот только следующая трабла: на wiki есть про рейтинг, но там к сожаленю не звездочки, а цифры, плюс к тому же для модуля Опросы. Есть какая нибудь альтернатива?
Название: Re:Модуль отзывы
Отправлено: admin от 27 Августа 2012, 09:57:08
robert, так в чем у вас вопрос, в том как скопировать модуль comments? куда добавить кастомизацию? или как сделать рейтинг со звездочками?

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

в общем, сформулируйте четче с чем у вас вопрос, с тем где создавать функционал? какая логика у функционала должна быть? или какие-то конкретные вопросы, типа того как сделать решение указанное на вики для модуля голосование, без данного модуля
Название: Re:Модуль отзывы
Отправлено: robert от 27 Августа 2012, 11:43:01
admin, попробую сформулировать четче:
1) От копирования модуля я отказываюсь, следовательно идея немного конкретизируется. А точнее: создав новый тип данных Отзывы (подтипом данных Комментарии), делать выборку Usel (общее кол-во, а также вывод текста отзыва и тп.) этих отзывов у объекта каталога.
Как сделать данную выборку? (Тип данных отзывы имеют id=132)
2) Как вывести форму для добавления отзывов на клиенской части.
3) Ну и конечно же как реализовать те самые звездочки на модуле Комментрии.

P.S. Сейчас, попробывав поковыряться в Usel я получаю число, но результат не соответствует действительности, а порой и вовсе выдает число 4, вместо 0.

Благодарю!
Название: Re:Модуль отзывы
Отправлено: admin от 27 Августа 2012, 12:17:09
по пунктам

1) действительно usel вам подойдет, приведите ваш usel и что именно у вас не получается. В документации все прочитали? примеры по составлению usel имеются  на этом форуме, или wiki ,или просто в интернете.

2) я бы посоветовал вам разобраться как выводиться форма у обычных комментариев и написать свой кастомный вариант на основе существующего

3) сделать в вашем новом типе данных справочник со значениями 1, 2, 3, и т.д. по количеству звездочек. Далее выводите этот справочник так, чтобы он был оформлен звездочками и при выборе звездочки выбиралось соответствующее значение выпадающего списка которое и будет передаваться в систему при отправке формы.

Примеров, как вывести красивые звездочки и проставлять в неком скрытом поле значение выбранное посредством этих звездочек, можно найти в интернете.
Название: Re:Модуль отзывы
Отправлено: robert от 27 Августа 2012, 13:02:55
/usels/1s.xml
<?xml version="1.0" encoding="UTF-8"?>
<selection>
  <target expected-result="pages">
    <type id="132" />
   <category>%id%</category>
  </target>
</selection>

/catalog/default.tpl
%data doSelection('default','1s',%id%)%

Для вывода числа использую %total%

В чем может быть проблема, в xml особо не работал, поэтому могу допустить и самую наиглупейшую ошибку.

http://more-moto.ru/catalog/technics/bikes - под кнопкой купить 2-ое значение.

Супермотоцикл Honda - имеет 1 комментарий и 1 отзыв
Автомотоцикл ИЖ - имеет 3 комментария и ни одного отзывы

Возникает проблема с подсчетом комментариев (%comments countComments()% считает и отзывы и комментарии, но эту проблему можно решить заменив макрос для подсчитывания комментарив выборкой uselтакже как и для отзывов).
Название: Re:Модуль отзывы
Отправлено: admin от 27 Августа 2012, 14:09:26
внимательно прочтите документацию, о том, как вставлять переменные в usel файл. Запись вида %id% недопустима, используйте например индесную переменную {1}... например <category>{1}</category>

если макрос %comments countComments()% считает не то, сделайте кастомный вариант данного макроса и в нем средствами api (используя класс umiselection или selector) сделайте выборку именно отзывов
Название: Re:Модуль отзывы
Отправлено: robert от 28 Августа 2012, 21:59:34
Спасибо. С подсчетом комментов и отзывов все гууд. Пытаюсь разобраться дальше.

Благодарю за помощь!