2008-09-21 09:36:57 +03:00
|
|
|
|
<?php
|
|
|
|
|
/*-------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* LiveStreet Engine Social Networking
|
|
|
|
|
* Copyright © 2008 Mzhelskiy Maxim
|
|
|
|
|
*
|
|
|
|
|
*--------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* Official site: www.livestreet.ru
|
|
|
|
|
* Contact e-mail: rus.engine@gmail.com
|
|
|
|
|
*
|
|
|
|
|
* GNU General Public License, version 2:
|
|
|
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
|
*
|
|
|
|
|
---------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Голосование за топик
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
set_include_path(get_include_path().PATH_SEPARATOR.dirname(dirname(dirname(__FILE__))));
|
2009-03-21 15:48:00 +02:00
|
|
|
|
$sDirRoot=dirname(dirname(dirname(__FILE__)));
|
|
|
|
|
require_once($sDirRoot."/config/config.ajax.php");
|
2008-09-21 09:36:57 +03:00
|
|
|
|
|
|
|
|
|
$iValue=@$_REQUEST['value'];
|
|
|
|
|
$bStateError=true;
|
|
|
|
|
$sMsg='';
|
|
|
|
|
$sMsgTitle='';
|
|
|
|
|
$iRating=0;
|
|
|
|
|
if ($oEngine->User_IsAuthorization()) {
|
|
|
|
|
if ($oTopic=$oEngine->Topic_GetTopicById(@$_REQUEST['idTopic'])) {
|
|
|
|
|
$oUserCurrent=$oEngine->User_GetUserCurrent();
|
|
|
|
|
if ($oTopic->getUserId()!=$oUserCurrent->getId()) {
|
|
|
|
|
if (!($oTopicVote=$oEngine->Topic_GetTopicVote($oTopic->getId(),$oUserCurrent->getId()))) {
|
2009-04-04 17:14:36 +03:00
|
|
|
|
if (strtotime($oTopic->getDateAdd())>time()-VOTE_LIMIT_TIME_TOPIC) {
|
|
|
|
|
if ($oEngine->ACL_CanVoteTopic($oUserCurrent,$oTopic) or $iValue==0) {
|
|
|
|
|
if (in_array($iValue,array('1','-1','0'))) {
|
|
|
|
|
$oTopicVote=new TopicEntity_TopicVote();
|
|
|
|
|
$oTopicVote->setTopicId($oTopic->getId());
|
|
|
|
|
$oTopicVote->setVoterId($oUserCurrent->getId());
|
|
|
|
|
$oTopicVote->setDelta($iValue);
|
|
|
|
|
//$oTopic->setRating($oTopic->getRating()+$iValue);
|
|
|
|
|
if ($iValue!=0) {
|
|
|
|
|
$oEngine->Rating_VoteTopic($oUserCurrent,$oTopic,$iValue);
|
|
|
|
|
}
|
|
|
|
|
$oTopic->setCountVote($oTopic->getCountVote()+1);
|
|
|
|
|
if ($oEngine->Topic_AddTopicVote($oTopicVote) and $oEngine->Topic_UpdateTopic($oTopic)) {
|
|
|
|
|
$bStateError=false;
|
|
|
|
|
$sMsgTitle='Поздравляем!';
|
|
|
|
|
$sMsg = $iValue==0 ? 'Вы воздержались для просмотра рейтинга топика' : 'Ваш голос учтен';
|
|
|
|
|
$iRating=$oTopic->getRating();
|
|
|
|
|
} else {
|
|
|
|
|
$sMsgTitle='Ошибка!';
|
|
|
|
|
$sMsg='Попробуйте проголосовать позже';
|
|
|
|
|
}
|
2008-09-21 09:36:57 +03:00
|
|
|
|
} else {
|
2009-04-04 17:14:36 +03:00
|
|
|
|
$sMsgTitle='Внимание!';
|
|
|
|
|
$sMsg='Голосовать можно только +1, 0, либо -1!';
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$sMsgTitle='Внимание!';
|
2009-04-04 17:14:36 +03:00
|
|
|
|
$sMsg='У вас не хватает рейтинга и силы для голосования!';
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$sMsgTitle='Внимание!';
|
2009-04-04 17:14:36 +03:00
|
|
|
|
$sMsg='Срок голосования за топик истёк!';
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$sMsgTitle='Внимание!';
|
|
|
|
|
$sMsg='Вы уже голосовали за этот топик!';
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$sMsgTitle='Внимание!';
|
|
|
|
|
$sMsg='Вы не можете голосовать за свой топик!';
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$sMsgTitle='Ошибка!';
|
|
|
|
|
$sMsg='Вы голосуете за несуществующий топик!';
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$sMsgTitle='Ошибка!';
|
2008-11-02 22:33:45 +02:00
|
|
|
|
$sMsg='Для голосования необходимо авторизоваться!';
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$GLOBALS['_RESULT'] = array(
|
|
|
|
|
"bStateError" => $bStateError,
|
|
|
|
|
"iRating" => $iRating,
|
|
|
|
|
"sMsgTitle" => $sMsgTitle,
|
|
|
|
|
"sMsg" => $sMsg,
|
|
|
|
|
);
|
|
|
|
|
|
2009-04-15 14:29:43 +03:00
|
|
|
|
?>
|