diff options
| -rw-r--r-- | admin.php | 10 | ||||
| -rw-r--r-- | services/commondescriptionservice.php | 14 | ||||
| -rw-r--r-- | services/searchhistoryservice.php | 208 | ||||
| -rw-r--r-- | services/tagstatservice.php | 12 | 
4 files changed, 144 insertions, 100 deletions
| @@ -23,7 +23,10 @@ require_once('header.inc.php');  $bookmark2tagservice = & ServiceFactory :: getServiceInstance('Bookmark2Tagservice');
  $bookmarkservice = & ServiceFactory :: getServiceInstance('BookmarkService');  $tag2tagservice = & ServiceFactory :: getServiceInstance('Tag2TagService'); -$tagcacheservice = & ServiceFactory :: getServiceInstance('TagCacheService');
 +$tagcacheservice = & ServiceFactory :: getServiceInstance('TagCacheService'); +$commondescriptionservice = & ServiceFactory :: getServiceInstance('CommonDescriptionService'); +$searchhistoryservice = & ServiceFactory :: getServiceInstance('SearchHistoryService'); +$tagstatservice = & ServiceFactory :: getServiceInstance('TagStatService');
  // Header variables
  $tplVars['subtitle'] = T_('Manage users');
 @@ -56,7 +59,10 @@ if ( $action  				$tagcacheservice->deleteByUser($uId);  				$tag2tagservice->removeLinkedTags('','','',$uId);
  				$userservice->deleteUser($uId);
 -				$bookmark2tagservice->deleteTagsForUser($uId);				
 +				$bookmark2tagservice->deleteTagsForUser($uId); +				$commondescriptionservice->deleteDescriptionsForUser($uId); +				$searchhistoryservice->deleteSearchHistoryForUser($uId); +				$tagstatservice->deleteTagStatForUser($uId);				
  				// XXX: don't delete bookmarks before tags, else tags can't be deleted !!!
  				$bookmarkservice->deleteBookmarksForUser($uId);
 diff --git a/services/commondescriptionservice.php b/services/commondescriptionservice.php index 0a96f74..86e0c0f 100644 --- a/services/commondescriptionservice.php +++ b/services/commondescriptionservice.php @@ -140,6 +140,20 @@ class CommonDescriptionService {  	} +	function deleteDescriptionsForUser($uId){ +		$query = 'DELETE FROM '. $this->getTableName() . ' WHERE uId = '. intval($uId); + +		$this->db->sql_transaction('begin'); +		if (!($dbresult = & $this->db->sql_query($query))) { +			$this->db->sql_transaction('rollback'); +			message_die(GENERAL_ERROR, 'Could not delete user descriptions', '', +			__LINE__, __FILE__, $query, $this->db); +			return false; +		} +		 +		return true; +	} +  	function deleteAll() {  		$query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; diff --git a/services/searchhistoryservice.php b/services/searchhistoryservice.php index bf678cf..72ea825 100644 --- a/services/searchhistoryservice.php +++ b/services/searchhistoryservice.php @@ -1,111 +1,123 @@  <?php  class SearchHistoryService { -    var $db; -    var $tablename; -    var $sizeSearchHistory; - -    function &getInstance(&$db) { -        static $instance; -        if (!isset($instance)) -            $instance =& new SearchHistoryService($db); -        return $instance; -    } - -    function SearchHistoryService(& $db) { -        $this->db =& $db; -        $this->tablename = $GLOBALS['tableprefix'] .'searchhistory'; -	if(isset($GLOBALS['sizeSearchHistory'])) { -            $this->sizeSearchHistory = $GLOBALS['sizeSearchHistory']; -	} else { -	    $this->sizeSearchHistory = 10; +	var $db; +	var $tablename; +	var $sizeSearchHistory; + +	function &getInstance(&$db) { +		static $instance; +		if (!isset($instance)) +		$instance =& new SearchHistoryService($db); +		return $instance;  	} -    } -    function addSearch($terms, $range, $nbResults, $uId=0) { -	if(strlen($terms) == 0) { -	    return false; +	function SearchHistoryService(& $db) { +		$this->db =& $db; +		$this->tablename = $GLOBALS['tableprefix'] .'searchhistory'; +		if(isset($GLOBALS['sizeSearchHistory'])) { +			$this->sizeSearchHistory = $GLOBALS['sizeSearchHistory']; +		} else { +			$this->sizeSearchHistory = 10; +		}  	} -        $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); -        $this->db->sql_transaction('begin'); -        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); -            return false; -        } - -	if($this->sizeSearchHistory != -1 &&  + +	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); +		$this->db->sql_transaction('begin'); +		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); +			return false; +		} + +		if($this->sizeSearchHistory != -1 &&  		$this->countSearches() > $this->sizeSearchHistory) { -	    $this->deleteOldestSearch(); +			$this->deleteOldestSearch(); +		}  	} -    } - -    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) { -	    $sql.= ' AND shRange = "'.$range.'"'; -	} else { -	    $sql.= ' AND shRange = "all"'; + +	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) { +			$sql.= ' AND shRange = "'.$range.'"'; +		} else { +			$sql.= ' AND shRange = "all"'; +		} +		if($uId != NULL) { +			$sql.= ' AND uId = '.$uId; +		} +		if($withResults = true) { +			$sql.= ' AND shNbResults > 0'; +		} +		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); +			return false; +		} + +		$searches = array(); +		while ($row = & $this->db->sql_fetchrow($dbresult)) { +			$searches[] = $row; +		} +		return $searches;  	} -	if($uId != NULL) { -	    $sql.= ' AND uId = '.$uId; + +	function countSearches() { +		$sql = 'SELECT COUNT(*) AS `total` FROM '. $this->getTableName(); +		if (!($result = & $this->db->sql_query($sql)) || (!($row = & $this->db->sql_fetchrow($result)))) { +			message_die(GENERAL_ERROR, 'Could not get total searches', '', __LINE__, __FILE__, $sql, $this->db); +			return false; +		} + +		return $row['total'];  	} -	if($withResults = true) { -	    $sql.= ' AND shNbResults > 0'; + +	/* This function allows to limit the number of saved searches +	 by deleting the oldest one */ +	function deleteOldestSearch() { +		$sql = 'DELETE FROM '.$this->getTableName(); +		$sql.= ' ORDER BY shId ASC LIMIT 1';  // warning: here the limit is important + +		$this->db->sql_transaction('begin'); +		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); +			return false; +		} +	} + +	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;  	} -	if($distinct) { -	    $sql.= ' GROUP BY shTerms'; + +	function deleteAll() { +		$query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; +		$this->db->sql_query($query);  	} -	$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); -            return false; -        } - -        $searches = array(); -        while ($row = & $this->db->sql_fetchrow($dbresult)) { -            $searches[] = $row; -        } -        return $searches; -    } - -    function countSearches() { -	$sql = 'SELECT COUNT(*) AS `total` FROM '. $this->getTableName(); -        if (!($result = & $this->db->sql_query($sql)) || (!($row = & $this->db->sql_fetchrow($result)))) { -            message_die(GENERAL_ERROR, 'Could not get total searches', '', __LINE__, __FILE__, $sql, $this->db); -            return false; -        } - -	return $row['total']; -    } - -    /* This function allows to limit the number of saved searches -       by deleting the oldest one */ -    function deleteOldestSearch() { -	$sql = 'DELETE FROM '.$this->getTableName(); -	$sql.= ' ORDER BY shId ASC LIMIT 1';  // warning: here the limit is important - -        $this->db->sql_transaction('begin'); -        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); -            return false; -        } -    } - -    function deleteAll() { -	$query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; -	$this->db->sql_query($query); -    }    - -    // Properties -    function getTableName()       { return $this->tablename; } -    function setTableName($value) { $this->tablename = $value; } + +	// Properties +	function getTableName()       { return $this->tablename; } +	function setTableName($value) { $this->tablename = $value; }  }  ?> diff --git a/services/tagstatservice.php b/services/tagstatservice.php index 3a08bc0..9d3ca5d 100644 --- a/services/tagstatservice.php +++ b/services/tagstatservice.php @@ -169,6 +169,18 @@ class TagStatService {  		$this->db->sql_query($query);  	} +	function deleteTagStatForUser($uId) { +		$query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '.		intval($uId); + +		if (!($dbresult = & $this->db->sql_query($query))) { +			message_die(GENERAL_ERROR, 'Could not delete tag stats', '', __LINE__, +			__FILE__, $query, $this->db); +			return false; +		} + +		return true; +	} +  	function deleteAll() {  		$query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';  		$this->db->sql_query($query); | 
