words.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:15k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: words.php,v $
  15. // | $Date: 2004/02/12 21:16:57 $
  16. // | $Revision: 1.40 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Per-language phrase replacement maintenance (administration
  20. // |   interface)
  21. // +-------------------------------------------------------------+
  22. error_reporting(E_ALL & ~E_NOTICE);
  23. require_once('./global.php');
  24. //Nullify WTN-WDYL Team
  25. include "./../includes/functions/devmode_functions.php";
  26. // default do
  27. $_REQUEST['do'] = trim($_REQUEST['do']);
  28. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  29. $_REQUEST['do'] = "view";
  30. }
  31. // globalise variables
  32. $global = array (
  33. array('category'),
  34. array('id'),
  35. array('language')
  36. );
  37. rg($global);
  38. ############################### SELECT LANGUAGE ###############################
  39. if ($settings[language_on] AND ($_REQUEST['do'] != 'search_wordref')) {
  40. if (!$language) {
  41. $language = $settings['default_language'];
  42. }
  43. $db->query("SELECT * FROM languages");
  44. while ($lang = $db->row_array()) {
  45. if ($lang['id'] == $language) {
  46. $this_language = $lang;
  47. }
  48. $languages[$lang[id]] = "$lang[name]";
  49. }
  50. admin_header('Languages', 'Translate Words', 
  51. array('dir' => $this_language['direction'], 'lang' => $this_language['isocode'], 'charset' => $this_language['contenttype'])
  52. );
  53. $table[] = array(
  54. "<b>Currently viewing $languages[$language] templates:</b>", 
  55. form_select('language', $languages, NULL, $language, NULL, NULL, NULL, NULL, 1) . '<input type="submit" name="submit" value="Change">'
  56. );
  57. table_header("View Language", 'words.php');
  58. table_content('', $table);
  59. table_footer();
  60. echo "</form>";
  61. unset($table);
  62. }
  63. ############################### UPDATE WORDS ###############################
  64. if ($_REQUEST['do'] == "update") {
  65. $db->query("SELECT DISTINCT name FROM template_words_cat");
  66. while ($cat = $db->row_array()) {
  67. $cats[] = $cat['name'];
  68. }
  69. $db->query("SELECT DISTINCT id, name FROM template_words_cat WHERE name IN " . array2sql($cats) . " GROUP BY name");
  70. while ($cats = $db->row_array()) {
  71. $catnames[$cats['name']] = $cats['id'];
  72. }
  73. $db->query("SELECT wordref, category FROM template_words WHERE language = '$settings[default_language]' AND !cust");
  74. while ($cats = $db->row_array()) {
  75. $wordref_cats[$cats['wordref']] = $cats['category'];
  76. }
  77. $db->query("DELETE FROM template_words WHERE cust");
  78. $words = $db->query("SELECT wordref, category, text FROM template_words WHERE language = '$language' AND !cust");
  79. while ($res = $db->row_array()) {
  80. $wordrefs[$res['wordref']] = $res['text'];
  81. }
  82. foreach ($_REQUEST['words'] AS $key => $var) {
  83. if ($var != '') {
  84. // if the word has changed lets create / update the custom
  85. if ($var != $wordrefs[$key]) {
  86. $db->query("
  87. INSERT template_words SET
  88. text = '" . addslashes($var) . "',
  89. wordref = '" . addslashes($key) . "',
  90. category = '" . $wordref_cats[$key] . "',
  91. language = '" . addslashes($language) . "',
  92. cust = 1
  93. ");
  94. }
  95. // word does not exist, so lets create it, and backup for it
  96. if (!in_array_keys($key, $wordrefs)) {
  97. $db->query("
  98. INSERT template_words SET
  99. text = '" . addslashes($var) . "',
  100. wordref = '" . addslashes($key) . "',
  101. category = '" . $wordref_cats[$key] . "',
  102. language = '" . addslashes($language) . "'
  103. ");
  104. }
  105. }
  106. }
  107. alert('Words Updated');
  108. $_REQUEST['do'] = "view";
  109. }
  110. ############################### VIEW WORDS ###############################
  111. if ($_REQUEST['do'] == "view") {
  112. admin_header('Languages', 'Translate Words', 
  113. array('dir' => $this_language['direction'], 'lang' => $this_language['isocode'], 'charset' => $this_language['contenttype'])
  114. );
  115. /////////////// SELECT LANGUAGE ///////////////
  116. // set language to 1 if not using languages
  117. if ($settings[language_on] != 1) {
  118. $language = $settings[default_language];
  119. }
  120. $db->query("
  121. SELECT template_words.*, template_words_cat.name AS catname 
  122. FROM template_words 
  123. LEFT JOIN template_words_cat ON (template_words_cat.id = template_words.category)
  124. WHERE language = '$settings[default_language]' AND !cust
  125. ORDER BY category, displayorder
  126. ");
  127. while ($result = $db->row_array()) {
  128. $default[$result[wordref]] = array('text' => $result[text], 'catname' => $result[catname]);
  129. }
  130. $db->query("SELECT wordref, text FROM template_words WHERE language = '$language'");
  131. while ($result = $db->row_array()) {
  132. $showlanguage[$result['wordref']] = $result[text];
  133. }
  134. $y = 1;
  135. echo "<form method="post" action="words.php">" . form_hidden('language', $language, NULL, 1);
  136. if (is_array($default)) {
  137. foreach ($default AS $var => $key) {
  138. if ($key['catname'] != $lastname) {
  139. $table[] = table_midheader($key['catname']);
  140. }
  141. if (strlen($showlanguage[$var]) > 50 OR strlen($var) > 50) {
  142. $table[] = array(
  143. "<b>$var</b>", 
  144. "<textarea DISABLED cols="75" rows="6">$key[text]</textarea><br />" .
  145. form_textarea($var, 75, 6, $showlanguage[$var], 'words', 1)
  146. );
  147. } else {
  148. $table[] = array(
  149. "<b>$var</b>", 
  150. "<input DISABLED value="$key[text]" size="75"><br />" . 
  151. form_input($var, $showlanguage[$var], 75, 'words', 1)
  152. );
  153. }
  154. $lastname = $key['catname'];
  155. }
  156. }
  157. table_header('The following are the phrases used by DeskPRO', 'words.php', array('do' => 'update'));
  158. table_content('', $table);
  159. table_footer('Update Words');
  160. }
  161. admin_footer();
  162. ##############################################################
  163. # DEVELOPER STUFF
  164. ##############################################################
  165. ##############################################################
  166. ################## EXPORT/IMPORT TO/FROM FILES ##########################
  167. if ($_REQUEST['do'] == 'dev_export') {
  168. developer_check();
  169. admin_header('Languages', 'Export To Files');
  170. $languages = $db->query_return_array_id("SELECT id, name FROM languages", 'name');
  171. echo "<FORM METHOD="POST" ACTION="words.php">";
  172. echo form_hidden('do', 'dev_export_do');
  173. $rows[] = array('<B>Languages to Export</B>', form_select('languages', $languages, NULL, array_keys($languages), NULL, NULL, 6));
  174. table_header("Select Languages to Export to /admin/templates/words/*");
  175. table_content(NULL, $rows);
  176. table_footer('Export Languages');
  177. exit;
  178. }
  179. if ($_REQUEST['do'] == 'dev_import') {
  180. developer_check();
  181. admin_header('Languages', 'Import From Files');
  182. $languages = $db->query_return_array_id("SELECT id, name FROM languages", 'name');
  183. echo "<FORM METHOD="POST" ACTION="words.php">";
  184. echo form_hidden('do', 'dev_import_do');
  185. $rows[] = array('<B>Languages to Import</B>', form_select('languages', $languages, NULL, array_keys($languages), NULL, NULL, 6));
  186. $rows[] = array('<B>Dry Run?</B><BR>If selected, don't actually update the database, just show what would be done.',
  187. form_radio_yn('dryrun', 0));
  188. $rows[] = array('<B>Purge Existing?</B><BR>If selected, <FONT COLOR="red"><B>all existing words in all selected languages will be deleted</B></FONT>
  189. and replaced by the import files (testing with a dry run is highly recommended before doing this)',
  190. form_radio_yn('replace_all', 0));
  191. $rows[] = array('<B>Confirm Purge Existing</B><BR>Confirm that you want to purge all existing words from all selected languages.',
  192. form_radio_yn('replace_all_confirm', 0));
  193. table_header("Select Languages to Import to /admin/templates/words/*");
  194. table_content(NULL, $rows, NULL, NULL, NULL, NULL, array('60%', '40%'));
  195. table_footer('Import Languages');
  196. exit;
  197. }
  198. if ($_REQUEST['do'] == 'dev_export_do') {
  199. developer_check();
  200. admin_header('Languages', 'Export To Files');
  201. if (ini_set('track_errors', 1) === FALSE) {
  202. $errors[] = "[WARNING] track_errors is not enabled and could not be enabled; detailed errors will not be available.";
  203. $php_errormsg = 'Unknown error.';
  204. }
  205. $location = dirname(__FILE__) . '/templates/words';
  206. dev_words_export($location);
  207. admin_footer();
  208. exit;
  209. }
  210. if ($_REQUEST['do'] == 'dev_import_do') {
  211. developer_check();
  212. admin_header('Languages', 'Import From Files');
  213. if (ini_set('track_errors', 1) === FALSE) {
  214. $errors[] = "[WARNING] track_errors is not enabled and could not be enabled; detailed errors will not be available.";
  215. $php_errormsg = 'Unknown error.';
  216. }
  217. $location = dirname(__FILE__) . '/templates/words';
  218. dev_words_import($location);
  219. exit;
  220. }
  221. // Search for unused wordrefs
  222. if ($_REQUEST['do'] == "search_wordref") {
  223. developer_check();
  224. admin_header('Languages', 'Find Unused Words');
  225. if (is_win()) {
  226. echo "<B>Error:</B> This function is not currently supported on Windows platforms.";
  227. admin_footer();
  228. exit;
  229. }
  230. $words = $db->query_return_array("SELECT DISTINCT wordref FROM template_words");
  231. if (is_array($words)) {
  232. foreach ($words AS $word) {
  233. $db->query("SELECT id FROM template WHERE template LIKE '%$dplang[%$word[wordref]%]%'");
  234. if ($db->num_rows()) {
  235. continue;
  236. }
  237. exec('grep -ri "dplang['*' . $word['wordref'] . ''*]" ../*', $messages, $return);
  238. if (count($messages)) {
  239. continue;
  240. }
  241. unset($messages);
  242. // jump('*', 'foo');
  243. exec('grep -ri "jump(.*' . $word['wordref'] . '.*)" ../*', $messages, $return);
  244. if (count($messages)) {
  245. continue;
  246. }
  247. unset($messages);
  248. $disused[] = $word['wordref'];
  249. }
  250. }
  251. print "<P><B>Unused Words:</B><BR>";
  252. if (is_array($disused)) {
  253. if (count($disused)) {
  254. foreach($disused AS $word) {
  255. print "$word<BR>n";
  256. }
  257. } else {
  258. print "None";
  259. }
  260. } else {
  261. print "None";
  262. }
  263. print "</P>";
  264. exit;
  265. }
  266. ############################### UPDATE WORDS (DEVELOPER ONLY) ###############################
  267. if ($_REQUEST['do'] == "updatewords") {
  268. developer_check();
  269. $db->query("DELETE FROM template_words WHERE language = 0");
  270. foreach ($_REQUEST['wordname'] AS $key => $var) {
  271. if ($var != '' AND (!@in_array($var, $array))) {
  272. $array[] = $var;
  273. $db->query("INSERT INTO template_words SET
  274. text = '" . mysql_escape_string($_REQUEST['text'][$key]) . "',
  275. wordref = '" . mysql_escape_string($var) . "',
  276. category = '" . $_REQUEST['category'][$key] . "'
  277. ");
  278. }
  279. }
  280. $_REQUEST['do'] = 'admin_edit';
  281. }
  282. ############################### REBUILD ENGLISH DEFAULTS (DEVELOPER ONLY) ###############################
  283. if ($_REQUEST['do'] == "default_langs") {
  284. developer_check();
  285. new_db_class(2);
  286. $entries = $db->query_return_array("SELECT * FROM template_words WHERE cust");
  287. if ($db->num_rows()) {
  288. foreach ($entries AS $entry) {
  289. $db->query("UPDATE template_words SET
  290. language = '$entry[language]',
  291. wordref = '" . mysql_escape_string($entry[wordref]) . "',
  292. text = '" . mysql_escape_string($entry[text]) . "',
  293. category = '$entry[category]',
  294. cust = 0
  295. ");
  296. }
  297. $db->query("DELETE FROM languages WHERE cust");
  298. }
  299. }
  300. ############################### VIEW WORDS (DEVELOPER ONLY) ###############################
  301. if ($_REQUEST['do'] == "admin_edit") {
  302. developer_check();
  303. $db->query("SELECT * FROM template_words_cat");
  304. while ($result = $db->row_array()) {
  305. $cat[$result[id]] = $result[name];
  306. }
  307. $db->query("SELECT template_words.*, template_words_cat.name AS catname FROM template_words 
  308. LEFT JOIN template_words_cat ON (template_words_cat.id = template_words.category)
  309. WHERE language = 0 
  310. ORDER BY category, wordref
  311. ");
  312. unset($lastname);
  313. while ($result = $db->row_array()) {
  314. if ($result[catname] != $lastname) {
  315. $table[] = table_midheader($result[catname]);
  316. }
  317. $i++;
  318. $table[] = array(
  319. form_input($i, $result[wordref], 30, 'wordname', 1),
  320. form_select($i, $cat, 'category', $result[category], NULL, NULL, NULL, NULL, 1),
  321. form_input($i, $result[text], 125, 'text', 1)
  322. );
  323. $lastname = $result[catname];
  324. }
  325. $table[] = table_midheader('Blank');
  326. while ($y < 10) {
  327. $i++;
  328. $table[] = array(
  329. form_input($i, $result[wordref], 30, 'wordname', 1),
  330. form_select($i, $cat, 'category', $result[category], NULL, NULL, NULL, NULL, 1),
  331. form_input($i, $result[text], 125, 'text', 1)
  332. );
  333. $y++;
  334. }
  335. table_header('Default Words', 'words.php', array('do' => 'updatewords'));
  336. table_content('', $table);
  337. table_footer('Updatewords');
  338. ?>
  339. <br /><hr>
  340. <a href="words.php?do=viewcats">View Categories</a><br />
  341. <a href="words.php?do=view">View Words</a><br />
  342. <a href="words.php?do=default_langs">Rebuild language defaults</a><br />
  343. <form method="post" action="words.php"><input type="hidden" name="do" value="newcat">
  344. New Category <input type="text" name="name"><input type="submit" name="submit" value="submit">
  345. </form>
  346. <?php
  347. }
  348. ############################### NEW CATEGORY (DEVELOPER ONLY) ###############################
  349. if ($_REQUEST['do'] == "newcat") {
  350. developer_check();
  351. $db->query("INSERT INTO template_words_cat SET name = '" . mysql_escape_string($_REQUEST['name']) . "'");
  352. $_REQUEST['do'] = "admin_cats";
  353. }
  354. ############################### UPDATE CATEGORIES (DEVELOPER ONLY) ###############################
  355. if ($_REQUEST['do'] == "catupdate") {
  356. developer_check();
  357. foreach ($_REQUEST['name'] AS $key => $var) {
  358. $db->query("UPDATE template_words_cat SET
  359. name = '" . mysql_escape_string($_REQUEST['newname'][$key]) . "',
  360. displayorder = '" . mysql_escape_string($_REQUEST['displayorder'][$key]) . "'
  361. WHERE name = '$key'
  362. ");
  363. }
  364. $_REQUEST['do'] = "admin_cats";
  365. }
  366. ############################### VIEW CATEGORIES (DEVELOPER ONLY) ###############################
  367. if ($_REQUEST['do'] == "admin_cats") {
  368. developer_check();
  369. $db->query("SELECT * FROM template_words_cat ORDER BY displayorder");
  370. while ($result = $db->row_array()) {
  371. $table[] = array(form_input($result[name], $result[displayorder], 3, 'displayorder', 1),
  372. form_hidden($result[name], $result[name], 'name', 1),
  373. form_input($result[name], $result[name], 30, 'newname', 1));
  374. }
  375. table_header('Categories', 'words.php', array('do' => 'catupdate'));
  376. table_content('', $table);
  377. table_footer('Submit');
  378. ?>
  379. <br /><hr>
  380. <a href="words.php?do=viewcats">View Categories</a><br />
  381. <a href="words.php?do=view">View Words</a><br />
  382. <a href="words.php?do=default_langs">Rebuild language defaults</a><br />
  383. <form method="post" action="words.php"><input type="hidden" name="do" value="newcat">
  384. New Category <input type="text" name="name"><input type="submit" name="submit" value="submit">
  385. </form>
  386. <?php
  387. }
  388. ?>