Migration SVN

This commit is contained in:
2016-02-21 14:28:40 +01:00
commit df45f10305
1455 changed files with 20440 additions and 0 deletions

161
system/api/history.api.php Executable file
View File

@@ -0,0 +1,161 @@
<?php
/**
* @class history
* @brief Manage, Display history of activity
* @author Vincent Lemoine
* @date 29/04/2009
* @modified Xavier Perrissoud
* @date 01/05/2009
* @version 0.1
*
* This class manages the history of the differents actions made on a hosting and/or an user account
*/
class history {
private $history_records = null;
/**
* @brief Save current action to history
* @param message_key -> message of action
* @param user_id -> the user id of action
* @return boolean
*
* Add an action record in the history list for a given user.
*/
public function add($message_key, $user_id)
{
$message_key = $_SESSION['database']->clearString($message_key);
$user_id = $_SESSION['database']->clearString($user_id);
// hosting_id <20> r<>cuperer
$hosting_id = 1;
$ip = $_SERVER['REMOTE_ADDR'];
$req = "INSERT INTO history
SET
date = NOW(),
user_id = '$user_id',
hosting_id = '$hosting_id',
ip = '$ip',
message_key = '$message_key'";
$_SESSION['database']->execRequest($req);
// Update cache if needed
if ( !is_null($this->history_records) ) {
$this->history_records++;
}
return true;
} // End of actiontoHistory
/**
* @brief List all history actions with a given clause
* @param start -> Record of starting listing
* @param extract -> Number of records to extract
* @param clause -> SQL clause for listing
* @return array with information (nul if empty)
*/
private function listHistoryByClause($start = NULL, $extract = NULL, $clause = NULL)
{
$lang = new lang();
if ( !is_null($start) and !is_null($extract) ) {
$limit = "LIMIT $start, $extract";
} else $limit = NULL;
if ( !is_null($clause) ) {
$clause = "WHERE $clause";
}
$req = "SELECT
h.message_key AS action,
i.base_name AS hosting,
h.ip AS ip,
UNIX_TIMESTAMP(h.date) AS date
FROM history AS h
LEFT JOIN hostings AS i
ON i.id = h.hosting_id
$clause $limit";
$result = $_SESSION['database']->fetchObject($req);
foreach ( $result as $key => $value )
{
$result[$key]->action = $lang->getWordFromLangFile($result[$key]->action);
}
return $result;
} // End of listHistoryByClause
/**
* @brief List all history actions for the current user
* @param start -> Record of starting listing
* @param extract -> Number of records to extract
* @return array with information (nul if empty)
*/
public function userListHistory($start = NULL, $extract = NULL)
{
$lang = new lang();
if ( !is_null($start) and !is_null($extract) ) {
$limit = " LIMIT $start, $extract";
} else $limit = NULL;
$user_id = $_SESSION['user']->information_user->userid;
$result = $this->listHistoryByClause($start,$extract, "h.user_id='$user_id'");
$time = $lang->userGetTimeFormat();
$date = $lang->userGetDateFormat();
foreach ( $result as $key => $value )
{
$result[$key]->date = date("$date $time" , $result[$key]->date);
}
return $result;
} // End of userListHistory
/**
* @brief Get number of all history records for the current user
* @param None
* @return number of history records registered for the user
*
* Get the total of all actions recorded in the history list for the current user.<br />
* This value is got the first time from the database (generating a SQL request) and is then stocked in a cache variable, so, other calls to this method won't generate another SQL request.
*/
public function userCountHistoryRecords()
{
// Try to get the value from the cache
if( !is_null($this->history_records) ) {
return $this->history_records;
}
$user_id = $_SESSION['user']->information_user->userid;
$req = "SELECT COUNT(id) AS total FROM history WHERE user_id='$user_id'";
$result = $_SESSION['database']->fetchObject($req);
$this->history_records = $result[0]->total;
return $this->history_records;
}
/**
* @brief Get number of history records pages, regarding the total count of records and the count of items to be shown per page
* @param None
* @return number of pages availables
*
* Calculate the total pages needed to show all the history actions records for the current user.
*/
public function userCountTotalPages()
{
$items_count = $this->userCountHistoryRecords();
$pages_count = intval($items_count / RECORD_BY_PAGE);
if ( ($items_count % RECORD_BY_PAGE) != 0 ) {
$pages_count++;
}
return $pages_count;
}
} // End of class