2013-08-30 113 views

回答

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

取代它,我不覺得原來的核心解決方案好極了,它也不是可定製的。

+0

非常感謝你我找到了一個方法。你的方式在一個普通的Joomla,而不是在CCK的覆蓋com_content,但謝謝:) –