root/contributed_modules/modules/capturegroups/functions.inc.php

Revision 8411, 19.9 kB (checked in by Maikel, 3 years ago)

Modifica el callerid para sip de los usuarios suscritos a un grupo de captura con el nombre del usuario (tal como se encuentra en la tabla users)

Line 
1 <?php
2
3
4 /********************************************************
5 *                           *
6 *           API FUNCTIONS           *
7 *                           *
8 ********************************************************/
9
10
11 define("CAPTUREGROUPS_PARAM_PREFIX", "capturegroups-");
12 define("CAPTUREGROUPS_CONTEXT", "ext-capturegroups");
13 define("CAPTUREGROUPS_CONTEXT_GROUPS_DEFAULT", "capturegroup");
14 function capturegroups_get_config($engine)
15 {
16   global $db;
17   global $ext;
18
19   switch($engine) {
20     case "asterisk":
21      
22       //$groups = capturegroups_get_data_of_group
23       $groups = capturegroups_get_all_groups();
24       if (!empty($groups))
25       {
26         $contexts = array();
27         $ctx_capturegroups = CAPTUREGROUPS_CONTEXT;
28         $ctx_custom_group = "";
29         $ext->add(CAPTUREGROUPS_CONTEXT, "s", '' ,new ext_noop('Just including my capturegroups contexts') );
30         $ctx_createds = array();
31         foreach($groups as $group)
32         {
33           $virtual_extension = $group["v_exten"];
34           $ctx_prefix = $group["desc"];
35           $extension = $group["exten"];
36          
37           //nombre del grupo
38           $ctx_custom_group = $ctx_prefix .   $virtual_extension;
39          
40           if (!isset($ctx_createds[$ctx_custom_group]))
41           {                       
42            
43             $ext->add($ctx_custom_group, $virtual_extension, "", new ext_noop("Capture group: " . $ctx_custom_group));
44             $ext->addInclude($ctx_custom_group, "ext-dnd-hints");
45             $ext->addInclude($ctx_custom_group, "app-dnd-toggle");
46            
47             $ctx_createds[$ctx_custom_group]["virtual_extension"] = $virtual_extension;
48             $ctx_createds[$ctx_custom_group]["extensions"] = array( "SIP/". $extension);
49           }
50           else
51           {
52             array_push($ctx_createds[$ctx_custom_group]["extensions"], "SIP/". $extension);
53           }
54           $sql = "REPLACE INTO sip VALUES ($extension, 'subscribecontext', '$ctx_custom_group', 0)";
55           sql($sql);
56           $sql = "REPLACE INTO sip VALUES ($extension, 'callgroup', '$virtual_extension', 0)";
57           sql($sql);
58           $sql = "REPLACE INTO sip VALUES ($extension, 'pickupgroup', '$virtual_extension', 0)";
59           sql($sql);
60           $sql = "UPDATE sip set data=(SELECT name FROM users WHERE extension=$extension LIMIT 1) WHERE keyword='callerid' AND id='$extension' LIMIT 1";
61           sql($sql);
62
63           // creamos el hint para la extension, asi la podemos monitorear
64           $hint = "SIP/". $extension . "&Custom:DND". $extension;
65           $ext->add($ctx_custom_group, $extension, "", new ext_noop("$extension Hint"));
66           $ext->addHint($ctx_custom_group, $extension, $hint);
67          
68          
69         }
70      
71         foreach ($ctx_createds as $ctx => $data)
72         {
73           // creamos el hint para la extension virtual
74           $ext->addHint($ctx,$data["virtual_extension"], implode($data["extensions"], "&"));
75           // incluimos el grupo al contexto global del modulo grupo de captura
76           $ext->addInclude(CAPTUREGROUPS_CONTEXT, $ctx);
77         }
78          
79            }
80     break;
81   }
82
83 }
84
85
86 /********************************************************
87 *                           *
88 *           DATABASE FUNCTIONS          *
89 *                           *
90 ********************************************************/
91
92 function capturegroups_get_groups()
93 {
94   global $db;
95   $sql = "SELECT * from capturegroups_groups ORDER BY v_exten ASC";
96   $results = $db->getAll($sql);
97     if(DB::IsError($results)) {
98     $results = null;
99   }
100   return $results;
101 }
102
103 function capturegroups_search( $extensions)
104 {
105   global $db;
106
107         $extensions = explode(",", $extensions);
108         foreach ($extensions as $extension)
109         {
110                 if (is_numeric($extension))
111                 {
112                    $valid[]= trim($extension);
113                 }
114
115         }
116         if (!empty($valid))
117         {
118                 $extensions = implode(",", $valid);
119     $sql = "SELECT g.desc, g.v_exten, e.exten FROM capturegroups_groups AS g INNER JOIN capturegroups_extens AS e ON g.capturegroups_groups_id = e.capturegroups_groups_id WHERE e.exten IN ($extensions) ORDER BY e.exten ASC";
120
121                 $results = $db->getAll($sql, array(), DB_FETCHMODE_ASSOC);
122                 if(DB::IsError($results)) {
123                         $results = null;
124                 }
125                 return $results;
126         }
127         return null;
128
129
130
131 }
132
133 function capturegroups_get_all_groups()
134 {
135   global $db;
136   $sql = "SELECT g.desc, g.v_exten, e.exten FROM capturegroups_groups AS g INNER JOIN capturegroups_extens AS e ON g.capturegroups_groups_id = e.capturegroups_groups_id;";
137   $results = $db->getAll($sql, array(), DB_FETCHMODE_ASSOC);
138     if(DB::IsError($results)) {
139     $results = null;
140   }
141   return $results;
142 }
143
144 function capturegroups_group_add ( $group_desc, $v_exten, array $client_extens)
145 {
146   global $db;
147   $errors= array();
148   $group = trim($group_desc);
149   if (empty($group))
150   {
151     array_push($errors, "Context is an empty string");
152   }
153   if (capturegroups_virtual_exten_exists($v_exten))
154   {
155     array_push($errors, "Virtual Extension already exists");
156   }
157   if (empty($client_extens))
158   {
159     array_push($errors, "There must be at least one extension");
160   }
161   if (empty($errors))
162   {
163     $sql = "INSERT INTO capturegroups_groups VALUES('', '$v_exten', '$group_desc')";
164     sql($sql);
165     $lastID = mysql_insert_id();
166     // just in case
167     capturegroups_remove_virtual_extension_free($v_exten);
168     foreach ($client_extens as $exten) 
169     {
170       $exten = trim($exten);         
171       $sql = "INSERT INTO capturegroups_extens VALUES ('$lastID', '$exten')";
172       sql($sql);
173     }
174   }
175   return $errors;
176 }
177
178
179 function capturegroups_group_edit ( $group_desc, $v_exten, $v_exten_release, array $client_extens, $id)
180 {
181   global $db;
182   $errors= array();
183   if (isset($v_exten_release) and $v_exten!= $v_exten_release and  !capturegroups_virtual_exten_exists($v_exten_release, $id) and is_numeric($v_exten_release))
184   {
185     capturegroups_set_virtual_extension_free($v_exten_release);
186   }
187   $group = trim($group_desc);
188   if (!is_numeric($id))
189   {
190     array_push($errors, "Group doesn't exist");
191   }
192
193   if (empty($group))
194   {
195     array_push($errors, "Context is an empty string");
196   }
197   if (capturegroups_virtual_exten_exists($v_exten, $id))
198   {
199     array_push($errors, "Virtual Extension already exists");
200   }
201
202
203
204   if (empty($client_extens))
205   {
206     array_push($errors, "There must be at least one extension");
207   }
208  
209      
210   if (empty($errors))
211   {
212     capturegroups_unsubscribe ($id);   
213     $sql = "UPDATE capturegroups_groups SET v_exten='" . $db->escapeSimple($v_exten) . "', `desc` = '".$db->escapeSimple($group_desc)."' WHERE capturegroups_groups_id = '$id'";
214     sql($sql);
215     $sql = "DELETE FROM `capturegroups_extens` WHERE capturegroups_groups_id = '$id'";
216     sql($sql);
217     // just in case
218     capturegroups_remove_virtual_extension_free($v_exten);
219     $context = $group_desc . $v_exten;
220     foreach ($client_extens as $exten) 
221     {
222       $exten = trim($exten);         
223       $sql = "INSERT INTO capturegroups_extens VALUES ('$id', '$exten')";
224       sql($sql);
225       $sql = "REPLACE INTO sip VALUES ($exten, 'subscribecontext', '$context', 0)";
226       sql($sql);
227       $sql = "REPLACE INTO sip VALUES ($exten, 'callgroup', '$v_exten', 0)";
228       sql($sql);
229       $sql = "REPLACE INTO sip VALUES ($exten, 'pickupgroup', '$v_exten', 0)";
230       sql($sql);
231     }
232   }
233  
234   return $errors;
235 }
236
237
238 function capturegroups_unsubscribe ( $id)
239 {
240   global $db;
241   $sql = "SELECT e.exten, g.v_exten, g.desc FROM capturegroups_extens as e RIGHT JOIN capturegroups_groups as g ON e.capturegroups_groups_id = g.capturegroups_groups_id WHERE e.capturegroups_groups_id = $id";
242   $results = $db->getAll($sql, array(), DB_FETCHMODE_ASSOC);
243     if(DB::IsError($results)) {
244     $results = null;
245   }
246
247   foreach ($results as $row)
248   {
249     // unsubscribe $extension extension
250     $extension = $row["exten"];
251     $context = $row["desc"] . $row["v_exten"];
252     $sql = "DELETE FROM sip WHERE id = '$extension' AND keyword = 'subscribecontext' and data='$context' AND flags = '0'";
253     sql($sql);
254     $sql = "UPDATE sip SET data='' WHERE id = '$extension' AND keyword = 'callgroup' AND flags = '0'";
255     sql($sql);
256     $sql = "UPDATE sip SET data='' WHERE id = '$extension' AND keyword = 'pickupgroup' AND flags = '0'";
257     sql($sql);
258   }
259   return true;
260  
261 }
262
263 function capturegroups_group_delete($id)
264 {
265   global $db;
266   $sql = "SELECT v_exten FROM capturegroups_groups WHERE _rowid = '" . $db->escapeSimple($id) . "' LIMIT 1";
267   $results = $db->getAll($sql);
268     if(DB::IsError($results)) {
269     $results = null;
270   }
271   capturegroups_unsubscribe($id);   
272   capturegroups_set_virtual_extension_free($results[0][0]);
273
274   $sql = "DELETE FROM `capturegroups_groups` WHERE _rowid = '" . $db->escapeSimple($id) . "'";
275   $group = sql($sql);
276        
277   $sql = "DELETE FROM `capturegroups_extens` WHERE capturegroups_groups_id = '". $db->escapeSimple($id) . "'";
278   $extens = sql($sql);
279   return ($group === $extens);
280 }
281
282 function capturegroups_group_exists($group, $id = '')
283 {
284   global $db;
285   if (!empty($id))
286   {
287     $sqlEdit = " AND _rowid <> '$id'";
288   }
289   else
290   {
291     $sqlEdit = "AND 1";
292   }
293   $sql = "SELECT 'true' FROM capturegroups_groups WHERE `desc`='" . $db->escapeSimple($group) . "' $sqlEdit LIMIT 1";
294   $results = $db->getAll($sql);
295     if(DB::IsError($results)) {
296     $results = null;
297   }
298   return count($results) == 1;
299 }
300
301
302 function capturegroups_virtual_exten_exists( $v_exten, $id= '')
303 {
304   global $db;
305   if (!empty($id))
306   {
307     $sqlEdit = " AND _rowid <> '$id'";
308   }
309   else
310   {
311     $sqlEdit = "AND 1";
312   }
313   $sql = "SELECT 'true' from capturegroups_groups WHERE v_exten='" . $db->escapeSimple($v_exten) . "' $sqlEdit LIMIT 1";
314   $results = $db->getAll($sql);
315     if(DB::IsError($results)) {
316     $results = null;
317   }
318   return count($results) == 1;
319 }
320
321
322
323
324
325
326
327 function capturegroups_get_data_of_group($attempt)
328 {
329   global $db;
330
331   // we use LEFT JOIN because at least we wanna to know info group (id_group and label)!
332   $sql = "SELECT g.*, e.exten  FROM capturegroups_groups AS g
333       LEFT JOIN capturegroups_extens AS e ON e.capturegroups_groups_id = g.capturegroups_groups_id
334       WHERE g.v_exten= '" . $db->escapeSimple($attempt) . "'";
335   $results = $db->getAll($sql, array(), DB_FETCHMODE_ASSOC);
336     if(DB::IsError($results)) {
337     $results = null;
338   }
339   return $results;
340 }
341
342 function capturegroups_clean_extensions($client_extensions, $id = "")
343 {
344   if (!empty($client_extensions))
345   {
346     global $db;
347     if (is_numeric($id))
348     {
349       $sql = "SELECT e.exten FROM capturegroups_extens AS e WHERE exten IN (".implode($client_extensions, ",").") AND capturegroups_groups_id<>'$id'";
350     }
351     else
352     {
353       $sql = "SELECT e.exten FROM capturegroups_extens AS e WHERE exten IN (".implode($client_extensions, ",").")";
354     }
355     $results = $db->getAll($sql, array(), DB_FETCHMODE_ASSOC);
356       if(DB::IsError($results)) {
357       $results = null;
358     }
359     foreach ($results as $row)
360     {
361       if (FALSE !== ($key = array_search($row["exten"],$client_extensions)))
362       {
363         unset($client_extensions[$key]);
364       }
365     }
366   }
367   return $client_extensions;
368 }
369
370 function capturegroups_get_extension_data($ext){
371   global $db;
372   $sql = " SELECT extension, name FROM `users` u WHERE extension = $ext LIMIT 1;";
373   $results = $db->getAll($sql);
374  
375   if(DB::IsError($results)) {
376     $results = array();
377   }
378   else{
379     $results = current($results);
380   }
381   return $results;
382 }
383
384 function capturegroups_extension_exists($attempt){
385   global $db;
386   $ext = mysql_real_escape_string($attempt);
387   $sql = "SELECT 'true' FROM `users` WHERE extension = '$ext' LIMIT 1";
388   $result = $db->getAll($sql);
389   return count($result[0]) === 1;
390 } 
391
392 function capturegroups_remove_virtual_extension_free($v_exten)
393 {
394   global $db;
395   // tratando de recuperar indices
396   $sql = " DELETE FROM `capturegroups_v_extens_free` WHERE v_exten NOT IN (SELECT v_exten FROM capturegroups_groups) AND v_exten > (SELECT MAX(v_exten) FROM capturegroups_groups)";
397   sql($sql);
398
399   if (is_numeric($v_exten) )
400   {
401     $sql = "DELETE FROM `capturegroups_v_extens_free` WHERE v_exten = '$v_exten' LIMIT 1";
402     sql($sql);
403     return true;
404   }
405   return false;
406 }
407
408
409 function capturegroups_virtual_extension_free_exists($attempt){
410   global $db;
411   $ext = mysql_real_escape_string($attempt);
412   $sql = "SELECT 'true' FROM `capturegroups_v_extens_free` WHERE v_exten = '$ext' LIMIT 1";
413   $result = $db->getAll($sql);
414   return isset($result[0][0]);
415 }
416
417
418 function capturegroups_set_virtual_extension_free($v_exten)
419 {
420   global $db;
421
422   if (!capturegroups_virtual_extension_free_exists($v_exten))
423   {
424     $sql = "INSERT INTO capturegroups_v_extens_free VALUES('$v_exten')";
425     sql($sql);
426   }
427   return true;
428 }
429
430 function capturegroups_get_next_virtual_extension()
431 {
432   global $db;
433   $sql = "SELECT MIN(v_exten) FROM `capturegroups_v_extens_free` AS v_exten";
434   $result = $db->getAll($sql);
435   if(DB::IsError($result)) {
436     $result = null;
437   }
438   if (!isset($result[0][0]))
439   {
440     $sql = "SELECT MAX(v_exten)+1 FROM `capturegroups_groups` AS g";
441     $result = $db->getAll($sql);
442     if(DB::IsError($result)) {
443       $result = null;
444     }
445    
446     if (!isset($result[0][0]))
447     {
448       $v_exten=0;
449     }
450     else
451     {
452       $v_extent = $result[0][0];
453     }
454   }
455   else
456   {
457     $v_extent = $result[0][0];
458   }
459   return $v_extent;
460 }
461
462
463 /********************************************************
464 *                           *
465 *           UTILS FUNCTIONS           *
466 *                           *
467 ********************************************************/
468
469 /*
470
471 $haystack = array('a','b','c', 'd');
472 $needle = array('b','c', 'd','e');
473
474 $result = capturegroups_array_diff($haystack, $needle);
475
476 $result is equal to array('a').
477
478 Yeah! I know! array_diff is a php function BUT is broken since v4.0.4 and we need it!
479 http://www.php.net/array_diff
480
481 */
482
483
484 function capturegroups_array_diff(array $haystack, array $needle)
485 {
486   foreach ($needle as $value)
487   {
488     if (($key = array_search($value, $haystack)) !== FALSE)
489     {
490       unset($haystack[$key]);
491     }
492   }
493   return $haystack;
494 }
495
496
497 function capturegroups_str_extensions_to_array($strExtensions)
498 {
499   $strExtensions = trim($strExtensions);
500   $strExtensions = str_replace(" ", "\n", $strExtensions);
501   $arrExtensions = explode("\n", $strExtensions);
502   foreach ($arrExtensions as $key => &$ext)
503   {
504     $ext = str_replace('\n','', $ext);   
505     $ext = trim($ext);
506     if (empty($ext) and $ext != '0') // 0 is considered an empty string by some versions of php 
507       unset($arrExtensions[$key]);
508   }
509   return $arrExtensions;
510 }
511
512 function capturegroups_create_nav_groups_links($groups, $dispnum)
513 {
514   $links = array();
515   $link["url"] = "config.php?display=$dispnum&capturegroupsdisplay=".CAPTUREGROUPS_PARAM_PREFIX. "add";
516   $link["text"] = "Add Group";
517   array_push($links, $link);
518   if (!empty($groups))
519   {
520     foreach ($groups as $group)
521     {
522       $link["url"] = "config.php?display=$dispnum&capturegroupsdisplay=".CAPTUREGROUPS_PARAM_PREFIX . $group[1];
523       $link["text"] = $group[1] . " (". $group[2].")";
524       array_push($links, $link);
525     }
526   }
527   return $links;
528 }
529
530 function capturegroups_extract_group_from_request($param)
531 {
532   return ltrim(str_replace(CAPTUREGROUPS_PARAM_PREFIX, ' ', $param)); // easy, isn't it?
533 }
534
535
536 function capturegroups_set_params_to_edit( $records)
537 {
538   $vars = array();
539   $first = current($records);
540   $vars["captgroup_desc_edit"] = $first["capturegroups_groups_id"];
541   $vars["desc"] =  $first["desc"];
542   $vars["v_exten"] =  $first["v_exten"];
543   $vars["bosses_extensions"] = "";
544   $vars["secretaries_extensions"] = "";
545   $s = array();
546   $extensions = array();
547   foreach ($records as $record)
548   {
549    
550     if (!empty($record["exten"]))
551     {
552       array_push($extensions, $record["exten"]);
553     }
554
555   }
556   $vars["client_extensions"] = array_unique($extensions);
557   return $vars;
558 }
559
560 /******************
561
562  GUI FUNCTIONS
563 ******************/
564
565 function capturegroups_content($title, $content, $messages){
566   echo <<<OUTPUT
567
568
569 <div class="content">
570   <h2>$title</h2>
571 <script>
572 // AJAX to the SubCategory DropDown
573 function getExtensions(extensions)
574 {
575  
576   var url = "config.php?sid=" + Math.random() + "&display=capturegroups&extensions=" + extensions + "&ajax=true";
577   xmlHttp=GetXmlHttpObject(setExtensions);
578   xmlHttp.open("GET", url , true);
579   xmlHttp.send(null);
580   document.getElementById('divExtensions').innerHTML = "Searching";
581   return true;
582 }
583
584 function setExtensions()
585 {
586   if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
587   {
588     var datos;
589     datos = (xmlHttp.responseText);
590     document.getElementById('divExtensions').innerHTML = datos;
591   }
592 }
593
594
595 function GetXmlHttpObject(handler){
596   var objXmlHttp=null
597   if (navigator.userAgent.indexOf("Opera")>=0){
598     alert("This doesn't work in Opera")
599     return
600   }
601   if (navigator.userAgent.indexOf("MSIE")>=0){
602     var strName="Msxml2.XMLHTTP"
603     if (navigator.appVersion.indexOf("MSIE 5.5")>=0){
604       strName="Microsoft.XMLHTTP"
605     }
606     try{
607       objXmlHttp=new ActiveXObject(strName)
608       objXmlHttp.onreadystatechange=handler
609       return objXmlHttp
610     }catch(e){
611       alert("Error. Scripting for ActiveX might be disabled")
612       return
613     }
614   }
615   if (navigator.userAgent.indexOf("Mozilla")>=0){
616     objXmlHttp=new XMLHttpRequest()
617     objXmlHttp.onload=handler
618     objXmlHttp.onerror=handler
619     return objXmlHttp
620   }
621 }
622
623 </script>
624 <form method="post" name=searchcapturegroups action="config.php?display=capturegroups" onsubmit="getExtensions(document.getElementById('extensions').value); return false;">
625 <table>
626       <tr>
627         <td colspan="2"><h5>Buscar grupo</h5> <hr /> </td>
628       </tr>     
629       <tr>
630         <td colspan="2"><label>Extension:</label> <input type="text" id="extensions" name= "extension" value=""/> <input type="button" name="submitSearch" onclick="getExtensions(document.getElementById('extensions').value);" value="Search" /></td>       
631       </tr>
632
633       <tr>
634         <td colspan="2"><div id="divExtensions"></div></td>
635       </tr>
636       <tr>
637         <td colspan="2"><hr /></td>
638       </tr>
639       </tr>     
640 </table>
641 </form>
642
643
644
645   $messages
646   $content
647
648 </div>
649
650 OUTPUT;
651
652 }
653
654
655 function capturegroups_get_form_add( array $params)
656 {
657   $vars["form_title"] = "Add Group";
658   $vars["form_url"] = "config.php?display=capturegroups&capturegroupdisplay=".CAPTUREGROUPS_PARAM_PREFIX. "add";
659   $vars["delete_button"] = "";
660   $vars["context_default"] = CAPTUREGROUPS_CONTEXT_GROUPS_DEFAULT;
661   $vars["client_extensions"] = implode($params["client_extensions"] , "\n");
662   $vars["next_v_exten"] = capturegroups_get_next_virtual_extension();
663   $vars["v_exten"] = $params["v_exten"];
664   $vars["desc"] = $params["desc"];
665   $vars["action"] = "Add";
666   if (!isset($params["submitAdd"]))
667   {
668     $vars["check_v_exten"] = 'checked="checked"';
669     $vars["check_context"] = 'checked="checked"';
670     $vars["v_exten"] = $vars["next_v_exten"];
671     $vars["desc"] = $vars["context_default"];
672   }
673   $vars["message_details"] = $params["message_details"];
674   $vars["message_title"] = $params["message_title"];
675   return capturegroups_get_form($vars);
676 }
677
678
679 function capturegroups_get_form_edit( array $params)
680 {
681   $vars["form_title"] = "Edit Group";
682   $vars["form_url"] = "config.php?display=capturegroups&bsgroupdisplay=".CAPTUREGROUPS_PARAM_PREFIX. $params["v_exten"];
683   $vars["delete_button"] = capturegroups_get_delete_button();
684   $vars["v_exten"] = $params["v_exten"];
685   $vars["next_v_exten"] = capturegroups_get_next_virtual_extension();
686   $vars["desc"] = $params["desc"];
687   $vars["context_default"] = CAPTUREGROUPS_CONTEXT_GROUPS_DEFAULT;
688   $vars["action"] = "Edit";
689   $vars["captgroup_desc_edit"] = $params["captgroup_desc_edit"];
690   $vars["client_extensions"] = implode($params["client_extensions"] , "\n");
691   $vars["message_details"] = $params["message_details"];
692   $vars["message_title"] = $params["message_title"];
693   $vars["delete_question"] = "Do you really to want delete " . $vars["v_exten"] . " (" .$vars["desc"] . ") group?";
694   $vars["delete_url"] = "config.php?display=capturegroups&captgroupdelete=".CAPTUREGROUPS_PARAM_PREFIX. $params["captgroup_desc_edit"];
695   return capturegroups_get_form($vars);
696 }
697
698
699 function capturegroups_get_form ( array $vars)
700 {
701   $sForm = file_get_contents(dirname(__FILE__). "/form_template.tpl");
702
703  
704   $vars["messages"] = "";
705   if (!empty($vars["message_details"]))
706   {
707     $vars["messages"] = "<h5>".$vars["message_title"] . "</h5>";
708     $vars["messages"] .= "<ul>";
709     foreach ($vars["message_details"] as $details)
710     {
711       $vars["messages"] .= "<li>$details</li>";
712     }
713     $vars["messages"] .= "</ul>";
714     unset($vars["message_details"]);
715     unset($vars["message_title"]);
716   }
717  
718
719   foreach ($vars as $var => $value)
720   {
721     $sForm = str_replace("{".$var. "}", $value, $sForm);
722   }
723   return $sForm;
724 }
725
726
727 function capturegroups_get_delete_button()
728 {
729   $sForm = file_get_contents(dirname(__FILE__). "/delete_button.tpl");
730   return str_replace("{delete_button_label}", "Delete Group", $sForm);
731 }
732
733
734
735 function capturegroups_show_nav_users($links){
736   echo <<<OUTPUT
737
738 <div class="rnav">
739   <ul>
740
741 OUTPUT;
742   foreach ($links as $link){
743     $url  = $link['url'];
744     $text = $link['text'];
745
746     echo <<<OUTPUT
747     <li><a href="{$url}">{$text}</a></li>
748  
749 OUTPUT;
750   }
751   echo <<<OUTPUT
752   </ul>
753 </div>
754
755 OUTPUT;
756 }
757
758 ?>
Note: See TracBrowser for help on using the browser.