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

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

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

Вот и всё! мы подключили карму к нашему контенту, осталось только добавить {$karma_form} в нужное место нашего шаблона!
0
Dorimen Dorimen 11 лет назад #
И что это даст?
0
Сергей Игоревич Сергей Игоревич 11 лет назад #
Во первых можно составлять рейтинги. Во вотрых это будет влиять на карму пользователя.
0
Kreator Kreator 11 лет назад #
А если у записи нет автора?
0
Сергей Игоревич Сергей Игоревич 11 лет назад #
Тогда просто пишите 0
0
Kreator Kreator 11 лет назад #
Карму добавл, только вот не работает.
Видимо что-то не так с пунктом is_author

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

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

Еще от автора

Редирект при логине
Меня жутко бесит на сайтах, когда ходишь по нему, не замечаешь что залогинен, а потом надо зайти в раздел который только для пользователей.
Автоповорот изображений 1.10+
Итак, для тех у кого нормальные фотоаппараты и тысячи фоток на сайте.
Компонент AjaxChat для 1.10.3+
Лёгкое обновление компонента AjaxChat 0.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.