ab5c87e8e441f4f4fbf5470ffedcd05eed2e72c3
[acontent.git] / docs / translation / index.php
1 <?php
2 /************************************************************************/
3 /* AContent                                                             */
4 /************************************************************************/
5 /* Copyright (c) 2010                                                   */
6 /* Inclusive Design Institute                                           */
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          */
10 /* as published by the Free Software Foundation.                        */
11 /************************************************************************/
12
13 define('TR_INCLUDE_PATH', '../include/');
14
15 include_once(TR_INCLUDE_PATH.'vitals.inc.php');
16 include_once(TR_INCLUDE_PATH.'classes/DAO/DAO.class.php');
17 include_once(TR_INCLUDE_PATH.'classes/DAO/LanguagesDAO.class.php');
18 include_once(TR_INCLUDE_PATH.'classes/DAO/LanguageTextDAO.class.php');
19
20 global $msg, $addslashes;
21
22 $dao = new DAO();
23 $languagesDAO = new LanguagesDAO();
24 $languageTextDAO = new LanguageTextDAO();
25 //debug($_REQUEST);exit;
26 if (isset($_REQUEST['reset_filter'])) unset($_REQUEST);
27
28 if (isset($_REQUEST['submit']) || isset($_REQUEST['search']))
29 {
30         if (isset($_REQUEST['submit']))
31         {
32                 if (isset($_REQUEST['term_type']) && $_REQUEST['term_type'] <> '') $term_type = $_REQUEST['term_type'];
33                 
34                 $sql = "SELECT * FROM ".TABLE_PREFIX."language_text 
35                                                 WHERE language_code='".DEFAULT_LANGUAGE_CODE."'";
36                 
37                 if ($term_type <> '') $sql .= " AND variable = '".$term_type."'";
38                 
39                 if (isset($_REQUEST['new_or_translated']) && ($_REQUEST['new_or_translated'] == 1 || $_REQUEST['new_or_translated'] == 2))
40                 {
41                         $subquery = "(SELECT term FROM ".TABLE_PREFIX."language_text
42                                                                                 WHERE language_code='".$_REQUEST['lang_code']."'
43                                                                                   AND text <> '')";
44                         
45                         if ($_REQUEST['new_or_translated'] == 1) $sql .= " AND term NOT IN ".$subquery;
46                         if ($_REQUEST['new_or_translated'] == 2) $sql .= " AND term IN ".$subquery;
47                 }
48                 
49                 if (isset($_REQUEST['new_or_translated']) && $_REQUEST['new_or_translated'] == 3)
50                 {
51                         $sql = "select * from ".TABLE_PREFIX."language_text a 
52                                                         where language_code='".DEFAULT_LANGUAGE_CODE."' 
53                                                                 and exists (select 1 from ".TABLE_PREFIX."language_text b 
54                                                                                                                 where language_code = '".$_REQUEST['lang_code']."' 
55                                                                                                                         and a.term = b.term 
56                                                                                                                         and a.revised_date > b.revised_date)";
57                 }
58         }
59         
60         if (isset($_REQUEST['search']))
61         {
62                 $sql = "SELECT * FROM ".TABLE_PREFIX."language_text 
63                                                 WHERE language_code='".DEFAULT_LANGUAGE_CODE."'
64                                                   AND lower(term) like '%".$addslashes(strtolower(trim($_REQUEST['search_phase'])))."%'";
65         }
66         
67         $rows = $dao->execute($sql);
68         
69         if (is_array($rows)) $num_results = count($rows);
70         else $num_results = 0;
71 }
72
73 if (isset($_REQUEST["save"]))
74 {
75         $sql_save       = "REPLACE INTO ".TABLE_PREFIX."language_text VALUES ('".$_POST["lang_code"]."', '".$_POST["variable"]."', '".$_POST["term"]."', '".$addslashes($_POST["translated_text"])."', NOW(), '')";
76
77         $trans = get_html_translation_table(HTML_ENTITIES);
78         $trans = array_flip($trans);
79         $sql_save = strtr($sql_save, $trans);
80
81         if (!$dao->execute($sql_save)) {
82                 $success_error = '<div class="error">Error: changes not saved!</div>';
83         }
84         else {
85                 $success_error = '<div class="feedback2"">Success: changes saved.</div>';
86         }
87 }
88
89 //$rows_lang = $languagesDAO->getAllExceptLangCode(DEFAULT_LANGUAGE_CODE);                              
90 $rows_lang = $languagesDAO->getAll();                           
91
92 include(TR_INCLUDE_PATH.'header.inc.php');
93 ?>
94
95 <form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
96         <!-- DO NOT REMOVE. It sets the "search" button as the default button, which means when user hit ENTER,
97              the "search" button is fired instead of "submit" button -->
98         <div style="display:none">
99                 <input type="submit" name="search" value="<?php echo _AT('search_phase'); ?>" class="submit" /> 
100         </div>
101         <div class="input-form">
102                 <div class="row">
103                         <span class="required" title="<?php echo _AT('required_field'); ?>">*</span>
104                         <label for="lang_code"><?php echo _AT('choose_lang'); ?></label>:
105                         <select name="lang_code" id="lang_code"> 
106 <?php 
107 foreach ($rows_lang as $row_lang)
108         {
109 ?>
110                                 <option value="<?php echo $row_lang['language_code']; ?>" <?php if ((isset($_REQUEST["lang_code"]) && $_REQUEST["lang_code"] == $row_lang['language_code']) || (!isset($_REQUEST["lang_code"]) && $row_lang['language_code'] == $_SESSION['lang'])) echo 'selected="selected"'; ?>><?php echo $row_lang["english_name"]; ?></option>
111 <?php
112         }
113 ?>
114                         </select>
115                 </div>
116
117 <?php  ?>
118         <fieldset class="group_form"><legend class="group_form"><?php echo _AT('filter'); ?></legend>
119
120 <?php if (isset($num_results)) { ?>
121                 <div class="row">
122                         <h2><?php echo _AT('results_found', $num_results); ?></h2>
123                 </div>
124 <?php } ?>
125
126                 <div>
127                         <?php echo _AT('new_or_translated'); ?><br />
128                         <input type="radio" name="new_or_translated" value="0" id="u0" <?php if (!isset($_REQUEST['new_or_translated']) || $_REQUEST['new_or_translated'] == 0) { echo 'checked="checked"'; } ?> /><label for="u0"><?php echo _AT('all'); ?></label> 
129                         <input type="radio" name="new_or_translated" value="1" id="u1" <?php if ($_REQUEST['new_or_translated'] == 1) { echo 'checked="checked"'; } ?> /><label for="u1"><?php echo _AT('new_terms'); ?></label> 
130                         <input type="radio" name="new_or_translated" value="2" id="u2" <?php if ($_REQUEST['new_or_translated'] == 2) { echo 'checked="checked"'; } ?> /><label for="u2"><?php echo _AT('translated_terms'); ?></label> 
131                         <input type="radio" name="new_or_translated" value="3" id="u3" <?php if ($_REQUEST['new_or_translated'] == 3) { echo 'checked="checked"'; } ?> /><label for="u3"><?php echo _AT('updated_terms'); ?></label> 
132                 </div>
133
134                 <div>
135                         <?php echo _AT('term_type'); ?><br />
136                         <input type="radio" name="term_type" value="" id="t0" <?php if (!isset($_REQUEST['term_type']) || $_REQUEST['term_type'] == "") { echo 'checked="checked"'; } ?> /><label for="t0"><?php echo _AT('all'); ?></label> 
137                         <input type="radio" name="term_type" value="_template" id="t1" <?php if ($_REQUEST['term_type'] == "_template") { echo 'checked="checked"'; } ?> /><label for="t1"><?php echo _AT('interface_terms'); ?></label> 
138                         <input type="radio" name="term_type" value="_msgs" id="t2" <?php if ($_REQUEST['term_type'] == "_msgs") { echo 'checked="checked"'; } ?> /><label for="t2"><?php echo _AT('msg_terms'); ?></label> 
139                 </div>
140
141                 <div>
142                         <input type="submit" name="submit" value="<?php echo _AT('submit'); ?>" class="submit" />
143                         <input type="submit" name="reset_filter" value="<?php echo _AT('reset_filter'); ?>" class="submit" />
144                 </div>
145
146                 <div>
147                         <label for="search_phase"><?php echo _AT('or'). ",<br /><br />" . _AT('search_text'); ?></label>
148                 </div>
149
150                 <div>
151                         <input size="60" type="text" name="search_phase" id="search_phase" value="<?php echo htmlspecialchars(stripslashes($_REQUEST['search_phase'])); ?>" /> 
152                 </div>
153
154                 <div>
155                         <input type="submit" name="search" value="<?php echo _AT('search_phase'); ?>" class="submit" /> 
156                 </div>
157         </fieldset>
158         
159         </div>
160 </form>
161
162 <?php 
163 if (isset($_REQUEST['selected_term'])) 
164 {
165         $sql_english    = "SELECT * FROM ".TABLE_PREFIX."language_text WHERE language_code='".DEFAULT_LANGUAGE_CODE."' AND term='".$_REQUEST["selected_term"]."'";
166         if ($_REQUEST["term_type"] <> "") $sql_english .= " AND variable='".$_REQUEST["term_type"]."' ";
167
168         $rows_english = $dao->execute($sql_english);
169         $row_english = $rows_english[0];
170
171         $rows_selected = $languageTextDAO->getByTermAndLang($_REQUEST["selected_term"], $_REQUEST["lang_code"]);
172         
173 function trans_form() {
174         global $row_english, $rows_selected;
175         global $langs;
176         global $success_error;
177         global $db;
178         global $addslashes;
179
180         if (!is_array($rows_selected)) // add new term
181                 $add_new = true;
182         else // update existing one
183         {
184                 $row_selected = $rows_selected[0];
185                 $add_new = false;
186         }
187 ?>
188 <br />
189 <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>#anchor">
190         <input type="hidden" name="selected_term" value="<?php echo AT_print($_REQUEST['selected_term'], 'input.hidden'); ?>" />
191         <input type="hidden" name="lang_code" value="<?php echo AT_print($_REQUEST['lang_code'], 'input.hidden'); ?>" />
192         <input type="hidden" name="new_or_translated" value="<?php echo AT_print($_REQUEST['new_or_translated'], 'input.hidden'); ?>" />
193         <input type="hidden" name="term_type" value="<?php echo AT_print($_REQUEST['term_type']. 'input.hidden'); ?>" />
194         <input type="hidden" name="search_phase" value="<?php echo htmlspecialchars(stripslashes($_REQUEST['search_phase'])); ?>" />
195         <input type="hidden" name="variable" value="<?php echo $row_english['variable']; ?>" />
196         <input type="hidden" name="term" value="<?php echo AT_print($row_english['term'], 'input.hidden'); ?>" />
197 <?php if (isset($_REQUEST["submit"])) { ?>
198         <input type="hidden" name="submit" value="1" />
199 <?php } ?>
200 <?php if (isset($_REQUEST["search"])) { ?>
201         <input type="hidden" name="search" value="1" />
202 <?php } ?>
203
204         <table border="0" cellspacing="0" cellpadding="2" width="100%" align="left" class="box">
205         <tr>
206                 <th class="box" colspan="2">Edit</th>
207         </tr>
208
209         <?php if ($row_english['context'] <> "") { ?>
210         <tr>
211                 <td align="right" style="font:bold"><?php echo _AT('english_context'); ?>:</td>
212                 <td><?php echo htmlspecialchars(stripslashes($row_english['context'])); ?></td>
213         </tr>
214         <tr>
215                 <td align="right" style="font:bold"><?php echo _AT('translated_context'); ?>:</td>
216                 <td><input type="text" name="translated_context" class="input" value="<?php echo htmlspecialchars(stripslashes($row_selected['context'])); ?>" size="45" /></td>
217         </tr>
218         <?php } ?>
219
220         <tr>
221                 <td valign="top" align="right" nowrap="nowrap" style="font:bold"><?php echo _AT('english_text'); ?>:</td>
222                 <td><?php echo nl2br(htmlspecialchars(stripslashes($row_english['text']))); ?></td>
223         </tr>
224         <tr>
225                 <td valign="top" align="right" nowrap="nowrap" style="font: bold"><label for="translated_text"><?php echo _AT('translated_text'); ?></label>:</td>
226                 <td><textarea rows="4" cols="75" name="translated_text" id="translated_text" class="input2"><?php echo htmlspecialchars(stripslashes($row_selected['text']));?></textarea></td>
227         </tr>
228         <tr>
229                 <td colspan="2" align="center"><input type="submit" name="save" value="Save ALT-S" class="submit" accesskey="s" />
230                 </td>
231         </tr>
232         </table>
233         </form>
234
235         <?php
236                 echo $success_error;
237         }
238 }
239 //displaying templates
240 if ($num_results > 0)
241 {
242         echo '<h3 class="indent">'. _AT("result") .'</h3>'."\n";
243         echo '<div class="input-form">'."\n";
244         echo '<br /><ul>'."\n";
245         if (is_array($rows))
246         {
247                 if (isset($_REQUEST["submit"]))
248                         $submits = htmlspecialchars(SEP)."submit=1";
249                 if (isset($_REQUEST["search"]))
250                         $submits .= htmlspecialchars(SEP)."search=1";
251
252                 foreach ($rows as $row) 
253                 {
254                         if ($row['term'] == $_REQUEST["selected_term"])
255                                 echo '<li>'."\n".'<a name="anchor" title="anchor"></a>'."\n";
256                         else
257                                 echo '<li>'."\n";
258         
259 //                      if ($row['term'] == $_REQUEST["search_phase"]) {
260                                 echo '<a href="'.$_SERVER['PHP_SELF'].'?selected_term='.$row['term'].htmlspecialchars(SEP).'lang_code='.$_REQUEST['lang_code'].htmlspecialchars(SEP).'new_or_translated='.$_REQUEST["new_or_translated"].htmlspecialchars(SEP).'term_type='.$_REQUEST["term_type"].htmlspecialchars(SEP).'search_phase='.$_REQUEST["search_phase"].$submits.'#anchor" ';
261                                 if ($row['term'] == $_REQUEST["selected_term"]) echo 'class="selected"';
262                                 echo '>';
263                                 echo $row['term'];
264                                 echo '</a>'."\n";
265 //                      } 
266         
267                         // display if the term is new or translated
268                         $rows_check = $languageTextDAO->getByTermAndLang($row['term'], $_REQUEST['lang_code']);
269                         $row_check = $rows_check[0];
270                         
271                         // check if the term is new
272                         if ($row_check['text'] == '')
273                                 echo '&nbsp;<small>*New*</small>'."\n";
274                         
275                         // compare revised_date to see if the term is updated since last translation
276                         if ($row_check['revised_date'] <> '' && $row['revised_date'] > $row_check['revised_date'])
277                                 echo '&nbsp;<small>*Updated*</small>'."\n";
278                                 
279                         echo '<br /><br/>';
280                         // display translation form
281                         if ($row['term'] == $_REQUEST["selected_term"]) trans_form();
282                         
283                         echo '</li>'."\n";
284                 }
285         }
286         echo '</ul>'."\n";
287         echo '</div>'."\n";
288 }
289
290 include(TR_INCLUDE_PATH.'footer.inc.php'); 
291 ?>