r433: Merging the locale-change branch onto trunk; we now use ISSO's localize system
[bugdar.git] / admin / language.php
1 <?php
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # BugStrike [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
7 || # This file may not be reproduced in any way without permission. # ||
8 || # --------------------------------------------------------------- # ||
9 || # User License Agreement at http://www.iris-studios.com/license/ # ||
10 || ################################################################### ||
11 \*=====================================================================*/
12
13 require_once('./global.php');
14
15 if (!can_perform('canadmintools'))
16 {
17 admin_login();
18 }
19
20 // ###################################################################
21
22 if (empty($_REQUEST['do']))
23 {
24 $_REQUEST['do'] = 'modify';
25 }
26
27 // ###################################################################
28
29 if ($_REQUEST['do'] == 'kill')
30 {
31 // run code to remove item in database
32 }
33
34 // ###################################################################
35
36 if ($_REQUEST['do'] == 'delete')
37 {
38 // display delete confirmation message
39 }
40
41 // ###################################################################
42
43 if ($_POST['do'] == 'insert')
44 {
45 // run code to insert new item into database
46 }
47
48 // ###################################################################
49
50 if ($_REQUEST['do'] == 'add')
51 {
52 $admin->page_start($lang->string('New Language'));
53
54 $admin->form_start('language.php', 'update');
55 $admin->table_start();
56 $admin->table_head($lang->string('New Language'));
57
58 $admin->row_input($lang->string('Title'), 'title');
59 $admin->row_input($lang->string('Character Set'), 'charset');
60 $admin->list_item($lang->string('Left-to-Right'), 'ltr', true);
61 $admin->list_item($lang->string('Right-to-Left'), 'rtl');
62 $admin->row_list($lang->string('Direction'), 'direction');
63 $admin->row_input($lang->string('Path to XML'), 'filename');
64 $admin->row_yesno($lang->string('User Selectable'), 'userselect', true);
65 $admin->row_yesno($lang->string('Debug Mode (run directly from XML)'), 'langdebug', false);
66
67 $admin->row_submit();
68 $admin->table_end();
69 $admin->form_end();
70
71 $admin->page_end();
72 }
73
74 // ###################################################################
75
76 if ($_POST['do'] == 'update')
77 {
78 $db->query("
79 UPDATE language
80 SET title = '" . $bugsys->in['title'] . "',
81 charset = '" . $bugsys->in['charset'] . "',
82 direction = '" . $bugsys->in['direction'] . "',
83 userselect = " . intval($bugsys->in['userselect']) . ",
84 debug = " . intval($bugsys->in['langdebug']) . ",
85 filename = '" . $bugsys->in['filename'] . "'
86 WHERE languageid = " . intval($bugsys->in['languageid'])
87 );
88
89 build_languages();
90
91 $admin->redirect('language.php?do=modify');
92 }
93
94 // ###################################################################
95
96 if ($_REQUEST['do'] == 'edit')
97 {
98 $language = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "language WHERE languageid = " . intval($bugsys->in['languageid']));
99 if (!$language)
100 {
101 $admin->error($lang->getlex('error_invalid_id'));
102 }
103
104 $admin->page_start($lang->string('Edit Language'));
105
106 $admin->form_start('language.php', 'update');
107 $admin->table_start();
108 $admin->table_head(sprintf($lang->string('Edit Language - %1$s'), $language['title']));
109
110 $admin->form_hidden_field('languageid', $language['languageid']);
111
112 $admin->row_input($lang->string('Title'), 'title', $language['title']);
113 $admin->row_input($lang->string('Character Set'), 'charset', $language['charset']);
114 $admin->list_item($lang->string('Left-to-Right'), 'ltr', (($language['direction'] == 'ltr') ? true : false));
115 $admin->list_item($lang->string('Right-to-Left'), 'rtl', (($language['direction'] == 'rtl') ? true : false));
116 $admin->row_list($lang->string('Direction'), 'direction');
117 $admin->row_input($lang->string('Path to XML'), 'filename', $language['filename']);
118 $admin->row_yesno($lang->string('User Selectable'), 'userselect', $language['userselect']);
119 $admin->row_yesno($lang->string('Debug Mode (run directly from XML)'), 'langdebug', (bool)$language['debug']);
120
121 $admin->row_submit();
122 $admin->table_end();
123 $admin->form_end();
124
125 $admin->page_end();
126 }
127
128 // ###################################################################
129
130 if ($_REQUEST['do'] == 'reload')
131 {
132 $language = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "language WHERE languageid = " . intval($bugsys->in['languageid']));
133 if (!$language)
134 {
135 $admin->error($lang->getlex('error_invalid_id'));
136 }
137
138 $db->query("DELETE FROM localization WHERE languageid = $language[languageid]");
139
140 require_once('./includes/language.php');
141
142 $localizations = fetch_phrases($language['languageid'], true);
143 foreach ($localizations AS $key => $value)
144 {
145 $db->query("INSERT INTO localization (localkey, localtext, languageid) VALUES ('" . $bugsys->escape($key) . "', '" . $bugsys->escape($value) . "', $language[languageid])");
146 }
147
148 $admin->redirect('language.php?do=modify');
149 }
150
151 // ###################################################################
152
153 if ($_REQUEST['do'] == 'modify')
154 {
155 $admin->page_start($lang->string('Manage Languages'));
156
157 $admin->table_start();
158 $admin->table_head($lang->string('Manage Languages'), 4);
159
160 $admin->table_column_head(array($lang->string('Title'), $lang->string('Charset'), $lang->string('Options'), $lang->string('Actions')));
161
162 $languages = $db->query("SELECT * FROM " . TABLE_PREFIX . "language ORDER BY languageid ASC");
163 while ($language = $db->fetch_array($languages))
164 {
165 $admin->row_multi_item(array(
166 $language['title'] => 'l',
167 $language['charset'] => 'c',
168 (($language['default']) ? '<strong>' . $lang->string('DEFAULT LANGUAGE') . '</strong> / ' : '') . ($language['userselect'] ? $lang->string('User Selectable') : $lang->string('Private')) => 'c',
169 "<a href=\"language.php?do=edit&amp;languageid=$language[languageid]\">[" . $lang->string('Edit Settings') . "]</a> <a href=\"language.php?do=reload&amp;languageid=$language[languageid]\">[" . $lang->string('Reload Language XML') . "]</a>" => 'c'
170 ));
171 }
172
173 $admin->row_span('<a href="language.php?do=add">[' . $lang->string('Add New Language') . ']</a>', 'tfoot', 'center', 4);
174 $admin->table_end();
175
176 $admin->page_end();
177 }
178
179 /*=====================================================================*\
180 || ###################################################################
181 || # $HeadURL$
182 || # $Id$
183 || ###################################################################
184 \*=====================================================================*/
185 ?>