[ Index ]

PHP Cross Reference of MyBB 1.4.13

title

Body

[close]

/ -> ratethread.php (source)

   1  <?php
   2  /**
   3   * MyBB 1.4
   4   * Copyright © 2008 MyBB Group, All Rights Reserved
   5   *
   6   * Website: http://www.mybboard.net
   7   * License: http://www.mybboard.net/about/license
   8   *
   9   * $Id: ratethread.php 4304 2009-01-02 01:11:56Z chris $
  10   */
  11  
  12  define("IN_MYBB", 1);
  13  define('THIS_SCRIPT', 'ratethread.php');
  14  
  15  $templatelist = '';
  16  require_once  "./global.php";
  17  
  18  // Verify incoming POST request
  19  verify_post_check($mybb->input['my_post_key']);
  20  
  21  $lang->load("ratethread");
  22  
  23  $tid = intval($mybb->input['tid']);
  24  $query = $db->simple_select("threads", "*", "tid='{$tid}'");
  25  $thread = $db->fetch_array($query);
  26  if(!$thread['tid'])
  27  {
  28      error($lang->error_invalidthread);
  29  }
  30  
  31  $forumpermissions = forum_permissions($thread['fid']);
  32  if($forumpermissions['canview'] == 0 || $forumpermissions['canratethreads'] == 0 || $mybb->usergroup['canratethreads'] == 0)
  33  {
  34      error_no_permission();
  35  }
  36  
  37  // Get forum info
  38  $fid = $thread['fid'];
  39  $forum = get_forum($fid);
  40  if(!$forum)
  41  {
  42      error($lang->error_invalidforum);
  43  }
  44  
  45  // Check if this forum is password protected and we have a valid password
  46  check_forum_password($forum['fid']);
  47  
  48  if($forum['allowtratings'] == 0)
  49  {
  50      error_no_permission();
  51  }
  52  $mybb->input['rating'] = intval($mybb->input['rating']);
  53  if($mybb->input['rating'] < 1 || $mybb->input['rating'] > 5)
  54  {
  55      error($lang->error_invalidrating);
  56  }
  57  $plugins->run_hooks("ratethread_start");
  58  
  59  if($mybb->user['uid'] != 0)
  60  {
  61      $whereclause = "uid='{$mybb->user['uid']}'";
  62  }
  63  else
  64  {
  65      $whereclause = "ipaddress='".$db->escape_string($session->ipaddress)."'";
  66  }
  67  $query = $db->simple_select("threadratings", "*", "{$whereclause} AND tid='{$tid}'");
  68  $ratecheck = $db->fetch_array($query);
  69  
  70  if($ratecheck['rid'] || $mybb->cookies['mybbratethread'][$tid])
  71  {
  72      error($lang->error_alreadyratedthread);
  73  }
  74  else
  75  {
  76      $plugins->run_hooks("ratethread_process");
  77  
  78      $db->write_query("
  79          UPDATE ".TABLE_PREFIX."threads
  80          SET numratings=numratings+1, totalratings=totalratings+'{$mybb->input['rating']}'
  81          WHERE tid='{$tid}'
  82      ");
  83      if($mybb->user['uid'] != 0)
  84      {
  85          $insertarray = array(
  86              'tid' => $tid,
  87              'uid' => $mybb->user['uid'],
  88              'rating' => $mybb->input['rating'],
  89              'ipaddress' => $db->escape_string($session->ipaddress)
  90          );
  91          $db->insert_query("threadratings", $insertarray);
  92      }
  93      else
  94      {
  95          $insertarray = array(
  96              'tid' => $tid,
  97              'rating' => $mybb->input['rating'],
  98              'ipaddress' => $db->escape_string($session->ipaddress)
  99          );
 100          $db->insert_query("threadratings", $insertarray);
 101          $time = TIME_NOW;
 102          my_setcookie("mybbratethread[{$tid}]", $mybb->input['rating']);
 103      }
 104  }
 105  $plugins->run_hooks("ratethread_end");
 106  
 107  if($mybb->input['ajax'])
 108  {
 109      echo "<success>{$lang->rating_added}</success>\n";
 110      $query = $db->simple_select("threads", "totalratings, numratings", "tid='$tid'", array('limit' => 1));
 111      $fetch = $db->fetch_array($query);
 112      $width = 0;
 113      if($fetch['numratings'] >= 0)
 114      {
 115          $averagerating = intval(round($fetch['totalratings']/$fetch['numratings'], 2));
 116          $width = $averagerating*20;
 117          $fetch['numratings'] = intval($fetch['numratings']);
 118          $ratingvotesav = $lang->sprintf($lang->rating_votes_average, $fetch['numratings'], $averagerating);
 119          echo "<average>{$ratingvotesav}</average>\n";
 120      }
 121      echo "<width>{$width}</width>";
 122      exit;
 123  }
 124  
 125  redirect(get_thread_link($thread['tid']), $lang->redirect_threadrated);
 126  ?>


Generated: Mon Apr 19 19:52:21 2010 Cross-referenced by PHPXref 0.7