mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-24 08:53:37 +01:00
c85d34c0fe
- phpgw_accounts --> egw_accounts - phpgw_acl --> egw_acl - phpgw_log(_msg) --> egw_log(_msg) - phpgw_config --> egw_config - phpgw_applications --> egw_applications This requires code-changes in many apps. Quite often I was able to replace the db access, with calls to the appropreate classes.
174 lines
4.7 KiB
PHP
Executable File
174 lines
4.7 KiB
PHP
Executable File
<?php
|
|
/**************************************************************************\
|
|
* eGroupWare - solog *
|
|
* http://www.egroupware.org *
|
|
* This application written by Jerry Westrick <jerry@westrick.com> *
|
|
* -------------------------------------------- *
|
|
* Funding for this program was provided by http://www.checkwithmom.com *
|
|
* -------------------------------------------- *
|
|
* This program is free software; you can redistribute it and/or modify it *
|
|
* under the terms of the GNU General Public License as published by the *
|
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
|
* option) any later version. *
|
|
\**************************************************************************/
|
|
|
|
/* $Id$ */
|
|
|
|
class solog
|
|
{
|
|
var $db;
|
|
var $accounts_table = 'egw_accounts';
|
|
var $log_table = 'egw_log';
|
|
var $msg_table = 'egw_log_msg';
|
|
var $owner;
|
|
var $error_cols = '';
|
|
var $error_cols_e = '';
|
|
var $public_functions = array(
|
|
'get_error_cols' => True,
|
|
'get_error_cols_e' => True,
|
|
'get_error' => True,
|
|
'get_error_e' => True
|
|
);
|
|
|
|
function solog()
|
|
{
|
|
$this->db = clone($GLOBALS['egw']->db);
|
|
}
|
|
|
|
function get_error_cols()
|
|
{
|
|
if ($this->error_cols == '')
|
|
{
|
|
$this->error_cols = array();
|
|
|
|
/* fields from log table */
|
|
$clist = $this->db->metadata($this->log_table);
|
|
for ($i=0; $i<count($clist); $i++)
|
|
{
|
|
$name = $clist[$i]['name'];
|
|
$this->error_cols[$name] = array();
|
|
}
|
|
|
|
/* fields from msg table */
|
|
$clist = $this->db->metadata($this->msg_table);
|
|
for ($i=0; $i<count($clist); $i++)
|
|
{
|
|
$name = $clist[$i]['name'];
|
|
$this->error_cols[$name] = array();
|
|
}
|
|
}
|
|
return $this->error_cols;
|
|
}
|
|
|
|
function get_error_cols_e()
|
|
{
|
|
if ($this->task_cols_e == '')
|
|
{
|
|
/* Get Columns for Errors */
|
|
$this->error_cols_e = $this->get_error_cols();
|
|
|
|
/* Enhance with Columns from accounts-table */
|
|
$clist = $this->db->metadata($this->accounts_table);
|
|
for ($i=0; $i<count($clist); $i++)
|
|
{
|
|
$name = $clist[$i]['name'];
|
|
$this->error_cols_e[$name] = array();
|
|
}
|
|
}
|
|
return $this->error_cols_e;
|
|
}
|
|
|
|
function get_error_e($parms)
|
|
{
|
|
|
|
/* Fixed From */
|
|
if (!isset($parms['from']))
|
|
{
|
|
$parms['from'] = array($this->accounts_table);
|
|
}
|
|
else
|
|
{
|
|
$parms['from'][] = $this->accounts_table;
|
|
}
|
|
|
|
/* Fix Where */
|
|
if (!isset($parms['where']))
|
|
{
|
|
$parms['where'] = array("$this->log_table.log_user = $this->accounts_table.account_id");
|
|
}
|
|
else
|
|
{
|
|
$parms['where'][] = "$this->log_table.log_user = $this->accounts_table.account_id";
|
|
}
|
|
|
|
/* Fix Default Fields */
|
|
if (!isset($parms['fields']))
|
|
{
|
|
$parms['fields'] = $this->get_error_cols_e();
|
|
}
|
|
|
|
return $this->get_error($parms);
|
|
}
|
|
|
|
function get_no_errors()
|
|
{
|
|
/* Get max ErrorId */
|
|
$this->db->query("select count(*) as max_id from $this->log_table, $this->msg_table WHERE $this->log_table.log_id = $this->msg_table.log_msg_log_id",__LINE__,__FILE__);
|
|
|
|
return $this->db->next_record() ? $this->db->f('max_id') : 0;
|
|
}
|
|
|
|
function get_error($parms)
|
|
{
|
|
/* Get parameter values */
|
|
$from = $parms['from'];
|
|
$where = $parms['where'];
|
|
$orderby = $parms['orderby'];
|
|
$fields = $parms['fields'];
|
|
|
|
/* Build From_Clause */
|
|
$from_clause = "FROM $this->log_table , $this->msg_table ";
|
|
if (isset($from))
|
|
{
|
|
$from[] = $this->log_table;
|
|
$from[] = $this->msg_table;
|
|
$from_clause = 'FROM '.implode(', ' , $from).' ';
|
|
}
|
|
|
|
/* Build Where_Clause */
|
|
$where_clause = "WHERE $this->log_table.log_id = $this->msg_table.log_msg_log_id ";
|
|
if (isset($where))
|
|
{
|
|
$where[] = "$this->log_table.log_id = $this->msg_table.log_msg_log_id";
|
|
$where_clause = 'WHERE ' . implode(' AND ',$where) . ' ';
|
|
}
|
|
|
|
/* Build Order_By_Clause */
|
|
$orderby_clause = "ORDER BY $this->log_table.log_id, $this->msg_table.log_msg_seq_no ";
|
|
if (isset($orderby))
|
|
{
|
|
$orderby_clause = 'ORDER BY ' . implode(', ',$orderby);
|
|
}
|
|
|
|
/* If no Fields specified default to * */
|
|
if (!isset($fields))
|
|
{
|
|
$fields = $this->get_error_cols();
|
|
}
|
|
|
|
$rows = array();
|
|
|
|
$select = 'SELECT ' . implode(',',array_keys($fields)) . ' ' . $from_clause . $where_clause . $orderby_clause;
|
|
$this->db->query($select,__LINE__,__FILE__);
|
|
while($this->db->next_record())
|
|
{
|
|
foreach($fields as $fname => $fopt)
|
|
{
|
|
$this_row[$fname]['value'] = $this->db->f($fname);
|
|
}
|
|
$rows[] = $this_row;
|
|
}
|
|
return $rows;
|
|
}
|
|
}
|