Joomla 2.5 默认限制用户可以投票的数量。这受 IP 地址的限制。
是否有任何简单的方法可以允许每个 IP 地址进行多次投票?
我正在使用核心投票。
实际上,Joomla!2.5 仅存储每个项目的最后一个投票者的 IP 地址。
如果另一个投票来自不同的 IP 地址,具有原始 IP 地址的用户可以再次投票。
此行为在/components/com_content/models/article.php
308 行左右定义。
if ($userIP != ($rating->lastip))
{
$db->setQuery(
'UPDATE #__content_rating' .
' SET rating_count = rating_count + 1, rating_sum = rating_sum + '.(int) $rate.', lastip = '.$db->Quote($userIP) .
' WHERE content_id = '.(int) $pk
);
if (!$db->query()) {
$this->setError($db->getErrorMsg());
return false;
}
} else {
return false;
}
更改它涉及核心文件黑客攻击。
您可以做的一件事是使if
子句中的测试始终返回true
,因此一种可能性是注释第一行并将其替换为
if (true)//$userIP != ($rating->lastip))
{
$db->setQuery(
'UPDATE #__content_rating' .
' SET rating_count = rating_count + 1, rating_sum = rating_sum + '.(int) $rate.', lastip = '.$db->Quote($userIP) .
' WHERE content_id = '.(int) $pk
);
if (!$db->query()) {
$this->setError($db->getErrorMsg());
return false;
}
} else {
return false;
}
我没有发现原来的核心解决方案很好,而且它也不是可定制的。