2001-10-02 15:35:04 +02:00
|
|
|
<?php
|
2002-03-13 05:16:46 +01:00
|
|
|
/**************************************************************************\
|
|
|
|
* phpGroupWare - Admin - Global categories *
|
|
|
|
* http://www.phpgroupware.org *
|
|
|
|
* 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()
|
|
|
|
{
|
2002-03-13 05:16:46 +01:00
|
|
|
if ($GLOBALS['appname'])
|
|
|
|
{
|
|
|
|
$this->cats = CreateObject('phpgwapi.categories',-1,$GLOBALS['appname']);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$this->cats = CreateObject('phpgwapi.categories',$GLOBALS['phpgw_info']['user']['account_id'],'phpgw');
|
|
|
|
}
|
2001-10-02 15:35:04 +02:00
|
|
|
|
|
|
|
$this->read_sessiondata();
|
|
|
|
|
|
|
|
/* _debug_array($GLOBALS['HTTP_POST_VARS']); */
|
|
|
|
|
2002-09-04 03:58:34 +02:00
|
|
|
$start = intval(get_var('start',array('POST','GET')));
|
|
|
|
$query = get_var('query',array('POST','GET'));
|
|
|
|
$sort = get_var('sort',array('POST','GET'));
|
|
|
|
$order = get_var('order',array('POST','GET'));
|
|
|
|
$cat_id = intval(get_var('cat_id', array('POST','GET')));
|
|
|
|
|
|
|
|
if(!empty($start) || $start == 0)
|
2001-10-02 15:35:04 +02:00
|
|
|
{
|
|
|
|
if($this->debug) { echo '<br>overriding start: "' . $this->start . '" now "' . $start . '"'; }
|
|
|
|
$this->start = $start;
|
|
|
|
}
|
|
|
|
if((empty($query) && !empty($this->query)) || !empty($query))
|
|
|
|
{
|
|
|
|
if($this->debug) { echo '<br>setting query to: "' . $query . '"'; }
|
|
|
|
$this->query = $query;
|
|
|
|
}
|
|
|
|
|
|
|
|
if(isset($cat_id))
|
|
|
|
{
|
|
|
|
$this->cat_id = $cat_id;
|
|
|
|
}
|
2002-09-04 03:58:34 +02:00
|
|
|
|
|
|
|
if($cat_id == 0)
|
2001-10-02 15:35:04 +02:00
|
|
|
{
|
|
|
|
unset($this->cat_id);
|
|
|
|
}
|
2002-09-04 03:58:34 +02:00
|
|
|
|
2001-12-22 17:14:31 +01:00
|
|
|
if(isset($sort) && !empty($sort))
|
2001-10-02 15:35:04 +02:00
|
|
|
{
|
|
|
|
$this->sort = $sort;
|
|
|
|
}
|
2002-09-04 03:58:34 +02:00
|
|
|
|
2001-12-22 17:14:31 +01:00
|
|
|
if(isset($order) && !empty($order))
|
2001-10-02 15:35:04 +02:00
|
|
|
{
|
|
|
|
$this->order = $order;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function save_sessiondata($data)
|
|
|
|
{
|
|
|
|
if($this->debug) { echo '<br>Save:'; _debug_array($data); }
|
|
|
|
$GLOBALS['phpgw']->session->appsession('session_data','admin_cats',$data);
|
|
|
|
}
|
|
|
|
|
|
|
|
function read_sessiondata()
|
|
|
|
{
|
|
|
|
$data = $GLOBALS['phpgw']->session->appsession('session_data','admin_cats');
|
|
|
|
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'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2002-03-19 03:35:38 +01:00
|
|
|
function get_list($global_cats=False)
|
2001-10-02 15:35:04 +02:00
|
|
|
{
|
|
|
|
if($this->debug) { echo '<br>querying: "' . $this->query . '"'; }
|
2002-03-19 03:35:38 +01:00
|
|
|
|
|
|
|
if ($global_cats)
|
|
|
|
{
|
|
|
|
return $this->cats->return_sorted_array($this->start,True,$this->query,$this->sort,$this->order,True);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return $this->cats->return_sorted_array($this->start,True,$this->query,$this->sort,$this->order);
|
|
|
|
}
|
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
|
|
|
{
|
2002-01-12 19:28:42 +01:00
|
|
|
if ($values['id'] && $values['id'] != 0)
|
|
|
|
{
|
|
|
|
return $this->cats->edit($values);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return $this->cats->add($values);
|
|
|
|
}
|
2001-10-02 15:35:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function exists($data)
|
|
|
|
{
|
2002-09-04 02:30:50 +02:00
|
|
|
return $this->cats->exists($data);
|
2001-10-02 15:35:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function formatted_list($data)
|
|
|
|
{
|
2002-03-19 03:35:38 +01:00
|
|
|
if ($data['global_cats'])
|
|
|
|
{
|
|
|
|
return $this->cats->formated_list($data['select'],$data['all'],$data['cat_parent'],True);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return $this->cats->formated_list($data['select'],$data['all'],$data['cat_parent']);
|
|
|
|
}
|
2001-10-02 15:35:04 +02:00
|
|
|
}
|
|
|
|
|
2002-09-04 03:58:34 +02:00
|
|
|
function delete($cat_id,$drop_subs,$modify_subs)
|
2001-10-02 15:35:04 +02:00
|
|
|
{
|
2002-09-03 04:22:32 +02:00
|
|
|
$this->cats->delete($cat_id,$drop_subs,$modify_subs);
|
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']
|
|
|
|
));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$exists = $this->exists(array
|
|
|
|
(
|
|
|
|
'type' => 'appandsubs',
|
|
|
|
'cat_name' => $values['name'],
|
|
|
|
'cat_id' => $values['id']
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
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
|
|
|
}
|