コード例 #1
0
ファイル: class.faq.php プロジェクト: juliogallardo1326/proc
 /**
  * Method used to quickly change the ranking of a faq entry
  * from the administration screen.
  *
  * @access  public
  * @param   integer $faq_id The faq entry ID
  * @param   string $rank_type Whether we should change the entry down or up (options are 'asc' or 'desc')
  * @return  boolean
  */
 function changeRank($faq_id, $rank_type)
 {
     // check if the current rank is not already the first or last one
     $ranking = FAQ::_getRanking();
     $ranks = array_values($ranking);
     $ids = array_keys($ranking);
     $last = end($ids);
     $first = reset($ids);
     if ($rank_type == 'asc' && $faq_id == $first || $rank_type == 'desc' && $faq_id == $last) {
         return false;
     }
     if ($rank_type == 'asc') {
         $diff = -1;
     } else {
         $diff = 1;
     }
     $new_rank = $ranking[$faq_id] + $diff;
     if (in_array($new_rank, $ranks)) {
         // switch the rankings here...
         $index = array_search($new_rank, $ranks);
         $replaced_faq_id = $ids[$index];
         $stmt = "UPDATE\n                        " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "faq\n                     SET\n                        faq_rank=" . $ranking[$faq_id] . "\n                     WHERE\n                        faq_id=" . $replaced_faq_id;
         $GLOBALS["db_api"]->dbh->query($stmt);
     }
     $stmt = "UPDATE\n                    " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "faq\n                 SET\n                    faq_rank=" . $new_rank . "\n                 WHERE\n                    faq_id=" . $faq_id;
     $GLOBALS["db_api"]->dbh->query($stmt);
     return true;
 }