]> git.sur5r.net Git - contagged/blob - inc/template.php
added sizelimit info
[contagged] / inc / template.php
1 <?php
2
3 /**
4  * assigns some standard variables to smarty templates
5  */
6 function tpl_std(){
7   global $smarty;
8   global $lang;
9   global $conf;
10   global $FIELDS;
11
12   if(empty($_SESSION['ldapab']['username'])){
13     $_SESSION['ldapab']['username'] = '';
14   }
15   if(empty($_SESSION['ldapab']['binddn'])){
16     $_SESSION['ldapab']['binddn'] = '';
17   }
18
19   $smarty->assign('user',$_SESSION['ldapab']['username']);
20   $smarty->assign('binddn',$_SESSION['ldapab']['binddn']);
21   if(!empty($_SESSION['ldapab']['lastlocation'])){
22     $smarty->assign('home',$_SESSION['ldapab']['lastlocation']);
23   }else{
24      $smarty->assign('home','index.php');
25   }
26   $smarty->assign('conf',$conf);
27   $smarty->assign('lang',$lang);
28   $smarty->assign('fields',$FIELDS);
29 }
30
31 /**
32  * assigns all the interesting data from an ldap result to
33  * the smarty template
34  */
35 function tpl_entry($in){
36   global $smarty;
37   global $conf;
38   global $RFIELDS;
39
40   $out=array();
41
42   // handle named entries
43   foreach($RFIELDS as $key => $name){
44     if(empty($in[$key])) continue;
45
46     // keep arrays for multi fields
47     if($name{0} == '_'){
48         $name  = substr($name,1);
49         if(is_array($in[$key])){
50             $out[$name] = $in[$key];
51         }else{
52             $out[$name] = array($in[$key]);
53         }
54     }else{
55         if(is_array($in[$key])){
56             $out[$name] = $in[$key][0];
57         }else{
58             $out[$name] = $in[$key];
59         }
60     }
61   }
62
63   // set the type
64   if (empty($out['dn'])) { $out['dn']=''; }
65   $out['dn']          = normalize_dn($out['dn']);
66   $conf['publicbook'] = normalize_dn($conf['publicbook']);
67   if($out['dn']){
68       if(strstr($out['dn'],$conf['publicbook'])){
69           $out['type'] = 'public';
70       }else{
71           $out['type'] = 'private';
72       }
73   }
74
75   // join marker field to markers
76   if(is_array($out['marker'])) $out['markers'] = join(', ',$out['marker']);
77
78 /*
79 print '<pre>';
80 print_r($out);
81 print '</pre>';
82 */
83
84   $smarty->assign('entry',$out);
85 }
86
87 /**
88  * assigns the last LDAP error to the template
89  */
90 function tpl_ldaperror($message=""){
91   global $LDAP_CON;
92   global $__LDAPERROR__;
93   global $smarty;
94   $errno = ldap_errno($LDAP_CON);
95   if($errno){
96     $__LDAPERROR__ .= ldap_err2str($errno);
97     if(!empty($message)){
98       $__LDAPERROR__ .= "($message)";
99     }elseif($errno == 4){
100       $__LDAPERROR__ .= "(You need to increase this limit in your server config)";
101     }
102     $__LDAPERROR__ .= '<br />';
103   }
104   $smarty->assign("LDAPERRORS",$__LDAPERROR__);
105 }
106
107 /**
108  * assigns all markers to the template
109  */
110 function tpl_markers(){
111   global $conf;
112   global $LDAP_CON;
113   global $smarty;
114
115   if(!$conf['extended']) return;
116
117   $markers = array();
118
119   $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=inetOrgPerson",array("marker"));
120   $result1 = ldap_get_binentries($LDAP_CON, $sr);
121   //check users private addressbook
122   if(!empty($_SESSION['ldapab']['binddn'])){
123     $sr = @ldap_list($LDAP_CON,
124                     $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
125                     "ObjectClass=inetOrgPerson",array("marker"));
126     $result2 = ldap_get_binentries($LDAP_CON, $sr);
127   }else{
128     $result2 = '';
129   }
130   $result = array_merge((array)$result1,(array)$result2);
131
132   if(count($result)){
133     foreach ($result as $entry){
134       if(!empty($entry['marker']) && count($entry['marker'])){
135         foreach($entry['marker'] as $marker){
136           array_push($markers, $marker);
137         }
138       }
139     }
140   }
141   $markers = array_unique($markers);
142   sort($markers,SORT_STRING);
143
144   $smarty->assign('markers',$markers);
145 }
146
147 /**
148  * Assigns all distinct organization names to the template
149  */
150 function tpl_orgs(){
151   global $conf;
152   global $LDAP_CON;
153   global $smarty;
154   global $FIELDS;
155
156   $orgs = array();
157   $result = ldap_queryabooks("ObjectClass=inetOrgPerson",array($FIELDS['organization']));
158
159   if(count($result)){
160     foreach ($result as $entry){
161       if(!empty($entry[$FIELDS['organization']][0])){
162         array_push($orgs, $entry[$FIELDS['organization']][0]);
163       }
164     }
165   }
166   $orgs = array_unique($orgs);
167   natcasesort($orgs);
168   $smarty->assign('orgs',$orgs);
169 }
170
171 /**
172  * assigns all categories to the template
173  */
174 function tpl_categories(){
175   global $conf;
176   global $LDAP_CON;
177   global $smarty;
178
179   if(!$conf['openxchange']) return;
180
181   $categories = array();
182
183   $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("OXUserCategories"));
184   $result1 = ldap_get_binentries($LDAP_CON, $sr);
185   //check users private addressbook
186   if(!empty($_SESSION['ldapab']['binddn'])){
187     $sr = @ldap_list($LDAP_CON,
188                     $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
189                     "ObjectClass=OXUserObject",array("OXUserCategories"));
190     $result2 = ldap_get_binentries($LDAP_CON, $sr);
191   }
192   $result = array_merge((array)$result1,(array)$result2);
193
194   if(count($result)){
195     foreach ($result as $entry){
196       if(count($entry['OXUserCategories'])){
197         foreach($entry['OXUserCategories'] as $category){
198           array_push($categories, $category);
199         }
200       }
201     }
202   }
203   $categories = array_unique($categories);
204   sort($categories,SORT_STRING);
205
206   $smarty->assign('categories',$categories);
207 }
208
209 /**
210  * assigns all timezones to the template
211  */
212 function tpl_timezone(){
213   global $conf;
214   global $LDAP_CON;
215   global $smarty;
216
217   if(!$conf['openxchange']) return;
218
219   $timezone = array();
220
221   $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("OXTimeZone"));
222   $result1 = ldap_get_binentries($LDAP_CON, $sr);
223   //check users private addressbook
224   if(!empty($_SESSION['ldapab']['binddn'])){
225     $sr = @ldap_list($LDAP_CON,
226                     $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
227                     "ObjectClass=OXUserObject",array("OXTimeZone"));
228     $result2 = ldap_get_binentries($LDAP_CON, $sr);
229   }
230   $result = array_merge((array)$result1,(array)$result2);
231
232   if(count($result)){
233     foreach ($result as $entry){
234       if(count($entry['OXTimeZone'])){
235         foreach($entry['OXTimeZone'] as $tz){
236           array_push($timezone, $tz);
237         }
238       }
239     }
240   }
241   $timezone = array_unique($timezone);
242   sort($timezone,SORT_STRING);
243
244   $smarty->assign('timezone',$timezone);
245 }
246
247 /**
248  * assigns all countries to the template
249  */
250 function tpl_country(){
251   global $conf;
252   global $LDAP_CON;
253   global $smarty;
254
255   if(!$conf['openxchange']) return;
256
257   $country = array();
258
259   $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("userCountry"));
260   $result1 = ldap_get_binentries($LDAP_CON, $sr);
261   //check users private addressbook
262   if(!empty($_SESSION['ldapab']['binddn'])){
263     $sr = @ldap_list($LDAP_CON,
264                     $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
265                     "ObjectClass=OXUserObject",array("userCountry"));
266     $result2 = ldap_get_binentries($LDAP_CON, $sr);
267   }
268   $result = array_merge((array)$result1,(array)$result2);
269
270   if(count($result)){
271     foreach ($result as $entry){
272       if(count($entry['userCountry'])){
273         foreach($entry['userCountry'] as $c){
274           array_push($country, $c);
275         }
276       }
277     }
278   }
279   $country = array_unique($country);
280   sort($country,SORT_STRING);
281
282   $smarty->assign('country',$country);
283 }
284
285 ?>