【问题标题】:Joomla 2.5 not limit one vote per IP addressJoomla 2.5 不限制每个 IP 地址一票
【发布时间】:2013-09-03 06:25:52
【问题描述】:

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

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

我正在使用 CORE 投票。

【问题讨论】:

    标签: joomla joomla2.5 limit voting


    【解决方案1】:

    实际上,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;
    }
    

    我不觉得原来的核心解决方案很好,而且它也不能定制。

    【讨论】:

    • 非常感谢你我找到了一个方法。您在常规 Joomla 上的方式,而不是在覆盖 com_content 的 CCK 中,但谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多