Added custum action feature
[ldapsaisie.git] / public_html / lang / generate_lang_file.php
1 #!/usr/bin/php
2 <?php
3 /*******************************************************************************
4  * Copyright (C) 2007 Easter-eggs
5  * http://ldapsaisie.labs.libre-entreprise.org
6  *
7  * Author: See AUTHORS file in top-level directory.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License version 2
11  * as published by the Free Software Foundation.
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
22 ******************************************************************************/
23
24 require_once('../core.php');
25 require_once('../conf/config.inc.php');
26
27 if ($argc > 1) {
28   for ($i=1;$i<$argc;$i++) {
29     if (is_file($argv[$i])) {
30       @include($argv[$i]);
31     }
32   }
33 }
34
35 $data=array();
36
37 function add($msg) {
38   if ($msg!='') {
39     global $data;
40     $data[$msg]=$GLOBALS['LSlang'][$msg];
41   }
42 }
43
44 // LDAP Servers
45 foreach($GLOBALS['LSconfig']['ldap_servers'] as $conf) {
46   add($conf['name']);
47   add($conf['subDnLabel']);
48   add($conf['recoverPassword']['recoveryHashMail']['subject']);
49   add($conf['recoverPassword']['recoveryHashMail']['msg']);
50   add($conf['recoverPassword']['newPasswordMail']['subject']);
51   add($conf['recoverPassword']['newPasswordMail']['msg']);
52   if (is_array($conf['subDn'])) {
53     foreach($conf['subDn'] as $name => $cf) {
54       if ($name!='LSobject') {
55         add($name);
56       }
57     }
58   }
59 }
60
61
62 // LSobject
63 if (loadDir('../'.LS_OBJECTS_DIR)) {
64   foreach($GLOBALS['LSobjects'] as $name => $conf) {
65     add($conf['label']);
66     
67     // LSrelation
68     if (is_array($conf['LSrelation'])) {
69       foreach($conf['LSrelation'] as $rel) {
70         add($rel['label']);
71         add($rel['emptyText']);
72       }
73     }
74     // Custom Actions
75     if (is_array($conf['customActions'])) {
76       foreach($conf['customActions'] as $act) {
77         add($act['label']);
78         add($act['question_format']);
79         add($act['onSuccessMsgFormat']);
80       }
81     }
82
83     // LSform
84     if (is_array($conf['LSform']['layout'])) {
85       foreach($conf['LSform']['layout'] as $lay) {
86         add($lay['label']);
87       }
88     }
89     if (is_array($conf['LSform']['dataEntryForm'])) {
90       foreach($conf['LSform']['dataEntryForm'] as $def) {
91         add($def['label']);
92       }
93     }
94     // LSsearch
95     if (is_array($conf['LSsearch']['predefinedFilters'])) {
96       foreach($conf['LSsearch']['predefinedFilters'] as $lay) {
97         add($lay);
98       }
99     }
100
101     
102     if(is_array($conf['attrs'])) {
103       foreach($conf['attrs'] as $attr) {
104         add($attr['label']);
105         add($attr['help_info']);
106         add($attr['html_options']['mail']['subject']);
107         add($attr['html_options']['mail']['msg']);
108         
109         // LSattr_html_select_list
110         if ($attr['html_type']=='select_list' && is_array($attr['html_options']['possible_values'])) {
111           foreach($attr['html_options']['possible_values'] as $pkey => $pname) {
112             if ($pkey != 'OTHER_OBJECT') {
113               add($pname);
114             }
115           }
116         }
117
118         // LSattr_html_valueWithUnit
119         if ($attr['html_type']=='valueWithUnit' && is_array($attr['html_options']['units'])) {
120           foreach($attr['html_options']['units'] as $pname) {
121             add($pname);
122           }
123         }
124         
125         // Check data
126         if (is_array($attr['check_data'])) {
127           foreach($attr['check_data'] as $check) {
128             add($check['msg']);
129           }
130         }
131         
132         // validation
133         if (is_array($attr['validation'])) {
134           foreach($attr['validation'] as $valid) {
135             add($valid['msg']);
136           }
137         }
138       }
139     }
140   }
141 }
142
143 ksort($data);
144
145 echo "<?php\n\n\$GLOBALS['LSlang'] = array (\n";
146
147 foreach($data as $key => $val) {
148   print "\n\"$key\" =>\n  \"$val\",\n";
149 }
150
151 echo "\n);\n\n?>\n";
152
153 ?>