Code

Additional multiple edit checkin.
[gosa.git] / include / class_multi_plug.inc
1 <?php
3 class multi_plug
4 {
5   /* Tab handler for each given dn entry */
6         public $a_handles = array();
8   /* Dummy handler which collects the data */
9   private $o_tab     = NULL;  
11   public $dn    = array();
12   public $config = NULL;
13   private $s_class  = "";
14   public $current = "";
16   public function __construct($config,$class,$tab,$dns)
17   {
18     $this->dn = $dns;
19     $this->config = $config;
20     $this->s_class = $class;
21     $this->o_tab = new $class($config,$tab,"new");
23     if($this->o_tab->multiple_support_available()){
24       $this->o_tab->enable_multiple_support();
25     
26       foreach($dns as $dn){
27         $this->a_handles[] = new $class($config,$tab,$dn);
28       }
29     }
30   }
32   public function execute()
33   {
34     return($this->o_tab->execute());
35   }
37   public function entries_locked()
38   {
39     return(FALSE);
40   }
42   public function display_lock_message()
43   {
44     return("sdf");
45   }
47   public function lock_entries($uid)
48   {
49     return(TRUE);
50   }
52   public function multiple_available()
53   {
54     return($this->o_tab->multiple_support_available());
55   }
57   public function set_active_tab($str)
58   {
59     $this->current = $str;
60   }
62   public function get_object_info()
63   {
64     return("Oi -----");
65   }
67   public function save_object()
68   {
69     $this->o_tab->save_object(); 
70   }
72   public function check()
73   {
74     $this->populate_values();
75     $messages = $this->o_tab->check();
76     foreach($this->a_handles as $key => $obj){
77       $msgs = $obj->check();
78       foreach($msgs as $msg){
79         $messages[] = $msg;
80       }
81     }
82     return($messages);
83   }
85   public function password_change_needed()
86   {
87     return(FALSE);
88   }
90   public function populate_values()
91   {
93     if($this->multiple_available() && is_array($this->a_handles)){
94       foreach($this->o_tab->by_object as $name => $obj){
95         $values = $this->o_tab->by_object[$name]->get_multi_edit_values();
96         foreach($values as $a_name => $a_value){
97           foreach($this->a_handles as $i_id => $o_handle){
98             $o_handle->by_object[$name]->$a_name = $a_value;
99           }
100         }
101       }
102     }
103   }
105   public function save()
106   {
107     if($this->multiple_available() && is_array($this->a_handles)){
108       $this->populate_values();
109       foreach($this->a_handles as $i_id => $o_handle){
110         $o_handle->save();
111       }
112     }
113   }
116 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
117 ?>