diff options
| author | cweiske <cweiske@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2010-09-26 22:08:44 +0000 | 
|---|---|---|
| committer | cweiske <cweiske@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2010-09-26 22:08:44 +0000 | 
| commit | daee83fd2c45db473bf151897251783f84820f9e (patch) | |
| tree | 9f8464639b22a40f31ec1ab4e1fe4de6af0bb6ed /src/SemanticScuttle | |
| parent | f52cba5cb3185adf468165bc4d53c8a64cd313ae (diff) | |
| download | semanticscuttle-daee83fd2c45db473bf151897251783f84820f9e.tar.gz semanticscuttle-daee83fd2c45db473bf151897251783f84820f9e.tar.bz2 | |
reformat the code (CS)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@752 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'src/SemanticScuttle')
| -rw-r--r-- | src/SemanticScuttle/Service/SearchHistory.php | 179 | 
1 files changed, 145 insertions, 34 deletions
| diff --git a/src/SemanticScuttle/Service/SearchHistory.php b/src/SemanticScuttle/Service/SearchHistory.php index df9b256..4947bf7 100644 --- a/src/SemanticScuttle/Service/SearchHistory.php +++ b/src/SemanticScuttle/Service/SearchHistory.php @@ -26,7 +26,9 @@   */  class SemanticScuttle_Service_SearchHistory extends SemanticScuttle_DbService  { -    var $sizeSearchHistory; +    public $sizeSearchHistory; + +      /**       * Returns the single service instance @@ -44,109 +46,218 @@ class SemanticScuttle_Service_SearchHistory extends SemanticScuttle_DbService          return $instance;      } + + +    /** +     * Creates a new instance +     * +     * @param DB $db Database object +     */      public function __construct($db)      {          $this->db = $db;          $this->tablename = $GLOBALS['tableprefix'] .'searchhistory'; -        if(isset($GLOBALS['sizeSearchHistory'])) { +        if (isset($GLOBALS['sizeSearchHistory'])) {              $this->sizeSearchHistory = $GLOBALS['sizeSearchHistory'];          } else {              $this->sizeSearchHistory = 10;          }      } -    function addSearch($terms, $range, $nbResults, $uId=0) { -        if(strlen($terms) == 0) { + + +    /** +     * Adds a new search to the search history +     * +     * @param string  $terms     Search terms separated by spaces +     * @param string  $range     - 'all' - search was in all bookmarks +     *                           - 'watchlist' - searched in watchlist +     *                           - any username to show that the search happened +     *                             in his own bookmarks. +     * @param integer $nbResults Number of search result rows +     * @param integer $uId       ID of user that searched +     * +     * @return boolean True if it has been added, false if not +     */ +    public function addSearch($terms, $range, $nbResults, $uId = 0) +    { +        if (strlen($terms) == 0) {              return false;          }          $datetime = gmdate('Y-m-d H:i:s', time());          //Insert values -        $values = array('shTerms'=>$terms, 'shRange'=>$range, 'shDatetime'=>$datetime, 'shNbResults'=>$nbResults, 'uId'=>$uId); -        $sql = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values); +        $values = array( +            'shTerms'     => $terms, +            'shRange'     => $range, +            'shDatetime'  => $datetime, +            'shNbResults' => $nbResults, +            'uId'         => $uId +        ); +        $sql = 'INSERT INTO ' . $this->getTableName() +            . ' ' . $this->db->sql_build_array('INSERT', $values); +          $this->db->sql_transaction('begin'); -        if (!($dbresult = & $this->db->sql_query($sql))) { +        if (!($dbresult = $this->db->sql_query($sql))) {              $this->db->sql_transaction('rollback'); -            message_die(GENERAL_ERROR, 'Could not insert search history', '', __LINE__, __FILE__, $sql, $this->db); +            message_die( +                GENERAL_ERROR, 'Could not insert search history', +                '', __LINE__, __FILE__, $sql, $this->db +            );              return false;          } -        if($this->sizeSearchHistory != -1 && -        $this->countSearches() > $this->sizeSearchHistory) { +        if ($this->sizeSearchHistory != -1 +            && $this->countSearches() > $this->sizeSearchHistory +        ) {              $this->deleteOldestSearch();          } + +        return true;      } -    function getAllSearches($range = NULL, $uId = NULL, $nb = NULL, $start = NULL, $distinct = false, $withResults = false) { -        $sql = 'SELECT DISTINCT(shTerms), shId, shRange, shNbResults, shDatetime, uId'; + + +    /** +     * Returns searches with the given features. +     * +     * @param string  $range       - 'all' - search was in all bookmarks +     *                             - 'watchlist' - searched in watchlist +     *                             - any username to show that the search happened +     *                               in his own bookmarks. +     * @param integer $uId         Id of the user who searched. 0 for anonymous users +     * @param integer $nb          Number of bookmarks to retrieve (paging) +     * @param integer $start       Number of bookmark to begin with (paging) +     * @param boolean $distinct    If the search terms shall be distinct +     * @param boolean $withResults Only return searches that had at least one result +     * +     * @return array Array of search history database rows +     */ +    public function getAllSearches( +        $range = null, $uId = null, $nb = null, +        $start = null, $distinct = false, $withResults = false +    ) { +        $sql = 'SELECT DISTINCT(shTerms),' +            . ' shId, shRange, shNbResults, shDatetime, uId';          $sql.= ' FROM '. $this->getTableName();          $sql.= ' WHERE 1=1'; -        if($range != NULL) { +        if ($range != null) {              $sql.= ' AND shRange = "'.$range.'"';          } else {              $sql.= ' AND shRange = "all"';          } -        if($uId != NULL) { +        if ($uId != null) {              $sql.= ' AND uId = '.$uId;          } -        if($withResults = true) { +        if ($withResults = true) {              $sql.= ' AND shNbResults > 0';          } -        if($distinct) { +        if ($distinct) {              $sql.= ' GROUP BY shTerms';          }          $sql.= ' ORDER BY shId DESC'; -        if (!($dbresult = & $this->db->sql_query_limit($sql, $nb, $start))) { -            message_die(GENERAL_ERROR, 'Could not get searches', '', __LINE__, __FILE__, $sql, $this->db); +        if (!($dbresult = $this->db->sql_query_limit($sql, $nb, $start))) { +            message_die( +                GENERAL_ERROR, 'Could not get searches', +                '', __LINE__, __FILE__, $sql, $this->db +            );              return false;          }          $searches = array(); -        while ($row = & $this->db->sql_fetchrow($dbresult)) { +        while ($row = $this->db->sql_fetchrow($dbresult)) {              $searches[] = $row;          }          $this->db->sql_freeresult($dbresult);          return $searches;      } -    function countSearches() { + + +    /** +     * Counts the number of searches that have been made in total. +     * +     * @return integer Number of searches +     */ +    public function countSearches() +    {          $sql = 'SELECT COUNT(*) AS `total` FROM '. $this->getTableName(); -        if (!($dbresult = & $this->db->sql_query($sql)) || (!($row = & $this->db->sql_fetchrow($dbresult)))) { -            message_die(GENERAL_ERROR, 'Could not get total searches', '', __LINE__, __FILE__, $sql, $this->db); +        if (!($dbresult = $this->db->sql_query($sql)) +            || (!($row = & $this->db->sql_fetchrow($dbresult))) +        ) { +            message_die( +                GENERAL_ERROR, 'Could not get total searches', +                '', __LINE__, __FILE__, $sql, $this->db +            );              return false;          }          $this->db->sql_freeresult($dbresult);          return $row['total'];      } -    /* This function allows to limit the number of saved searches -     by deleting the oldest one */ -    function deleteOldestSearch() { + + +    /** +     * This function allows to limit the number of saved searches +     * by deleting the oldest one +     * +     * @return boolean True when all went well, false in case of an error +     */ +    public function deleteOldestSearch() +    {          $sql = 'DELETE FROM '.$this->getTableName(); -        $sql.= ' ORDER BY shId ASC LIMIT 1';  // warning: here the limit is important +        // warning: here the limit is important +        $sql .= ' ORDER BY shId ASC LIMIT 1';          $this->db->sql_transaction('begin'); -        if (!($dbresult = & $this->db->sql_query($sql))) { +        if (!($dbresult = $this->db->sql_query($sql))) {              $this->db->sql_transaction('rollback'); -            message_die(GENERAL_ERROR, 'Could not delete bookmarks', '', __LINE__, __FILE__, $query, $this->db); +            message_die( +                GENERAL_ERROR, 'Could not delete bookmarks', +                '', __LINE__, __FILE__, $query, $this->db +            );              return false;          } + +        return true;      } -    function deleteSearchHistoryForUser($uId) { -        $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '.        intval($uId); -        if (!($dbresult = & $this->db->sql_query($query))) { -            message_die(GENERAL_ERROR, 'Could not delete search history', '', -            __LINE__, __FILE__, $query, $this->db); + +    /** +     * Deletes all search history entries that have been made by the user +     * with the given ID. +     * +     * @param integer $uId ID of the user +     * +     * @return boolean True when all went well, false in case of an error +     */ +    public function deleteSearchHistoryForUser($uId) +    { +        $query = 'DELETE FROM '. $this->getTableName() +            . ' WHERE uId = ' . intval($uId); + +        if (!($dbresult = $this->db->sql_query($query))) { +            message_die( +                GENERAL_ERROR, 'Could not delete search history', '', +                __LINE__, __FILE__, $query, $this->db +            );              return false;          }          return true;      } -    function deleteAll() { + + +    /** +     * Deletes all search history entries. +     * +     * @return void +     */ +    public function deleteAll() +    {          $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';          $this->db->sql_query($query);      } | 
