Initial import
[ldapsaisie.git] / trunk / includes / functions.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23 /**
24  * Construction d'une chaine formatée
25  *
26  * Cette fonction retourne la valeur d'une chaine formatée selon le format
27  * et les données passés en paramètre.
28  *
29  * @author Benjamin Renard <brenard@easter-eggs.com>
30  *
31  * @param[in] $format string Format de la chaine
32  * @param[in] $data mixed Les données pour composés la chaine
33  *                    Ce paramètre peut être un tableau de string, une string,
34  *                    une tableau d'objet ou un objet.
35  * @param[in] $meth string Le nom de la methode de/des objet(s) à appeler pour
36  *                         obtenir la valeur de remplacement dans la chaine formatée.
37  * 
38  * @retval string La chaine formatée
39  */
40 function getFData($format,$data,$meth=NULL) {
41   if(is_array($data)) {
42     if ($meth==NULL) {
43       while (ereg("%{([A-Za-z0-9]+)}",$format,$ch)) {
44         $format=ereg_replace($ch[0],$data[$ch[1]],$format);
45       }
46     }
47     else {
48       while (ereg("%{([A-Za-z0-9]+)}",$format,$ch)) {
49         if (method_exists($data[$ch[1]],$meth)) {
50           $format=ereg_replace($ch[0],$data[$ch[1]] -> $meth(),$format);
51         }
52         else {
53           $GLOBALS['LSerror'] -> addErrorCode(901,array('meth' => $meth,'obj' => $ch[1]));
54           break;
55         }
56       }
57     }
58   }
59   else {
60     if ($meth==NULL) {
61       while (ereg("%{([A-Za-z0-9]+)}",$format,$ch))
62         $format=ereg_replace($ch[0],$data,$format);
63     }
64     else {
65       while (ereg("%{([A-Za-z0-9]+)}",$format,$ch)) {
66         if (method_exists($data,$meth)) {
67           $format=ereg_replace($ch[0],$data -> $meth($ch[1]),$format);
68         }
69         else {
70           $GLOBALS['LSerror'] -> addErrorCode(901,array('meth' => $meth,'obj' => get_class($data)));
71           break;
72         }
73       }
74     }
75   }
76   return $format;
77 }
78
79 function valid($obj) {
80   echo 'ok';
81   return true;
82 }
83
84 function return_data($data) {
85   return $data;
86 }
87
88 ?>