forked from extern/egroupware
Remove category children if that option is chosen
This commit is contained in:
parent
efc61a3243
commit
146ff34de1
@ -783,12 +783,29 @@ class addressbook_so
|
||||
*/
|
||||
function delete_category($data)
|
||||
{
|
||||
// Get addresses that use the category
|
||||
$ids = $this->search(array('cat_id' => $data['cat_id']), array('contact_id', 'cat_id'));
|
||||
foreach($ids as &$info)
|
||||
// get all cats if you want to drop sub cats
|
||||
$drop_subs = ($data['drop_subs'] && !$data['modify_subs']);
|
||||
if($drop_subs)
|
||||
{
|
||||
$info['cat_id'] = implode(',',array_diff(explode(',',$info['cat_id']), array($data['cat_id'])));
|
||||
$this->save($info);
|
||||
$cats = new categories('', 'addressbook');
|
||||
$cat_ids = $cats->return_all_children($data['cat_id']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$cat_ids = array($data['cat_id']);
|
||||
}
|
||||
|
||||
// Get addresses that use the category
|
||||
@set_time_limit( 0 );
|
||||
$ids = array();
|
||||
foreach($cat_ids as $cat_id)
|
||||
{
|
||||
$ids = $this->search(array('cat_id' => $cat_id), array('contact_id', 'cat_id'));
|
||||
foreach($ids as &$info)
|
||||
{
|
||||
$info['cat_id'] = implode(',',array_diff(explode(',',$info['cat_id']), $cat_ids));
|
||||
$this->save($info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user