egroupware/admin/inc/class.bocategories.inc.php

151 lines
4.0 KiB
PHP
Raw Normal View History

2001-10-02 15:35:04 +02:00
<?php
2002-03-13 05:16:46 +01:00
/**************************************************************************\
2004-01-27 00:26:19 +01:00
* eGroupWare - Admin - Global categories *
* http://www.egroupware.org *
2002-03-13 05:16:46 +01:00
* Written by Bettina Gille [ceb@phpgroupware.org] *
* ----------------------------------------------- *
* 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$ */
/* $Source$ */
2001-10-02 15:35:04 +02:00
class bocategories
{
var $cats;
var $start;
var $query;
var $sort;
var $order;
var $filter;
var $cat_id;
var $total;
var $debug = False;
function bocategories()
{
if ($_REQUEST['appname'])
2002-03-13 05:16:46 +01:00
{
$this->cats =& CreateObject('phpgwapi.categories',-1,$_REQUEST['appname']);
2002-03-13 05:16:46 +01:00
}
else
{
2005-10-14 19:03:16 +02:00
$this->cats =& CreateObject('phpgwapi.categories',$GLOBALS['egw_info']['user']['account_id'],'phpgw');
2002-03-13 05:16:46 +01:00
}
2001-10-02 15:35:04 +02:00
$this->read_sessiondata();
foreach(array('start','query','sort','order','cat_id') as $name)
2001-10-02 15:35:04 +02:00
{
if (isset($_REQUEST[$name])) $this->$name = $_REQUEST[$name];
2001-10-02 15:35:04 +02:00
}
}
function save_sessiondata($data)
{
if($this->debug) { echo '<br>Save:'; _debug_array($data); }
//echo '<p>'.__METHOD__."() start=$this->start, sort=$this->sort, order=$this->order, query=$this->query</p>\n";
2005-10-14 19:03:16 +02:00
$GLOBALS['egw']->session->appsession('session_data','admin_cats',$data);
2001-10-02 15:35:04 +02:00
}
function read_sessiondata()
{
2005-10-14 19:03:16 +02:00
$data = $GLOBALS['egw']->session->appsession('session_data','admin_cats');
2001-10-02 15:35:04 +02:00
if($this->debug) { echo '<br>Read:'; _debug_array($data); }
$this->start = $data['start'];
$this->query = $data['query'];
$this->sort = $data['sort'];
$this->order = $data['order'];
if(isset($data['cat_id']))
{
$this->cat_id = $data['cat_id'];
}
//echo '<p>'.__METHOD__."() start=$this->start, sort=$this->sort, order=$this->order, query=$this->query</p>\n";
2001-10-02 15:35:04 +02:00
}
function get_list()
2001-10-02 15:35:04 +02:00
{
if($this->debug) { echo '<br>querying: "' . $this->query . '"'; }
//echo '<p>'.__METHOD__."() start=$this->start, sort=$this->sort, order=$this->order, query=$this->query</p>\n";
return $this->cats->return_sorted_array($this->start,True,$this->query,$this->sort,$this->order,True);
2001-10-02 15:35:04 +02:00
}
2002-01-12 19:28:42 +01:00
function save_cat($values)
2001-10-02 15:35:04 +02:00
{
if ($values['id'] && $values['id'] != 0)
2002-01-12 19:28:42 +01:00
{
return $this->cats->edit($values);
}
else
{
return $this->cats->add($values);
}
2001-10-02 15:35:04 +02:00
}
function exists($data)
{
$data['type'] = $data['type'] ? $data['type'] : '';
$data['cat_id'] = $data['cat_id'] ? $data['cat_id'] : '';
return $this->cats->exists($data['type'],$data['cat_name'],$data['type'] == 'subs' ? 0 : $data['cat_id'],$data['type'] != 'subs' ? 0 : $data['cat_id']);
2001-10-02 15:35:04 +02:00
}
function formatted_list($data)
{
return $this->cats->formatted_list($data['select'],$data['all'],$data['cat_parent'],True);
2001-10-02 15:35:04 +02:00
}
function delete($cat_id,$subs=False)
2001-10-02 15:35:04 +02:00
{
return $this->cats->delete($cat_id,$subs,!$subs); // either delete the subs or modify them
2001-10-02 15:35:04 +02:00
}
2002-01-12 19:28:42 +01:00
function check_values($values)
{
if (strlen($values['descr']) >= 255)
{
$error[] = lang('Description can not exceed 255 characters in length !');
}
if (!$values['name'])
{
$error[] = lang('Please enter a name');
}
else
{
2002-01-14 00:54:46 +01:00
if (!$values['parent'])
2002-01-12 19:28:42 +01:00
{
$exists = $this->exists(array
(
'type' => 'appandmains',
'cat_name' => $values['name'],
'cat_id' => $values['id']
2002-01-12 19:28:42 +01:00
));
}
else
{
$exists = $this->exists(array
(
'type' => 'appandsubs',
'cat_name' => $values['name'],
'cat_id' => $values['id']
2002-01-12 19:28:42 +01:00
));
}
if ($exists == True)
{
$error[] = lang('That name has been used already');
}
}
if (is_array($error))
{
return $error;
}
}
2001-10-02 15:35:04 +02:00
}