Модуль мотивации пользователей

Вот здесь Уважаемый Angel писал о хаке мотивации пользователей, я ему заказывал сделать из этого дела модуль + небольшая доработка, а именно если пользователь удаляет ранее добавленный топик, соответственно от его рейтинга минусуется то количество баллов, которое добавлялось при написании этого топика. В раздел модули у меня так и не получилось закинуть, потому выкладываю у себя, забирайте. Если будет недоступен, пишите на мыло admin[@]nikonfan.ru, отправлю.

Принимаются предложения по доработке, буду заказывать за свои кровные:)

Установка:

1. Поместить папку motivation в classes/modules/
2. Поместить файл config.php в config/modules/motivation/
3. Поместить вызов модуля в файле classes/actions/ActionTopic.class.php в функции SubmitAdd() после
/**
	 * Получаем топик, чтоб подцепить связанные данные
	 */
	$oTopic=$this->Topic_GetTopicById($oTopic->getId(),null,-1);

добавьте
$this->Motivation_PostTopic($oTopic);

после
/**
 * Удаляем топик
 */

добавьте
$this->Motivation_DeleteTopic($oTopic);

4. Поместить вызов модуля в файле classes/modules/user/User.class.php в функции AutoUpdateUser() после
if (!$this->oUserCurrent) {
		return;
	}

добавьте
$this->Motivation_AutoUpdateUser($this->oUserCurrent);

5. Поместить в файл include/ajax/commentAdd.php после
if ($oTopic->getPublish()) {
	/**
	* Добавляем коммент в прямой эфир если топик не в черновиках
	*/					
	$oTopicCommentOnline=new CommentEntity_TopicCommentOnline();
	$oTopicCommentOnline->setTopicId($oCommentNew->getTopicId());
	$oTopicCommentOnline->setCommentId($oCommentNew->getId());
	$oEngine->Comment_AddTopicCommentOnline($oTopicCommentOnline);
	}

добавьте
$oUserCurrent->setRating($oUserCurrent->getRating()+(($oEngine->Topic_GetTopicById($oCommentNew->getTopicId())->getUserId() == $oUserCurrent->getId())?0:MOTIVATION_COMMENT));

Всё.

17 комментариев

avatar
Установку под кат заправьте — так будет кошернее ;)
avatar
Поправил, спасибо.
avatar
вот так получилось
Fatal error: Uncaught exception 'Exception' with message 'NOT_FOUND_LANG_TEXT - Motivation' in /www/ippos/www/htdocs/classes/engine/Engine.class.php:95 Stack trace: #0 /www/ippos/www/htdocs/classes/engine/Engine.class.php(183): Engine->LoadModule('Motivation', true) #1 /www/ippos/www/htdocs/classes/engine/Module.class.php(37): Engine->_CallModule('Motivation_Auto...', Array) #2 [internal function]: Module->__call('Motivation_Auto...', Array) #3 /www/ippos/www/htdocs/classes/modules/user/User.class.php(240): LsUser->Motivation_AutoUpdateUser(Object(UserEntity_User)) #4 /www/ippos/www/htdocs/classes/modules/user/User.class.php(52): LsUser->AutoUpdateUser() #5 /www/ippos/www/htdocs/classes/engine/Engine.class.php(68): LsUser->Init() #6 /www/ippos/www/htdocs/classes/engine/Router.class.php(99): Engine->InitModules() #7 /www/ippos/www/htdocs/index.php(31): Router->Exec() #8 {main} thrown in /www/ippos/www/htdocs/classes/engine/Engine.class.php on line 95
  • Repa
  • 0
avatar
Посмотрите внимательней, первый пункт, папку motivation закиньте в папку classes/modules/
avatar
все пункты я выполнил, заметил, что проблема возникает после выполнения 4 пункта
avatar
Даже и не знаю, ещё раз перепроверил, установил модуль на чистый livestreet, всё работает…
У меня эту ошибку получилось вызвать лишь удалив папку motivation в classes/modules/
avatar
ещё
4. Поместить вызов модуля в файле classes/modules/User.class.php

может classes/modules/User/User.class.php
  • Repa
  • +1
avatar
Да-да, именно так, спасибо, исправил
avatar
таже ошибка что и Repa

Fatal error: Uncaught exception 'Exception' with message 'NOT_FOUND_LANG_TEXT - Motivation' in /home/u34271/newstgnru/www/classes/engine/Engine.class.php:95 Stack trace: #0 /home/u34271/newstgnru/www/classes/engine/Engine.class.php(183): Engine->LoadModule('Motivation', true) #1 /home/u34271/newstgnru/www/classes/engine/Module.class.php(37): Engine->_CallModule('Motivation_Auto...', Array) #2 [internal function]: Module->__call('Motivation_Auto...', Array) #3 /home/u34271/newstgnru/www/classes/modules/user/User.class.php(238): LsUser->Motivation_AutoUpdateUser(Object(UserEntity_User)) #4 /home/u34271/newstgnru/www/classes/modules/user/User.class.php(52): LsUser->AutoUpdateUser() #5 /home/u34271/newstgnru/www/classes/engine/Engine.class.php(68): LsUser->Init() #6 /home/u34271/newstgnru/www/classes/engine/Router.class.php(99): Engine->InitModules() #7 /home/u34271/newstgnru/www/index.php(31): Router->Exec() #8 {main} thrown in /home/u34271/newstgnru/www/classes/engine/Engine.class.php on line 95

Snapshot, Вы не знаете в чем проблема?
avatar
Уже писал выше, мне удалось добиться такой же ошибки, лишь когда удалил папку motivation в classes/modules/.
Просмотрите ещё раз внимательней все пункты. Я ставлю на чистый движок, всё нормально работает.
p.s. не забываем про карму :)
avatar
В общем не знаю что не так… все пересмотрел уже 3 раза… одна и та же ошибка

У меня на движке только «админпанель» прикручена… может из за нее?
avatar
Спасибо большое за помощь… но проблема была в motivation.class.php из архива…

Переименовал файл в Motivation.class.php и ошибка исчезла
avatar
Во блин, и верно, я про него забыл совсем, на денвере то регистр не учитывается, а на сервере тоже правил. Спасибо +1
Архив поправил.
avatar
Здрасти! За топик в коллективный блог прибавляет в рейтинга ровно столько же как и за топик в персональный блог. Хотя значения в config.php ставлю разные:
define("MOTIVATION_PERSONAL_BLOG_TOPIC",0.1); //Сколько плюсовать на пост в персональном блого
define("MOTIVATION_BLOG_TOPIC",5); //Сколько плюсовать за пост в коллективном блоге

???
avatar
поделитесь кто успел скачать!
avatar
кто за бабло в плагин сделает:?
avatar
Вознаграждение за ежедневные заходы для ЛС1.0.1 здесь: livestreet.ru/blog/12441.html
  • NPC
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.