Добавляем карму к своему компоненту

479
Многие меня просили добавить оценивание в свои компоненты и я вроде как разобрался как это делать и всецело готов поделиться с начинающими разработчиками как это сделать!
Итак, приступим!

Великий алыверды разработчикам ICMS за то что за нас уже всё предусмотрели! Нам лишь чуть придётся исправить frontend.php:
1. Подключаем библиотеку кармы во фронтенде:
Код PHP:
  1. $inCore->loadLib('karma');
2. Настраиваем вывод кармы:
В том месте где мы передаём параметры просмотра смарти добавляем:
Код PHP:
  1. $smarty->assign('karma_form', cmsKarmaForm('content_name', content_id, 0, is_author));
где:
content_name - имя контента - должно быть уникальным
content_id - уникальный идентификатор контента
is_author - булевый параметр - является ли текущий пользователь автором контента

Вот и всё! мы подключили карму к нашему контенту, осталось только добавить {$karma_form} в нужное место нашего шаблона!
Компонент Пользовательские карты версия 0.6.5 | Календарь 0.4.beta6
Комментарии (13)
Dorimen 4 августа 2012 в 00:51 0
И что это даст?
Сергей Игоревич 6 августа 2012 в 09:00 0
Во первых можно составлять рейтинги. Во вотрых это будет влиять на карму пользователя.
Kreator 7 августа 2012 в 11:02 0
А если у записи нет автора?
Сергей Игоревич 7 августа 2012 в 14:26 0
Тогда просто пишите 0
Kreator 7 августа 2012 в 12:18 0
Карму добавл, только вот не работает.
Видимо что-то не так с пунктом is_author

Блок кармы выходит и он постоянно НЕактивный (проголосовать нельзя)
Сергей Игоревич 7 августа 2012 в 14:25 0
если is_author = FALSE то будет активный
Kreator 7 августа 2012 в 15:12 0
Какие строки еще должны быть, чтобы параметр работал? если в компоненте по-умолчанию нет данных не о пользователе и т.д.
т.е. как правильно там задать чтоб голосовали только авторизованные пользователи ...
Kreator 7 августа 2012 в 15:18 0
Спасибо, разобрался, вы выше верно сказали
Kreator 7 августа 2012 в 15:30 0
Хм ... хотя ....
Теперь голосовалка активна для зарегиных пользователей.
Но при нажатии пишет что голос принят, но ничего не меняется и при обновлении страницы тоже самое ...
Переменные "название компонента" и ИД записи выводятся корректно (проверил).
Заполнено так:

$smarty->assign('karma_form', cmsKarmaForm('moicomponent, idzapisi, 0, 0));
Kreator 7 августа 2012 в 15:32 0
записи в БД идут корректно
Kreator 7 августа 2012 в 15:56 0
Возможно нашел причину: записи в ячейку с ИД-записи идут некорректно.
С чем это может быть связано?
В моем компоненте ИД-записи тоже числовое значение, но отличается пожалуй только тем что имеет 16 цифр в ИД.
И в БД записывается совсем другое число-ИД.
Сергей Игоревич 7 августа 2012 в 16:11 0
проверять что за id Записано :)
Kreator 7 августа 2012 в 19:20 0
Поменял параметр таблицы БД и стало записываться нормально.
Но вот обратной связи нет почему-то ...
-
Т.е. жмешь рейтинг - он пишет что засчитано. Цифра не меняется, но в бд все записи верно сделаны.
-
Последний раз я с таким сталкивался с привязкой к компоненту комментариев. Выход был в записях в файл model.php
-
А тут хз что там писать ... и сравнить то не счем ... хоть какие переменные указывать ... в каментах там была запись "public function getCommentTarget($target, $target_id) { ..... "
А тут и сравнить то не с чем ...