Решил использовать этот модуль для голосования в Gallery, до этого был самописный компонент. Всё гуд, кроме того, что у мя был реализован механиз выставления rank'а (есть такое поле в gallery_album_items) при каждом голосовании, чтобы не создавать всякие tv, а использовать уже имеющиеся инструменты ротации. Можно как-то прикрутить мой код, не влезая внутрь модуля? В кач-ве хука или еще как...
Можно было бы использовать &rating=`type=2,column=rank`, если бы такое значение у column было допустимым. хоть и вставлялась бы сумма, но для ранжирования всё равно подходит, чем больше, тем выше
Если бы вставлялась сумма, то было бы еще лучше, т.к. можно было бы использовать это поле для вывода всех с учетом ранка
[ed. note: diegos last edited this post 14 years, 1 month ago.]
-
☆ A M B ☆
- 428 Posts
Приветствую,
К сожелению в параметре rating значение type=2 пишет только в ресурс и значение column имеет только приоритет названий longtitle, description, introtext, properties
Вы можете создать свой плагин или изменить likeDislikePlugin код в событии OnlikeDislikeSave на свой, придерживаясь правил передачи значений.
Вернее оставить синтаксис вызова &rating=`type=2,column=properties` а в плагине изменить код на свой. т.е. писать в Gallery в поле ранк. целое число баланса или как вам нужно.
Вообще, в следующей версии сделаю type=3 - кустом. где вы сами сможете управлять записями как вам удобно.
Valentin Rasulov - Industrial design (Hobbies - Web Development)
Development not standard projects on CMF MODx Revolution.
Small sample of extensions
Мне не обязательно использовать &rating, т.к. все нужные данные уже передаются, поле name в БД получается, к примеру, таким GalleryItem10::91455537::Ювентус, где 10 - это айди категории (т.е. intval'ом могу спокойно вытащить), а 91455537 айди фотки.
Только никак не пойму как впихнуть мой код в плагин или как там впихнуть что-то типо функции (например, set_rank($cid=10,$id=91455537), цифры понятно будут вставляться динамически). На момент выполнения моей функции можно прегматчнуть на GalleryItem.
-
☆ A M B ☆
- 428 Posts
так не выйдет.
откройте файл
www/core/components/likedislike/processors/web/like.php
найдите
строку 125
и замените её на
$itemsEvents['typeRat'] = isset($arrayDR['type']) ? intval($arrayDR['type']) : 1;
теперь создайте плагин с любым именем и повешайте на событие OnlikeDislikeSave
при вызове снипета голосования укажите просто
Данные все которые передаются в плагин описанны
здесь
Пример плагина
if ($modx->event->name == 'OnlikeDislikeSave') {
$myparams = $modx->event->params;
if($myparams['resRat'] == 3){
//your code
}
}
$myparams - это массив данных перечисленный
здесь
Valentin Rasulov - Industrial design (Hobbies - Web Development)
Development not standard projects on CMF MODx Revolution.
Small sample of extensions
-
☆ A M B ☆
- 428 Posts
&rating=`type=3,res=[[+id]]`
параметр res не будет передовать вам значения, посмотри в документации, его там нету.
Вам нужно просто разобрать имя (name) в плагине и получить ваш id.
Valentin Rasulov - Industrial design (Hobbies - Web Development)
Development not standard projects on CMF MODx Revolution.
Small sample of extensions