. * */ defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Esta clase es la encargada de manejar el registro de eventos */ class SP_Log { static $numRows; /** * Obtener los eventos guardados. * * @param int $start con el número de registro desde el que empezar * @return false|array con el resultado de la consulta */ public static function getEvents($start) { $query = 'SELECT SQL_CALC_FOUND_ROWS ' . 'log_id,' . 'FROM_UNIXTIME(log_date) as date,' . 'log_action,' . 'log_login,' . 'log_ipAddress,' . 'log_description ' . 'FROM log ' . 'ORDER BY log_id DESC ' . 'LIMIT ' . $start . ', 50'; $queryRes = DB::getResults($query, __FUNCTION__, true); if ($queryRes === false) { return false; } $numRows = DB::getResults("SELECT FOUND_ROWS() as numRows", __FUNCTION__); self::$numRows = $numRows->numRows; return $queryRes; } /** * Limpiar el registro de eventos. * * @return bool con el resultado */ public static function clearEvents() { $query = 'TRUNCATE TABLE log'; $queryRes = DB::doQuery($query, __FUNCTION__); if ($queryRes === false) { return false; } $message['action'] = _('Vaciar Eventos'); $message['text'][] = _('Vaciar registro de eventos'); self::wrLogInfo($message); SP_Common::sendEmail($message); return true; } /** * Crear un nuevo registro en el registro de eventos. * * @param array $message con el nombre de la accióm y el texto del mensaje * @return bool */ public static function wrLogInfo($message) { if (!SP_Util::logIsEnabled() || !is_array($message)) { return false; } $login = (isset($_SESSION["ulogin"])) ? $_SESSION["ulogin"] : "-"; $userId = (isset($_SESSION['uid'])) ? $_SESSION['uid'] : 0; $action = strip_tags(utf8_encode($message['action'])); $description = (isset($message['text'])) ? strip_tags(utf8_encode(implode(';;', $message['text']))) : ''; if (defined('IS_INSTALLER') && IS_INSTALLER === 1) { error_log('Action: ' . $action . ' -- Description: ' . $description); } $query = "INSERT INTO log SET " . "log_date = UNIX_TIMESTAMP()," . "log_login = '" . DB::escape($login) . "'," . "log_userId = " . $userId . "," . "log_ipAddress = '" . DB::escape($_SERVER['REMOTE_ADDR']) . "'," . "log_action = '" . DB::escape($action) . "'," . "log_description = '" . DB::escape($description) . "'"; if (DB::doQuery($query, __FUNCTION__) === false) { return false; } } }