1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-28 20:45:00 +03:00

Учет IP при голосовании

This commit is contained in:
Mzhelskiy Maxim 2012-04-21 11:04:16 +04:00
parent 9df99b6f00
commit ee34fe74dd
5 changed files with 20 additions and 5 deletions

View file

@ -37,6 +37,9 @@ class ModuleVote extends Module {
* @return unknown
*/
public function AddVote(ModuleVote_EntityVote $oVote) {
if (!$oVote->getIp()) {
$oVote->setIp(func_getIp());
}
if ($this->oMapper->AddVote($oVote)) {
$this->Cache_Delete("vote_{$oVote->getTargetType()}_{$oVote->getTargetId()}_{$oVote->getVoterId()}");
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array("vote_update_{$oVote->getTargetType()}_{$oVote->getVoterId()}"));

View file

@ -35,6 +35,9 @@ class ModuleVote_EntityVote extends Entity
public function getDate() {
return $this->_aData['vote_date'];
}
public function getIp() {
return $this->_getDataOne('vote_ip');
}
@ -56,5 +59,8 @@ class ModuleVote_EntityVote extends Entity
public function setDate($data) {
$this->_aData['vote_date']=$data;
}
public function setIp($data) {
$this->_aData['vote_ip']=$data;
}
}
?>

View file

@ -25,11 +25,12 @@ class ModuleVote_MapperVote extends Mapper {
user_voter_id,
vote_direction,
vote_value,
vote_date
vote_date,
vote_ip
)
VALUES(?d, ?, ?d, ?d, ?f, ?)
VALUES(?d, ?, ?d, ?d, ?f, ?, ?)
";
if ($this->oDb->query($sql,$oVote->getTargetId(),$oVote->getTargetType(),$oVote->getVoterId(),$oVote->getDirection(),$oVote->getValue(),$oVote->getDate())===0)
if ($this->oDb->query($sql,$oVote->getTargetId(),$oVote->getTargetType(),$oVote->getVoterId(),$oVote->getDirection(),$oVote->getValue(),$oVote->getDate(),$oVote->getIp())===0)
{
return true;
}

View file

@ -110,4 +110,7 @@ INSERT INTO `prefix_user_field` (`type`, `name`, `title`, `pattern`) VALUES
('social', 'vkontakte', 'ВКонтакте', '<a href="http://vk.com/{*}" rel="nofollow">{*}</a>'),
('social', 'odnoklassniki', 'Одноклассники', '<a href="http://www.odnoklassniki.ru/profile/{*}/" rel="nofollow">{*}</a>');
ALTER TABLE `prefix_favourite_tag` ADD INDEX ( `text` );
ALTER TABLE `prefix_favourite_tag` ADD INDEX ( `text` );
ALTER TABLE `prefix_vote` ADD `vote_ip` VARCHAR( 15 ) NOT NULL DEFAULT '',
ADD INDEX ( `vote_ip` );

View file

@ -769,8 +769,10 @@ CREATE TABLE IF NOT EXISTS `prefix_vote` (
`vote_direction` tinyint(2) DEFAULT '0',
`vote_value` float(9,3) NOT NULL DEFAULT '0.000',
`vote_date` datetime NOT NULL,
`vote_ip` varchar(15) NOT NULL DEFAULT '',
PRIMARY KEY (`target_id`,`target_type`,`user_voter_id`),
KEY `user_voter_id` (`user_voter_id`)
KEY `user_voter_id` (`user_voter_id`),
KEY `vote_ip` (`vote_ip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--