UMIhelp
Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: robert от 26 Августа 2012, 19:27:20
-
Всем привет!
Задача: разработать функционал публикации и добавления отзывов о товаре с "звездным" рейтингом.
Мои видение: скопировать модуль Комментарии и написать custom'ы для тех самых звезд.
Проблема: как скопировать модуль полностью?
-
скопировать модуль, насколько я знаю, нельзя... система следит за этим)
я бы предложил вам просто дописать кастомы в модуль comments, этого вполне должно хватить. Хотя зависит от того что именно вы хотели модифицировать в модуле comment.
-
Модуль Комментарии уже использую по прямому назначению.
-
ок, что вам мешает создать подтип данных комментарии с рейтингом и написать кастомные макросы для вывода, подсчета и т.п. функции данного рейтингово комментария?
-
Хороший вариант, вот только следующая трабла: на wiki есть про рейтинг, но там к сожаленю не звездочки, а цифры, плюс к тому же для модуля Опросы. Есть какая нибудь альтернатива?
-
robert, так в чем у вас вопрос, в том как скопировать модуль comments? куда добавить кастомизацию? или как сделать рейтинг со звездочками?
так как если до этого мы обсуждали первые два вопроса, то сейчас вы неожиданно спрашиваете о том, как это вообще сделать, хотя судя по первому сообщению у вас уже были идеи какие именно кастомы вам нужны.
в общем, сформулируйте четче с чем у вас вопрос, с тем где создавать функционал? какая логика у функционала должна быть? или какие-то конкретные вопросы, типа того как сделать решение указанное на вики для модуля голосование, без данного модуля
-
admin, попробую сформулировать четче:
1) От копирования модуля я отказываюсь, следовательно идея немного конкретизируется. А точнее: создав новый тип данных Отзывы (подтипом данных Комментарии), делать выборку Usel (общее кол-во, а также вывод текста отзыва и тп.) этих отзывов у объекта каталога.
Как сделать данную выборку? (Тип данных отзывы имеют id=132)
2) Как вывести форму для добавления отзывов на клиенской части.
3) Ну и конечно же как реализовать те самые звездочки на модуле Комментрии.
P.S. Сейчас, попробывав поковыряться в Usel я получаю число, но результат не соответствует действительности, а порой и вовсе выдает число 4, вместо 0.
Благодарю!
-
по пунктам
1) действительно usel вам подойдет, приведите ваш usel и что именно у вас не получается. В документации все прочитали? примеры по составлению usel имеются на этом форуме, или wiki ,или просто в интернете.
2) я бы посоветовал вам разобраться как выводиться форма у обычных комментариев и написать свой кастомный вариант на основе существующего
3) сделать в вашем новом типе данных справочник со значениями 1, 2, 3, и т.д. по количеству звездочек. Далее выводите этот справочник так, чтобы он был оформлен звездочками и при выборе звездочки выбиралось соответствующее значение выпадающего списка которое и будет передаваться в систему при отправке формы.
Примеров, как вывести красивые звездочки и проставлять в неком скрытом поле значение выбранное посредством этих звездочек, можно найти в интернете.
-
/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также как и для отзывов).
-
внимательно прочтите документацию, о том, как вставлять переменные в usel файл. Запись вида %id% недопустима, используйте например индесную переменную {1}... например <category>{1}</category>
если макрос %comments countComments()% считает не то, сделайте кастомный вариант данного макроса и в нем средствами api (используя класс umiselection или selector) сделайте выборку именно отзывов
-
Спасибо. С подсчетом комментов и отзывов все гууд. Пытаюсь разобраться дальше.
Благодарю за помощь!