0

Joomla 2.5 默认限制用户可以投票的数量。这受 IP 地址的限制。

是否有任何简单的方法可以允许每个 IP 地址进行多次投票?

我正在使用核心投票。

4

1 回答 1

1

实际上,Joomla!2.5 仅存储每个项目的最后一个投票者的 IP 地址。

如果另一个投票来自不同的 IP 地址,具有原始 IP 地址的用户可以再次投票。

此行为在/components/com_content/models/article.php308 行左右定义。

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;
}

我没有发现原来的核心解决方案很好,而且它也不是可定制的。

于 2013-08-30T14:50:05.387 回答