2005-02-03 17:42:20 +01:00
|
|
|
<?php
|
2005-11-11 00:35:55 +01:00
|
|
|
/**
|
|
|
|
* eGroupWare - resources
|
|
|
|
*
|
|
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
|
|
* @package resources
|
|
|
|
* @link http://www.egroupware.org
|
|
|
|
* @author Cornelius Weiss <egw@von-und-zu-weiss.de>
|
|
|
|
* @author Lukas Weiss <wnz_gh05t@users.sourceforge.net>
|
|
|
|
* @version $Id$
|
|
|
|
*/
|
|
|
|
|
2005-11-09 22:03:35 +01:00
|
|
|
|
2005-06-11 14:59:11 +02:00
|
|
|
include_once(EGW_INCLUDE_ROOT.'/etemplate/inc/class.so_sql.inc.php');
|
2005-11-09 22:03:35 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* General storage object for resources
|
|
|
|
*
|
2005-11-14 19:16:56 +01:00
|
|
|
* @author Cornelius Weiss <egw@von-und-zu-weiss.de>
|
2005-11-09 22:03:35 +01:00
|
|
|
* @package resources
|
|
|
|
*/
|
2005-06-11 14:59:11 +02:00
|
|
|
class so_resources extends so_sql
|
2005-02-03 17:42:20 +01:00
|
|
|
{
|
|
|
|
function so_resources()
|
|
|
|
{
|
2005-06-11 14:59:11 +02:00
|
|
|
$this->so_sql('resources','egw_resources');
|
2005-11-14 19:16:56 +01:00
|
|
|
|
|
|
|
$custom =& CreateObject('admin.customfields',$contact_app);
|
|
|
|
$this->customfields = $custom->get_customfields();
|
|
|
|
$this->soextra =& CreateObject('etemplate.so_sql');
|
|
|
|
$this->soextra->so_sql('resources','egw_resources_extra');
|
2005-02-03 17:42:20 +01:00
|
|
|
}
|
|
|
|
|
2005-06-10 22:40:57 +02:00
|
|
|
/**
|
2005-06-29 11:30:08 +02:00
|
|
|
* gets the value of $key from resource of $res_id
|
2005-06-10 22:40:57 +02:00
|
|
|
*
|
|
|
|
* @param string $key key of value to get
|
2005-06-29 11:30:08 +02:00
|
|
|
* @param int $res_id resource id
|
2005-06-10 22:40:57 +02:00
|
|
|
* @return mixed value of key and resource, false if key or id not found.
|
|
|
|
*/
|
2005-06-29 11:30:08 +02:00
|
|
|
function get_value($key,$res_id)
|
2005-02-03 17:42:20 +01:00
|
|
|
{
|
2005-06-29 11:30:08 +02:00
|
|
|
if($this->db->select($this->table_name,$key,array('res_id' => $res_id),__LINE__,__FILE__))
|
2005-02-03 17:42:20 +01:00
|
|
|
{
|
2005-06-10 22:40:57 +02:00
|
|
|
$value = $this->db->row(row);
|
2005-02-03 17:42:20 +01:00
|
|
|
return $value[$key];
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
2005-11-14 19:16:56 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* reads resource including custom fields
|
|
|
|
*
|
|
|
|
* @param interger $res_id res_id
|
|
|
|
* @return array/boolean data if row could be retrived else False
|
|
|
|
*/
|
|
|
|
function read($res_id)
|
|
|
|
{
|
|
|
|
// read main data
|
|
|
|
$resource = parent::read($res_id);
|
|
|
|
|
|
|
|
// read customfields
|
|
|
|
$keys = array(
|
|
|
|
'extra_id' => $res_id,
|
|
|
|
'extra_owner' => -1,
|
|
|
|
);
|
|
|
|
$customfields = $this->soextra->search($keys,false);
|
|
|
|
foreach ((array)$customfields as $field)
|
|
|
|
{
|
|
|
|
$resource['#'.$field['extra_name']] = $field['extra_value'];
|
|
|
|
}
|
|
|
|
return $resource;
|
|
|
|
}
|
2005-02-17 16:27:43 +01:00
|
|
|
|
2005-06-10 22:40:57 +02:00
|
|
|
/**
|
2005-11-14 19:16:56 +01:00
|
|
|
* saves a resource including extra fields
|
|
|
|
*
|
|
|
|
* @param array $resource key => value
|
|
|
|
* @return mixed id of resource if all right, false if fale
|
2005-06-10 22:40:57 +02:00
|
|
|
*/
|
2005-02-12 16:49:38 +01:00
|
|
|
function save($resource)
|
|
|
|
{
|
2005-06-13 14:21:18 +02:00
|
|
|
$this->data = $resource;
|
2005-11-14 19:16:56 +01:00
|
|
|
if(parent::save() != 0) return false;
|
|
|
|
$res_id = $this->data['res_id'];
|
|
|
|
|
|
|
|
// save customfields
|
|
|
|
foreach ($this->customfields as $field => $options)
|
|
|
|
{
|
|
|
|
$value = $resource['#'.$field];
|
|
|
|
$data = array(
|
|
|
|
'extra_id' => $res_id,
|
|
|
|
'extra_name' => $field,
|
|
|
|
'extra_owner' => -1,
|
|
|
|
'extra_value' => $value,
|
|
|
|
);
|
|
|
|
$this->soextra->data = $data;
|
|
|
|
$error_nr = $this->soextra->save();
|
|
|
|
if($error_nr) return false;
|
|
|
|
}
|
|
|
|
return $res_id;
|
2005-02-12 16:49:38 +01:00
|
|
|
}
|
|
|
|
|
2005-02-03 17:42:20 +01:00
|
|
|
}
|