Code

Backport from trunk
[gosa.git] / gosa-plugins / mail / personal / mail / mailAddressSelect / class_mailAddressSelect.inc
1 <?php
2 /*
3  * This code is part of GOsa (http://www.gosa-project.org)
4  * Copyright (C) 2003-2008 GONICUS GmbH
5  *
6  * ID: $$Id: class_groupManagement.inc 14766 2009-11-05 14:30:35Z hickert $$
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  */
23 class mailAddressSelect extends management
24 {
26   protected $skipFooter = TRUE;
27   protected $skipHeader = TRUE;
29   var $plHeadline = "Mail address selection";
31   function __construct($config,$ui)
32   {
33     $this->config = $config;
34     $this->ui = $ui;
36     $this->storagePoints = array(get_ou("core", "userRDN"), get_ou("core", "groupRDN"));
38     // Build filter
39     if (session::global_is_set(get_class($this)."_filter")){
40       $filter= session::global_get(get_class($this)."_filter");
41     } else {
42       $filter = new filter(get_template_path("selectMailAddress-filter.xml", true, dirname(__FILE__)));
43       $filter->setObjectStorage($this->storagePoints);
44     }
45     $this->setFilter($filter);
47     // Build headpage
48     $headpage = new listing(get_template_path("selectMailAddress-list.xml", true, dirname(__FILE__)));
49     $headpage->setFilter($filter);
50     $headpage->registerElementFilter("objectName", "mailAddressSelect::objectNameFilter");
51     parent::__construct($config, $ui, "mail", $headpage);
52   }
54     static function objectNameFilter($id,$dn,$cn,$sn=NULL,$givenName=NULL)
55     {
56         if($sn){
57             return("{$sn[0]}, {$givenName[0]}");
58         }else{
59             return("{$cn[0]}");
60         }
61     }
63   function save()
64   {
65     $act = $this->detectPostActions();
66     $headpage = $this->getHeadpage();
67     if(!isset($act['targets'])) return(array());
68     $ret = array();
69     foreach($act['targets'] as $dn){
70       $ret[] = $headpage->getEntry($dn);
71     }
72     return($ret);
73   }
74
75 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
76 ?>