[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] property inc/class.boentity.inc.php inc/class.h...
From: |
Sigurd Nes |
Subject: |
[Phpgroupware-cvs] property inc/class.boentity.inc.php inc/class.h... |
Date: |
Sun, 05 Feb 2006 20:07:35 +0000 |
CVSROOT: /sources/phpgroupware
Module name: property
Branch:
Changes by: Sigurd Nes <address@hidden> 06/02/05 20:07:35
Modified files:
inc : class.boentity.inc.php class.historylog.inc.php
class.soadmin_entity.inc.php
class.soentity.inc.php
class.uiadmin_entity.inc.php
class.uientity.inc.php
setup : setup.inc.php tables_current.inc.php
tables_update.inc.php
templates/base : admin_entity.xsl attributes_form.xsl entity.xsl
templates/default: admin_entity.xsl attributes_form.xsl
entity.xsl
Log message:
Configurable history on custom attributes
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.boentity.inc.php.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.historylog.inc.php.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.soadmin_entity.inc.php.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.soentity.inc.php.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.uiadmin_entity.inc.php.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.uientity.inc.php.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/setup/setup.inc.php.diff?tr1=1.26&tr2=1.27&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/setup/tables_current.inc.php.diff?tr1=1.39&tr2=1.40&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/setup/tables_update.inc.php.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/base/admin_entity.xsl.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/base/attributes_form.xsl.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/base/entity.xsl.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/default/admin_entity.xsl.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/default/attributes_form.xsl.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/default/entity.xsl.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: property/inc/class.boentity.inc.php
diff -u property/inc/class.boentity.inc.php:1.15
property/inc/class.boentity.inc.php:1.16
--- property/inc/class.boentity.inc.php:1.15 Fri Feb 3 12:05:49 2006
+++ property/inc/class.boentity.inc.php Sun Feb 5 20:07:35 2006
@@ -8,7 +8,7 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage entity
- * @version $Id: class.boentity.inc.php,v 1.15 2006/02/03 12:05:49
sigurdne Exp $
+ * @version $Id: class.boentity.inc.php,v 1.16 2006/02/05 20:07:35
sigurdne Exp $
*/
/**
@@ -56,8 +56,6 @@
function boentity($session=False)
{
$this->currentapp =
$GLOBALS['phpgw_info']['flags']['currentapp'];
- $this->so =
CreateObject($this->currentapp.'.soentity');
-
$this->solocation =
CreateObject($this->currentapp.'.solocation');
$this->bocommon =
CreateObject($this->currentapp.'.bocommon');
$this->vfs =
CreateObject('phpgwapi.vfs');
@@ -83,7 +81,7 @@
$end_date =
get_var('end_date',array('POST','GET'));
$this->soadmin_entity =
CreateObject($this->currentapp.'.soadmin_entity',$entity_id,$cat_id);
-
+ $this->so =
CreateObject($this->currentapp.'.soentity',$entity_id,$cat_id);
$this->category_name =
$this->soadmin_entity->category_name;
if ($start)
@@ -632,5 +630,22 @@
return $this->so->generate_id($data);
}
}
+
+ function read_attrib_history($data)
+ {
+ // _debug_array($data);
+ $historylog =
CreateObject($this->currentapp.'.historylog','entity_' . $data['entity_id']
.'_' . $data['cat_id']);
+ $history_values =
$historylog->return_array(array(),array('SO'),'history_timestamp','ASC',$data['id'],$data['attrib_id']);
+ $this->total_records = count($history_values);
+ // _debug_array($history_values);
+ return $history_values;
+ }
+
+ function delete_history_item($data)
+ {
+ $historylog =
CreateObject($this->currentapp.'.historylog','entity_' . $data['entity_id']
.'_' . $data['cat_id']);
+ $historylog->delete_single_record($data['history_id']);
+ }
+
}
-?>
\ No newline at end of file
+?>
Index: property/inc/class.historylog.inc.php
diff -u property/inc/class.historylog.inc.php:1.8
property/inc/class.historylog.inc.php:1.9
--- property/inc/class.historylog.inc.php:1.8 Fri Feb 3 12:05:49 2006
+++ property/inc/class.historylog.inc.php Sun Feb 5 20:07:35 2006
@@ -8,7 +8,7 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage core
- * @version $Id: class.historylog.inc.php,v 1.8 2006/02/03 12:05:49
sigurdne Exp $
+ * @version $Id: class.historylog.inc.php,v 1.9 2006/02/05 20:07:35
sigurdne Exp $
*/
/**
@@ -35,7 +35,16 @@
$appname =
$GLOBALS['phpgw_info']['flags']['currentapp'];
}
- switch($appname)
+ if(substr($appname,0,6)=='entity')
+ {
+ $selector = 'entity';
+ }
+ else
+ {
+ $selector = $appname;
+ }
+
+ switch($selector)
{
case 'request':
$this->table='fm_request_history';
@@ -52,31 +61,57 @@
case 'document':
$this->table='fm_document_history';
break;
+ case 'entity':
+ $this->table='fm_entity_history';
+ break;
}
-
$this->appname = $appname;
- $this->db = $GLOBALS['phpgw']->db;
+
+ // $this->db = $GLOBALS['phpgw']->db;
+ $this->db = CreateObject('phpgwapi.db');
+ $this->db->Host =
$GLOBALS['phpgw_info']['server']['db_host'];
+ $this->db->Type =
$GLOBALS['phpgw_info']['server']['db_type'];
+ $this->db->Database =
$GLOBALS['phpgw_info']['server']['db_name'];
+ $this->db->User =
$GLOBALS['phpgw_info']['server']['db_user'];
+ $this->db->Password =
$GLOBALS['phpgw_info']['server']['db_pass'];
}
- function delete($record_id)
+ function delete($record_id,$attrib_id='')
{
+ if($attrib_id)
+ {
+ $attrib_id_condition = "and
history_entity_attrib_id = $attrib_id";
+ }
+
$this->db->query("delete from $this->table where
history_record_id='$record_id' and "
- . "history_appname='" . $this->appname .
"'",__LINE__,__FILE__);
+ . "history_appname='" . $this->appname . "'
$attrib_id_condition",__LINE__,__FILE__);
}
- function add($status,$record_id,$new_value)
+ function delete_single_record($history_id)
+ {
+ $this->db->query("delete from $this->table where
history_id='$history_id'",__LINE__,__FILE__);
+ }
+
+
+ function add($status,$record_id,$new_value,$old_value
='',$attrib_id='')
{
+ if($attrib_id)
+ {
+ $attrib_id_field = ',history_entity_attrib_id';
+ $attrib_id_value = ",$attrib_id";
+ }
+
$this->db->query("insert into $this->table
(history_record_id,"
- .
"history_appname,history_owner,history_status,history_new_value,history_timestamp)
"
+ .
"history_appname,history_owner,history_status,history_new_value,history_timestamp
$attrib_id_field) "
. "values ('$record_id','" . $this->appname .
"','"
. $GLOBALS['phpgw_info']['user']['account_id']
. "','$status','"
. $this->db->db_addslashes($new_value) . "','"
. $this->db->to_timestamp(time())
- . "')",__LINE__,__FILE__);
+ . "' $attrib_id_value )",__LINE__,__FILE__);
}
// array $filter_out
- function return_array($filter_out,$only_show,$_orderby =
'',$sort = '', $record_id)
+ function return_array($filter_out,$only_show,$_orderby =
'',$sort = '', $record_id,$attrib_id='')
{
if (! $sort || ! $_orderby)
@@ -98,6 +133,11 @@
$filter = ' and ' . implode(' and ',$filtered);
}
+ if($attrib_id)
+ {
+ $filter .= "and history_entity_attrib_id =
$attrib_id";
+ }
+
while (is_array($only_show) && list(,$_filter) =
each($only_show))
{
$_only_show[] = "history_status='$_filter'";
Index: property/inc/class.soadmin_entity.inc.php
diff -u property/inc/class.soadmin_entity.inc.php:1.12
property/inc/class.soadmin_entity.inc.php:1.13
--- property/inc/class.soadmin_entity.inc.php:1.12 Mon Jan 30 22:14:19 2006
+++ property/inc/class.soadmin_entity.inc.php Sun Feb 5 20:07:35 2006
@@ -8,7 +8,7 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage admin
- * @version $Id: class.soadmin_entity.inc.php,v 1.12 2006/01/30 22:14:19
sigurdne Exp $
+ * @version $Id: class.soadmin_entity.inc.php,v 1.13 2006/02/05 20:07:35
sigurdne Exp $
*/
/**
@@ -812,6 +812,7 @@
$attrib['lookup_form']
= $this->db->f('lookup_form');
$attrib['list']
= $this->db->f('list');
$attrib['search']
= $this->db->f('search');
+ $attrib['history']
= $this->db->f('history');
if($this->db->f('datatype')=='R' ||
$this->db->f('datatype')=='CH' || $this->db->f('datatype')=='LB')
{
$attrib['choice'] =
$this->read_attrib_choice($entity_id,$cat_id,$id);
@@ -861,6 +862,7 @@
$attrib['statustext'],
$attrib['search'],
$attrib['list'],
+ $attrib['history'],
$attrib_sort,
$attrib['column_info']['type'],
$attrib['column_info']['precision'],
@@ -873,7 +875,7 @@
$this->db->transaction_begin();
- $this->db->query("INSERT INTO fm_entity_attribute
(entity_id,cat_id,id,column_name, input_text,
statustext,search,list,attrib_sort,
datatype,precision_,scale,default_value,nullable) "
+ $this->db->query("INSERT INTO fm_entity_attribute
(entity_id,cat_id,id,column_name, input_text,
statustext,search,list,history,attrib_sort,
datatype,precision_,scale,default_value,nullable) "
. "VALUES ($values)",__LINE__,__FILE__);
$receipt['id']= $attrib['id'];
@@ -947,8 +949,9 @@
$value_set=array(
'input_text' =>
$attrib['input_text'],
'statustext' =>
$attrib['statustext'],
- 'search' =>
$attrib['search'],
- 'list' =>
$attrib['list'],
+ 'search' => $attrib['search'],
+ 'list' => $attrib['list'],
+ 'history' => $attrib['history'],
);
$value_set =
$this->bocommon->validate_db_update($value_set);
Index: property/inc/class.soentity.inc.php
diff -u property/inc/class.soentity.inc.php:1.13
property/inc/class.soentity.inc.php:1.14
--- property/inc/class.soentity.inc.php:1.13 Wed Feb 1 13:39:10 2006
+++ property/inc/class.soentity.inc.php Sun Feb 5 20:07:35 2006
@@ -8,7 +8,7 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage entity
- * @version $Id: class.soentity.inc.php,v 1.13 2006/02/01 13:39:10
sigurdne Exp $
+ * @version $Id: class.soentity.inc.php,v 1.14 2006/02/05 20:07:35
sigurdne Exp $
*/
/**
@@ -18,7 +18,10 @@
class soentity
{
- function soentity()
+ var $entity_id;
+ var $cat_id;
+
+ function soentity($entity_id='',$cat_id='')
{
$this->currentapp =
$GLOBALS['phpgw_info']['flags']['currentapp'];
$this->account =
$GLOBALS['phpgw_info']['user']['account_id'];
@@ -26,9 +29,11 @@
$this->db = $this->bocommon->new_db();
$this->db2 = $this->bocommon->new_db();
- $this->join = $this->bocommon->join;
+ $this->join = $this->bocommon->join;
$this->left_join = $this->bocommon->left_join;
- $this->like = $this->bocommon->like;
+ $this->like = $this->bocommon->like;
+ $this->entity_id = $entity_id;
+ $this->cat_id = $cat_id;
}
function select_status_list($entity_id,$cat_id)
@@ -403,7 +408,8 @@
'input_text' =>
stripslashes($this->db->f('input_text')),
'statustext' =>
stripslashes($this->db->f('statustext')),
// 'statustext' => str_replace("\n","
",stripslashes($this->db->f('statustext'))),
- 'datatype' =>
$this->db->f('datatype')
+ 'datatype' =>
$this->db->f('datatype'),
+ 'history' =>
$this->db->f('history')
);
}
//_debug_array($entity);
@@ -617,6 +623,9 @@
$value_set[$column] = $value;
}
+//_debug_array($values_attribute);
+ $table = 'fm_entity_' . $entity_id .'_' . $cat_id;
+
if (isset($values_attribute) AND
is_array($values_attribute))
{
foreach($values_attribute as $entry)
@@ -625,18 +634,36 @@
{
$value_set[$entry['name']]
= $entry['value'];
}
+
+ if($entry['history'] == 1)
+ {
+ $this->db->query("select " .
$entry['name'] . " from $table WHERE id=" . $values['id'],__LINE__,__FILE__);
+ $this->db->next_record();
+ $old_value =
$this->db->f($entry['name']);
+ if($entry['value'] !=
$old_value)
+ {
+
$history_set[$entry['attrib_id']] = $entry['value'];
+ }
+ }
}
}
-
+//_debug_array($history_set);
$value_set =
$this->bocommon->validate_db_update($value_set);
- $table='fm_entity_' . $entity_id .'_' . $cat_id;
-
$this->db->transaction_begin();
$this->db->query("UPDATE $table set $value_set WHERE
id=" . $values['id'],__LINE__,__FILE__);
+ if (isset($history_set) AND is_array($history_set))
+ {
+ $historylog =
CreateObject($this->currentapp.'.historylog','entity_' . $entity_id .'_' .
$cat_id);
+ while (list($attrib_id,$new_value) =
each($history_set))
+ {
+
$historylog->add('SO',$values['id'],$new_value,False, $attrib_id);
+ }
+ }
+
$this->db->transaction_commit();
$receipt['message'][] = array('msg'=>lang('entity %1
has been edited',$values['num']));
Index: property/inc/class.uiadmin_entity.inc.php
diff -u property/inc/class.uiadmin_entity.inc.php:1.14
property/inc/class.uiadmin_entity.inc.php:1.15
--- property/inc/class.uiadmin_entity.inc.php:1.14 Fri Feb 3 12:05:49 2006
+++ property/inc/class.uiadmin_entity.inc.php Sun Feb 5 20:07:35 2006
@@ -10,7 +10,7 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage admin
- * @version $Id: class.uiadmin_entity.inc.php,v 1.14 2006/02/03 12:05:49
sigurdne Exp $
+ * @version $Id: class.uiadmin_entity.inc.php,v 1.15 2006/02/05 20:07:35
sigurdne Exp $
*/
/**
@@ -1224,6 +1224,9 @@
'lang_include_search' =>
lang('Include in search'),
'lang_include_search_statustext'=> lang('check
to show this attribute in location list'),
+ 'value_history' =>
$values['history'],
+ 'lang_history' => lang('history'),
+ 'lang_history_statustext'=> lang('Enable
history for this attribute'),
);
//_debug_array($values);
Index: property/inc/class.uientity.inc.php
diff -u property/inc/class.uientity.inc.php:1.17
property/inc/class.uientity.inc.php:1.18
--- property/inc/class.uientity.inc.php:1.17 Fri Feb 3 12:05:49 2006
+++ property/inc/class.uientity.inc.php Sun Feb 5 20:07:35 2006
@@ -8,7 +8,7 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage entity
- * @version $Id: class.uientity.inc.php,v 1.17 2006/02/03 12:05:49
sigurdne Exp $
+ * @version $Id: class.uientity.inc.php,v 1.18 2006/02/05 20:07:35
sigurdne Exp $
*/
/**
@@ -37,7 +37,8 @@
'view' => True,
'edit' => True,
'delete' => True,
- 'view_file' =>True
+ 'view_file' => True,
+ 'attrib_history'=> True
);
function uientity()
@@ -450,7 +451,6 @@
'lang_date_search' =>
lang('Date search'),
'overlib_source' =>
'./'.$this->currentapp.'/inc/overlib.js',
-
'links'
=> $links,
'allow_allrows'
=> false,
'start_record'
=> $this->start,
@@ -583,7 +583,7 @@
$location_code =
get_var('location_code',array('POST','GET'));
$values['descr'] =
get_var('descr',array('POST','GET'));
$p_entity_id =
get_var('p_entity_id',array('POST','GET'));
- $p_cat_id =
get_var('p_cat_id',array('POST','GET'));
+ $p_cat_id =
get_var('p_cat_id',array('POST','GET'));
$values['p'][$p_entity_id]['p_entity_id']
= $p_entity_id;
$values['p'][$p_entity_id]['p_cat_id']
= $p_cat_id;
$values['p'][$p_entity_id]['p_num']
= get_var('p_num',array('POST','GET'));
@@ -858,14 +858,14 @@
$project_link_data = array
(
'menuaction' =>
$this->currentapp.'.uiproject.edit',
- 'bypass' => true,
+ 'bypass' => true,
'location_code' =>
$values['location_code'],
- 'p_num' =>
$values['p_num'],
+ 'p_num' => $values['p_num'],
'p_entity_id' =>
$values['p_entity_id'],
- 'p_cat_id' =>
$values['p_cat_id'],
- 'tenant_id' =>
$values['tenant_id'],
- 'origin' => 'entity_' .
$this->entity_id . '_' . $this->cat_id,
- 'origin_id' => $id
+ 'p_cat_id' => $values['p_cat_id'],
+ 'tenant_id' => $values['tenant_id'],
+ 'origin' => 'entity_' .
$this->entity_id . '_' . $this->cat_id,
+ 'origin_id' => $id
);
//_debug_array($values['origin']);
@@ -891,6 +891,23 @@
}
}
+ for ($i=0;$i<count($values['attributes']);$i++)
+ {
+ if($values['attributes'][$i]['history']==1)
+ {
+ $link_history_data = array
+ (
+ 'menuaction' =>
$this->currentapp.'.uientity.attrib_history',
+ 'entity_id' =>
$this->entity_id,
+ 'cat_id' =>
$this->cat_id,
+ 'attrib_id' =>
$values['attributes'][$i]['attrib_id'],
+ 'id' => $id
+ );
+
+
$values['attributes'][$i]['link_history']=$GLOBALS['phpgw']->link('/index.php',$link_history_data);
+ }
+ }
+
$data = array
(
'start_project'
=> $category['start_project'],
@@ -947,7 +964,10 @@
'value_num'
=> $values['num'],
'error_flag'
=> $error_id,
'lang_done_statustext' =>
lang('Back to the list'),
- 'lang_save_statustext' =>
lang('Save the entity')
+ 'lang_save_statustext' =>
lang('Save the entity'),
+ 'lang_history' =>
lang('history'),
+ 'lang_history_help' =>
lang('history of this attribute'),
+ 'overlib_source' =>
'./'.$this->currentapp.'/inc/overlib.js',
);
$appname = $entity['name'];
@@ -1142,7 +1162,7 @@
'files'
=> $values['files'],
'lang_files'
=> lang('files'),
'lang_filename'
=> lang('Filename'),
- 'lang_view_file_statustext' =>
lang('Klick to view file'),
+ 'lang_view_file_statustext'
=> lang('Klick to view file'),
'value_origin'
=> $values['origin'],
'value_origin_type'
=> $origin,
@@ -1164,14 +1184,14 @@
'edit_action'
=> $GLOBALS['phpgw']->link('/index.php',$link_data),
'done_action'
=>
$GLOBALS['phpgw']->link('/index.php','menuaction='.$this->currentapp.'.uientity.index&entity_id='
. $this->entity_id . '&cat_id='. $this->cat_id),
'lang_category'
=> lang('category'),
- 'lang_edit'
=> lang('Edit'),
- 'lang_done'
=> lang('done'),
- 'lang_id'
=> lang('ID'),
- 'value_id' =>
$values['id'],
- 'value_num' =>
$values['num'],
+ 'lang_edit'
=> lang('Edit'),
+ 'lang_done'
=> lang('done'),
+ 'lang_id'
=> lang('ID'),
+ 'value_id'
=> $values['id'],
+ 'value_num'
=> $values['num'],
'error_flag'
=> $error_id,
- 'lang_done_statustext' =>
lang('Back to the list'),
- 'lang_save_statustext' =>
lang('Edit the entity'),
+ 'lang_done_statustext'
=> lang('Back to the list'),
+ 'lang_save_statustext'
=> lang('Edit the entity'),
'status_list'
=> $this->bo->select_status_list('select',$values['status'])
);
@@ -1180,5 +1200,85 @@
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('view' => $data));
// $GLOBALS['phpgw']->xslttpl->pp();
}
+
+ function attrib_history()
+ {
+
$GLOBALS['phpgw']->xslttpl->add_file(array('entity','nextmatchs'));
+ $GLOBALS['phpgw_info']['flags']['noframework'] = True;
+
+ $data_lookup= array(
+ 'id' =>
get_var('id',array('POST','GET')),
+ 'entity_id' =>
get_var('entity_id',array('POST','GET')),
+ 'cat_id' =>
get_var('cat_id',array('POST','GET')),
+ 'attrib_id' =>
get_var('attrib_id',array('POST','GET'))
+ );
+
+ $delete = get_var('delete',array('POST','GET'));
+ if ($delete)
+ {
+ $data_lookup['history_id'] =
get_var('history_id',array('POST','GET'));
+ $this->bo->delete_history_item($data_lookup);
+ }
+
+ $values = $this->bo->read_attrib_history($data_lookup);
+ $dateformat =
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
+
+ while (is_array($values) && list(,$entry) =
each($values))
+ {
+
+ $link_delete_history_data = array
+ (
+ 'menuaction' =>
$this->currentapp.'.uientity.attrib_history',
+ 'entity_id' =>
$data_lookup['entity_id'],
+ 'cat_id' =>
$data_lookup['cat_id'],
+ 'id' =>
$data_lookup['id'],
+ 'attrib_id' =>
$data_lookup['attrib_id'],
+ 'history_id' => $entry['id'],
+ 'delete' => true
+ );
+
+
+ $content[] = array
+ (
+ 'id' =>
$entry['id'],
+ 'value' =>
$entry['new_value'],
+ 'time_created' =>
$GLOBALS['phpgw']->common->show_date($tickets[$i]['entry_date'],$dateformat),
+ 'link_delete' =>
$GLOBALS['phpgw']->link('/index.php',$link_delete_history_data),
+ 'lang_delete_statustext' =>
lang('delete the item'),
+ 'text_delete' =>
lang('delete'),
+ );
+ }
+
+
+ $table_header = array
+ (
+ 'lang_value' => lang('value'),
+ 'lang_time_created' => lang('time created'),
+ 'lang_delete' => lang('delete')
+ );
+
+ $data = array
+ (
+ 'allow_allrows' => false,
+ 'start_record' => $this->start,
+ 'record_limit' =>
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'],
+ 'num_records' =>
count($values),
+ 'all_records' =>
$this->bo->total_records,
+ 'link_url' =>
$GLOBALS['phpgw']->link('/index.php',$link_data),
+ 'img_path' =>
$GLOBALS['phpgw']->common->get_image_path('phpgwapi','default'),
+
+ 'values' => $content,
+ 'table_header' =>
$table_header,
+
+ );
+
+//_debug_array($data);
+
+ $appname =
lang('entity');
+ $function_msg =
lang('attribute history');
+
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
+
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('attrib_history' => $data));
+ }
}
?>
Index: property/setup/setup.inc.php
diff -u property/setup/setup.inc.php:1.26 property/setup/setup.inc.php:1.27
--- property/setup/setup.inc.php:1.26 Fri Feb 3 12:05:49 2006
+++ property/setup/setup.inc.php Sun Feb 5 20:07:35 2006
@@ -8,12 +8,12 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage setup
- * @version $Id: setup.inc.php,v 1.26 2006/02/03 12:05:49 sigurdne Exp $
+ * @version $Id: setup.inc.php,v 1.27 2006/02/05 20:07:35 sigurdne Exp $
*/
$setup_info['property']['name'] = 'property';
$setup_info['property']['title'] = 'Property';
- $setup_info['property']['version'] = '0.9.17.511';
+ $setup_info['property']['version'] = '0.9.17.512';
$setup_info['property']['app_order'] = 8;
$setup_info['property']['enable'] = 1;
@@ -167,6 +167,7 @@
'fm_entity_category',
'fm_entity_choice',
'fm_entity_lookup',
+ 'fm_entity_history',
'fm_entity_1_1',
'fm_entity_1_2',
'fm_entity_1_3',
Index: property/setup/tables_current.inc.php
diff -u property/setup/tables_current.inc.php:1.39
property/setup/tables_current.inc.php:1.40
--- property/setup/tables_current.inc.php:1.39 Sat Jan 21 15:26:25 2006
+++ property/setup/tables_current.inc.php Sun Feb 5 20:07:35 2006
@@ -8,7 +8,7 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage setup
- * @version $Id: tables_current.inc.php,v 1.39 2006/01/21 15:26:25
sigurdne Exp $
+ * @version $Id: tables_current.inc.php,v 1.40 2006/02/05 20:07:35
sigurdne Exp $
*/
$phpgw_baseline = array(
@@ -1545,6 +1545,7 @@
'statustext' => array('type' =>
'varchar','precision' => '150','nullable' => False),
'datatype' => array('type' =>
'varchar','precision' => '10','nullable' => False),
'search' => array('type' => 'int','precision'
=> '2','nullable' => True),
+ 'history' => array('type' => 'int','precision'
=> '2','nullable' => True),
'list' => array('type' => 'int','precision' =>
'4','nullable' => True),
'attrib_sort' => array('type' =>
'int','precision' => '4','nullable' => True),
'size' => array('type' => 'int','precision' =>
'4','nullable' => True),
@@ -1601,6 +1602,22 @@
'ix' => array(),
'uc' => array()
),
+ 'fm_entity_history' => array(
+ 'fd' => array(
+ 'history_id' => array('type' =>
'auto','precision' => '4','nullable' => False),
+ 'history_record_id' => array('type' =>
'int','precision' => '4','nullable' => False),
+ 'history_appname' => array('type' =>
'varchar','precision' => '64','nullable' => False),
+ 'history_entity_attrib_id' => array('type' =>
'int','precision' => '4','nullable' => False),
+ 'history_owner' => array('type' =>
'int','precision' => '4','nullable' => False),
+ 'history_status' => array('type' =>
'char','precision' => '2','nullable' => False),
+ 'history_new_value' => array('type' =>
'text','nullable' => False),
+ 'history_timestamp' => array('type' =>
'timestamp','nullable' => False,'default' => 'current_timestamp')
+ ),
+ 'pk' => array('history_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ ),
'fm_origin' => array(
'fd' => array(
'origin' => array('type' =>
'varchar','precision' => '12','nullable' => False),
Index: property/setup/tables_update.inc.php
diff -u property/setup/tables_update.inc.php:1.20
property/setup/tables_update.inc.php:1.21
--- property/setup/tables_update.inc.php:1.20 Wed Jan 25 18:19:12 2006
+++ property/setup/tables_update.inc.php Sun Feb 5 20:07:35 2006
@@ -8,7 +8,7 @@
* @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
* @package property
* @subpackage setup
- * @version $Id: tables_update.inc.php,v 1.20 2006/01/25 18:19:12
sigurdne Exp $
+ * @version $Id: tables_update.inc.php,v 1.21 2006/02/05 20:07:35
sigurdne Exp $
*/
/**
@@ -770,4 +770,36 @@
return $GLOBALS['setup_info']['property']['currentver'];
}
+ /**
+ * Update property version from 0.9.17.511 to 0.9.17.512
+ */
+
+ $test[] = '0.9.17.511';
+ function property_upgrade0_9_17_511()
+ {
+
$GLOBALS['phpgw_setup']->oProc->AddColumn('fm_entity_attribute','history',array('type'
=> 'int','precision' => 2,'nullable' => True));
+
+ $GLOBALS['phpgw_setup']->oProc->CreateTable(
+ 'fm_entity_history', array(
+ 'fd' => array(
+ 'history_id' => array('type' =>
'auto','precision' => '4','nullable' => False),
+ 'history_record_id' => array('type' =>
'int','precision' => '4','nullable' => False),
+ 'history_appname' => array('type' =>
'varchar','precision' => '64','nullable' => False),
+ 'history_entity_attrib_id' =>
array('type' => 'int','precision' => '4','nullable' => False),
+ 'history_owner' => array('type' =>
'int','precision' => '4','nullable' => False),
+ 'history_status' => array('type' =>
'char','precision' => '2','nullable' => False),
+ 'history_new_value' => array('type' =>
'text','nullable' => False),
+ 'history_timestamp' => array('type' =>
'timestamp','nullable' => False,'default' => 'current_timestamp')
+ ),
+ 'pk' => array('history_id'),
+ 'fk' => array(),
+ 'ix' => array(),
+ 'uc' => array()
+ )
+ );
+
+ $GLOBALS['setup_info']['property']['currentver'] = '0.9.17.512';
+ return $GLOBALS['setup_info']['property']['currentver'];
+ }
+
?>
Index: property/templates/base/admin_entity.xsl
diff -u property/templates/base/admin_entity.xsl:1.4
property/templates/base/admin_entity.xsl:1.5
--- property/templates/base/admin_entity.xsl:1.4 Fri Feb 3 12:05:49 2006
+++ property/templates/base/admin_entity.xsl Sun Feb 5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: admin_entity.xsl,v 1.4 2006/02/03 12:05:49 sigurdne Exp $ -->
+<!-- $Id: admin_entity.xsl,v 1.5 2006/02/05 20:07:35 sigurdne Exp $ -->
<xsl:template name="app_data">
<xsl:choose>
@@ -1250,6 +1250,34 @@
</xsl:choose>
</td>
</tr>
+ <tr>
+ <td>
+ <xsl:value-of select="lang_history"/>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when
test="value_history = 1">
+ <input
type="checkbox" name="values[history]" value="1" checked="checked"
onMouseout="window.status='';return true;">
+
<xsl:attribute name="onMouseover">
+
<xsl:text>window.status='</xsl:text>
+
<xsl:value-of select="lang_history_statustext"/>
+
<xsl:text>'; return true;</xsl:text>
+
</xsl:attribute>
+ </input>
+ </xsl:when>
+ <xsl:otherwise>
+ <input
type="checkbox" name="values[history]" value="1"
onMouseout="window.status='';return true;">
+
<xsl:attribute name="onMouseover">
+
<xsl:text>window.status='</xsl:text>
+
<xsl:value-of select="lang_history_statustext"/>
+
<xsl:text>'; return true;</xsl:text>
+
</xsl:attribute>
+ </input>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+
<xsl:choose>
<xsl:when test="multiple_choice != ''">
<tr>
Index: property/templates/base/attributes_form.xsl
diff -u property/templates/base/attributes_form.xsl:1.1
property/templates/base/attributes_form.xsl:1.2
--- property/templates/base/attributes_form.xsl:1.1 Mon Jan 17 10:03:18 2005
+++ property/templates/base/attributes_form.xsl Sun Feb 5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: attributes_form.xsl,v 1.1 2005/01/17 10:03:18 sigurdne Exp $ -->
+<!-- $Id: attributes_form.xsl,v 1.2 2006/02/05 20:07:35 sigurdne Exp $ -->
<xsl:template name="attributes_form">
<xsl:apply-templates select="attributes_values"/>
@@ -34,6 +34,8 @@
<xsl:when test="name!=''">
<input type="hidden"
name="values_attribute[{counter}][name]" value="{name}"></input>
<input type="hidden"
name="values_attribute[{counter}][datatype]" value="{datatype}"></input>
+ <input type="hidden"
name="values_attribute[{counter}][history]" value="{history}"></input>
+ <input type="hidden"
name="values_attribute[{counter}][attrib_id]" value="{attrib_id}"></input>
<xsl:choose>
<xsl:when
test="datatype='R'">
<xsl:call-template name="choice"/>
@@ -124,6 +126,19 @@
</input>
</xsl:otherwise>
</xsl:choose>
+ <xsl:choose>
+ <xsl:when
test="history=1">
+
<xsl:variable name="link_history"><xsl:value-of
select="link_history"/></xsl:variable>
+
<xsl:variable name="lang_history_help"><xsl:value-of
select="//lang_history_help"/></xsl:variable>
+
<xsl:variable name="lang_history"><xsl:value-of
select="//lang_history"/></xsl:variable>
+ <a
href="javascript:var
w=window.open('{$link_history}','','width=550,height=400,scrollbars')"
+
onMouseOver="overlib('{$lang_history_help}', CAPTION, '{$lang_history}')"
+
onMouseOut="nd()">
+
<xsl:value-of select="//lang_history"/></a>
+
+ <!--<a
href="{link_history}" target = '_blank'><xsl:value-of
select="//lang_history"/></a>-->
+ </xsl:when>
+ </xsl:choose>
</xsl:when>
</xsl:choose>
</td>
Index: property/templates/base/entity.xsl
diff -u property/templates/base/entity.xsl:1.4
property/templates/base/entity.xsl:1.5
--- property/templates/base/entity.xsl:1.4 Wed Nov 9 13:09:23 2005
+++ property/templates/base/entity.xsl Sun Feb 5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: entity.xsl,v 1.4 2005/11/09 13:09:23 sigurdne Exp $ -->
+<!-- $Id: entity.xsl,v 1.5 2006/02/05 20:07:35 sigurdne Exp $ -->
<xsl:template name="app_data">
<xsl:choose>
@@ -11,6 +11,9 @@
<xsl:when test="empty">
<xsl:apply-templates select="empty"/>
</xsl:when>
+ <xsl:when test="attrib_history">
+ <xsl:apply-templates select="attrib_history"/>
+ </xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="list"/>
</xsl:otherwise>
@@ -188,6 +191,10 @@
<!-- add / edit -->
<xsl:template match="edit">
+ <div id="overDiv" style="position:absolute;
visibility:hide;z-index:1;"></div>
+ <xsl:variable name="overlib_source"><xsl:value-of
select="overlib_source"/></xsl:variable>
+ <SCRIPT LANGUAGE="JavaScript" SRC="{$overlib_source}"></SCRIPT>
+
<xsl:variable name="dateformat_source"><xsl:value-of
select="dateformat_source"/></xsl:variable>
<SCRIPT LANGUAGE="JavaScript"
SRC="{$dateformat_source}"></SCRIPT>
@@ -667,3 +674,75 @@
</td>
</tr>
</xsl:template>
+
+<!-- attrib_history -->
+ <xsl:template match="attrib_history">
+ <table width="100%" cellpadding="2" cellspacing="2"
align="center">
+ <xsl:choose>
+ <xsl:when test="msgbox_data != ''">
+ <tr>
+ <td align="left" colspan="3">
+ <xsl:call-template
name="msgbox"/>
+ </td>
+ </tr>
+ </xsl:when>
+ </xsl:choose>
+ <tr>
+ <td colspan="3" width="100%">
+ <xsl:call-template name="nextmatchs"/>
+ </td>
+ </tr>
+ </table>
+ <table width="100%" cellpadding="2" cellspacing="2"
align="center">
+ <xsl:apply-templates select="table_header"/>
+ <xsl:apply-templates select="values"/>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="table_header">
+ <xsl:variable name="sort_time_created"
select="sort_time_created"/>
+ <xsl:variable name="sort_value" select="sort_value"/>
+
+ <tr class="th">
+ <td width="40%">
+ <a href="{$sort_value}"
class="th_text"><xsl:value-of select="lang_value"/></a>
+ </td>
+ <td width="10%" align="center">
+ <a href="{$sort_time_created}"
class="th_text"><xsl:value-of select="lang_time_created"/></a>
+ </td>
+ <td width="5%" align="center">
+ <xsl:value-of select="lang_delete"/>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="values">
+ <xsl:variable name="lang_delete_statustext"><xsl:value-of
select="lang_delete_statustext"/></xsl:variable>
+ <tr>
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="@class">
+ <xsl:value-of
select="@class"/>
+ </xsl:when>
+ <xsl:when test="position() mod
2 = 0">
+
<xsl:text>row_off</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+
<xsl:text>row_on</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <td align="left">
+ <xsl:value-of select="value"/>
+ </td>
+ <td align="left">
+ <xsl:value-of select="time_created"/>
+ </td>
+ <td align="center">
+ <xsl:variable
name="link_delete"><xsl:value-of select="link_delete"/></xsl:variable>
+ <a href="{$link_delete}"
onMouseover="window.status='{$lang_delete_statustext}';return true;"
onMouseout="window.status='';return true;"><xsl:value-of
select="text_delete"/></a>
+ </td>
+ </tr>
+ </xsl:template>
+
Index: property/templates/default/admin_entity.xsl
diff -u property/templates/default/admin_entity.xsl:1.6
property/templates/default/admin_entity.xsl:1.7
--- property/templates/default/admin_entity.xsl:1.6 Fri Feb 3 12:05:49 2006
+++ property/templates/default/admin_entity.xsl Sun Feb 5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: admin_entity.xsl,v 1.6 2006/02/03 12:05:49 sigurdne Exp $ -->
+<!-- $Id: admin_entity.xsl,v 1.7 2006/02/05 20:07:35 sigurdne Exp $ -->
<xsl:template name="app_data">
<xsl:choose>
@@ -1250,6 +1250,34 @@
</xsl:choose>
</td>
</tr>
+ <tr>
+ <td>
+ <xsl:value-of select="lang_history"/>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when
test="value_history = 1">
+ <input
type="checkbox" name="values[history]" value="1" checked="checked"
onMouseout="window.status='';return true;">
+
<xsl:attribute name="onMouseover">
+
<xsl:text>window.status='</xsl:text>
+
<xsl:value-of select="lang_history_statustext"/>
+
<xsl:text>'; return true;</xsl:text>
+
</xsl:attribute>
+ </input>
+ </xsl:when>
+ <xsl:otherwise>
+ <input
type="checkbox" name="values[history]" value="1"
onMouseout="window.status='';return true;">
+
<xsl:attribute name="onMouseover">
+
<xsl:text>window.status='</xsl:text>
+
<xsl:value-of select="lang_history_statustext"/>
+
<xsl:text>'; return true;</xsl:text>
+
</xsl:attribute>
+ </input>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+
<xsl:choose>
<xsl:when test="multiple_choice != ''">
<tr>
Index: property/templates/default/attributes_form.xsl
diff -u property/templates/default/attributes_form.xsl:1.4
property/templates/default/attributes_form.xsl:1.5
--- property/templates/default/attributes_form.xsl:1.4 Thu Jan 13 16:52:48 2005
+++ property/templates/default/attributes_form.xsl Sun Feb 5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: attributes_form.xsl,v 1.4 2005/01/13 16:52:48 ceb Exp $ -->
+<!-- $Id: attributes_form.xsl,v 1.5 2006/02/05 20:07:35 sigurdne Exp $ -->
<xsl:template name="attributes_form">
<xsl:apply-templates select="attributes_values"/>
@@ -34,6 +34,8 @@
<xsl:when test="name!=''">
<input type="hidden"
name="values_attribute[{counter}][name]" value="{name}"></input>
<input type="hidden"
name="values_attribute[{counter}][datatype]" value="{datatype}"></input>
+ <input type="hidden"
name="values_attribute[{counter}][history]" value="{history}"></input>
+ <input type="hidden"
name="values_attribute[{counter}][attrib_id]" value="{attrib_id}"></input>
<xsl:choose>
<xsl:when
test="datatype='R'">
<xsl:call-template name="choice"/>
@@ -124,6 +126,19 @@
</input>
</xsl:otherwise>
</xsl:choose>
+ <xsl:choose>
+ <xsl:when
test="history=1">
+
<xsl:variable name="link_history"><xsl:value-of
select="link_history"/></xsl:variable>
+
<xsl:variable name="lang_history_help"><xsl:value-of
select="//lang_history_help"/></xsl:variable>
+
<xsl:variable name="lang_history"><xsl:value-of
select="//lang_history"/></xsl:variable>
+ <a
href="javascript:var
w=window.open('{$link_history}','','width=550,height=400,scrollbars')"
+
onMouseOver="overlib('{$lang_history_help}', CAPTION, '{$lang_history}')"
+
onMouseOut="nd()">
+
<xsl:value-of select="//lang_history"/></a>
+
+ <!--<a
href="{link_history}" target = '_blank'><xsl:value-of
select="//lang_history"/></a>-->
+ </xsl:when>
+ </xsl:choose>
</xsl:when>
</xsl:choose>
</td>
Index: property/templates/default/entity.xsl
diff -u property/templates/default/entity.xsl:1.6
property/templates/default/entity.xsl:1.7
--- property/templates/default/entity.xsl:1.6 Wed Nov 9 13:09:23 2005
+++ property/templates/default/entity.xsl Sun Feb 5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: entity.xsl,v 1.6 2005/11/09 13:09:23 sigurdne Exp $ -->
+<!-- $Id: entity.xsl,v 1.7 2006/02/05 20:07:35 sigurdne Exp $ -->
<xsl:template name="app_data">
<xsl:choose>
@@ -11,6 +11,9 @@
<xsl:when test="empty">
<xsl:apply-templates select="empty"/>
</xsl:when>
+ <xsl:when test="attrib_history">
+ <xsl:apply-templates select="attrib_history"/>
+ </xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="list"/>
</xsl:otherwise>
@@ -188,6 +191,10 @@
<!-- add / edit -->
<xsl:template match="edit">
+ <div id="overDiv" style="position:absolute;
visibility:hide;z-index:1;"></div>
+ <xsl:variable name="overlib_source"><xsl:value-of
select="overlib_source"/></xsl:variable>
+ <SCRIPT LANGUAGE="JavaScript" SRC="{$overlib_source}"></SCRIPT>
+
<xsl:variable name="dateformat_source"><xsl:value-of
select="dateformat_source"/></xsl:variable>
<SCRIPT LANGUAGE="JavaScript"
SRC="{$dateformat_source}"></SCRIPT>
@@ -667,3 +674,75 @@
</td>
</tr>
</xsl:template>
+
+<!-- attrib_history -->
+ <xsl:template match="attrib_history">
+ <table width="100%" cellpadding="2" cellspacing="2"
align="center">
+ <xsl:choose>
+ <xsl:when test="msgbox_data != ''">
+ <tr>
+ <td align="left" colspan="3">
+ <xsl:call-template
name="msgbox"/>
+ </td>
+ </tr>
+ </xsl:when>
+ </xsl:choose>
+ <tr>
+ <td colspan="3" width="100%">
+ <xsl:call-template name="nextmatchs"/>
+ </td>
+ </tr>
+ </table>
+ <table width="100%" cellpadding="2" cellspacing="2"
align="center">
+ <xsl:apply-templates select="table_header"/>
+ <xsl:apply-templates select="values"/>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="table_header">
+ <xsl:variable name="sort_time_created"
select="sort_time_created"/>
+ <xsl:variable name="sort_value" select="sort_value"/>
+
+ <tr class="th">
+ <td width="40%">
+ <a href="{$sort_value}"
class="th_text"><xsl:value-of select="lang_value"/></a>
+ </td>
+ <td width="10%" align="center">
+ <a href="{$sort_time_created}"
class="th_text"><xsl:value-of select="lang_time_created"/></a>
+ </td>
+ <td width="5%" align="center">
+ <xsl:value-of select="lang_delete"/>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="values">
+ <xsl:variable name="lang_delete_statustext"><xsl:value-of
select="lang_delete_statustext"/></xsl:variable>
+ <tr>
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="@class">
+ <xsl:value-of
select="@class"/>
+ </xsl:when>
+ <xsl:when test="position() mod
2 = 0">
+
<xsl:text>row_off</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+
<xsl:text>row_on</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <td align="left">
+ <xsl:value-of select="value"/>
+ </td>
+ <td align="left">
+ <xsl:value-of select="time_created"/>
+ </td>
+ <td align="center">
+ <xsl:variable
name="link_delete"><xsl:value-of select="link_delete"/></xsl:variable>
+ <a href="{$link_delete}"
onMouseover="window.status='{$lang_delete_statustext}';return true;"
onMouseout="window.status='';return true;"><xsl:value-of
select="text_delete"/></a>
+ </td>
+ </tr>
+ </xsl:template>
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] property inc/class.boentity.inc.php inc/class.h...,
Sigurd Nes <=