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

电子政务应用

开发平台:

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: index.php,v $
  15. // | $Date: 2004/02/10 01:34:26 $
  16. // | $Revision: 1.23 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - FAQ maintenance.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL ^ E_NOTICE);
  22. if ($_REQUEST['do'] == 'pdf') {
  23. define('PDF', '1');
  24. }
  25. include "./../global.php";
  26. // default do
  27. $_REQUEST['do'] = trim($_REQUEST['do']);
  28. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  29. $_REQUEST['do'] = "navigate";
  30. }
  31. // globalise variables
  32. $global = array (
  33. array('catid')
  34. );
  35. rg($global);
  36. include ("./faq_include.php");
  37. if ($_REQUEST['do'] != 'pdf') {
  38. tech_nav('faq');
  39. }
  40. ############################### PDF GENERATION ######################################
  41. if ($_REQUEST['do'] == 'pdf') {
  42. if (!$_REQUEST['catid']) {
  43. $_REQUEST['catid'] = 0;
  44. }
  45. define('FPDF_FONTPATH','../../includes/fpdf/font/');
  46. require('../../includes/fpdf/fpdf.php');
  47. $pdf = new FPDF('P', 'mm', 'Letter');
  48. $pdf->Open();
  49. $pdf->AddPage();
  50. $pdf->SetTitle('Knowledge Base');
  51. $pdf->SetCreator('DeskPro v2.0');
  52. $pdf->SetFont('Times', 'B', 24);
  53. $pdf->Cell(0, 10, 'Knowledge Base', 0, 1, 'C');
  54. gen_pdf_faq($_REQUEST['categoryid']);
  55. $pdf->Output();
  56. exit;
  57. }
  58. ############################### SQL UPDATE CATEGORIES ###############################
  59. if ($_REQUEST['do'] == "edit_categories") {
  60. $categorycache = categorycache();
  61. // delete categories if empty, and reload cache
  62. if (is_array($_REQUEST['do_delete'])) {
  63. foreach ($_REQUEST['do_delete'] AS $key => $var) {
  64. $change = 1;
  65. $message .= delete_kbcategory($key);
  66. $categorycache = categorycache();
  67. }
  68. }
  69. foreach ($_REQUEST['do_category'] AS $key => $val) { // sort out parent
  70. if ($val != $categorycache[$key]['parent']) { // not same
  71. if ($val == $key) { // note self
  72. $message .= "<LI>You can set <b>" . $categorycache[$key]['name'] . "'s</b> parent to itself</LI>";
  73. } else { // can't move to own child
  74. if (@in_array($key, $categorycache[$val]['parentarray'])) {
  75. $message .= "<LI>You can not set <b>" . $categorycache[$key]['name'] . "'s</b> parent to one of its children</LI>";
  76. } else { // Update and reload cache
  77. $change = 1;
  78. $db->query("UPDATE faq_cats SET parent = '$val' WHERE id = '$key'");
  79. // reload category data
  80. $categorycache = categorycache();
  81. }
  82. }
  83. }
  84. }
  85. foreach ($_REQUEST['do_order'] AS $key => $var) { // sort out order
  86. $db->query("UPDATE faq_cats SET 
  87. show_order = '" . mysql_escape_string($var) . "' 
  88. WHERE id = '$key'
  89. ");
  90. }
  91. if ($change) {
  92. update_parentlist();
  93. update_counters();
  94. }
  95. $_REQUEST['do'] = "navigate";
  96. }
  97. ############################### SQL: UPDATE ARTICLES ###############################
  98. if ($_REQUEST['do'] == "edit_articles") {
  99. // get articles to check for changes
  100. $db->query("SELECT category, id FROM faq_articles WHERE category = '$_REQUEST[catid]'");
  101. while ($result = $db->row_array()) {
  102. $temp_cache[$result[id]] = $result[category];
  103. }
  104. while (list ($key, $val) = each ($_REQUEST['do_order'])) {
  105. $query = "UPDATE faq_articles SET show_order = '$val'";
  106. // category
  107. if (!($_REQUEST['do_category'][$key])) {
  108. $_REQUEST['do_category'][$key] = 0;
  109. }
  110. // check for changed category
  111. if ($temp_cache[$key] != $_REQUEST[do_category][$key]) {
  112. $change = 1;
  113. }
  114. $query .= ", category = '" . $_REQUEST[do_category][$key] . "'";
  115. $query .= " WHERE id = '$key'";
  116. $db->query($query);
  117. }
  118. if (is_array($_REQUEST['do_delete'])) {
  119. while (list ($key, $value) = each ($_REQUEST['do_delete'])) {
  120. $message .= delete_kbarticle($key);
  121. $change = 1;
  122. }
  123. }
  124. if ($change) {
  125. update_parentlist();
  126. update_counters();
  127. }
  128. $_REQUEST['do'] = "navigate";
  129. }
  130. ############################### CREATE NAVIGATION ###############################
  131. if ($_REQUEST['do'] == "navigate") {
  132. $catarray = faq_categoryjump();
  133. if (!$catid) {
  134. $catid = 0;
  135. }
  136. $parent = $categorycache[$catid]['parent'];
  137. while ($parent > 0) {
  138. $nav = " >> <a href="index.php?catid=" . $parent . "">" . $categorycache[$parent]['name'] . "</a>" . $nav;
  139. $parent = $categorycache[$parent]['parent'];
  140. }
  141. $nav = "<a href="index.php">Top</a>" . $nav;
  142. if ($catid != "0") {
  143. $nav .= " >> <a href="index.php?catid=$catid">" . $categorycache[$catid]['name'] . "</a>";
  144. }
  145. $nav .= "&nbsp;&nbsp;&nbsp;[Generate PDF <A HREF="index.php?catid=$catid&do=pdf">(These Topics)</A>&nbsp;&nbsp;<A HREF="index.php?catid=0&do=pdf">(All Topics)</A>]";
  146. echo "<BR><B>$nav</b><br /><br />";
  147. if ($message) { // errors from updating
  148. echo table_border("<UL>$message");
  149. echo "<br />";
  150. }
  151. //////////////////// sub categories ////////////////////
  152. $db->query("SELECT * FROM faq_cats WHERE parent = '$catid' ORDER BY show_order");
  153. while ($cats = $db->row_array()) {
  154. $table[$i] = array(
  155. "<b>$cats[name] ($cats[articles] / $cats[totalarticles])</b>", 
  156. form_input($cats[id], $cats[show_order], '3', 'do_order'),
  157. iff($user['p_delete_k'], form_checkbox_single($cats[id], '1', '', 'do_delete'), ''),
  158. iff($user['p_edit_k'], form_select($cats[id], $catarray, 'do_category', $catid), ''),
  159. iff($user['p_edit_k'], "<a href="category.php?do=edit&catid=$cats[id]">Edit</a>", "<FONT COLOR="GRAY">Edit</FONT>"),
  160. "<a href="index.php?catid=$cats[id]">View</a>"
  161. );
  162. $i++;
  163. }
  164. if (is_array($table)) {
  165. $columns = array('name', 'order', 'delete', 'move', 'edit', 'view');
  166. table_header('Subcategories', 'index.php', array('do' => 'edit_categories', 'catid' => $catid));
  167. table_content($columns, $table, $extra);
  168. table_footer('Update Categories');
  169. } else {
  170. echo table_border('<b><center>This category has no subcategories.</center></b>');
  171. }
  172. //////////////////// related categories ////////////////////
  173. if ($_REQUEST['catid'] != 0) { // we don't have them for home category
  174. $db->query("
  175. SELECT faq_cats.*
  176. FROM faq_cats_related
  177. LEFT JOIN faq_cats ON (faq_cats_related.related_cat = faq_cats.id)
  178. WHERE show_cat = '$catid'
  179. ORDER BY name
  180. ");
  181. while ($cats = $db->row_array()) {
  182. $cats[name] = str_replace(' ', '&nbsp;', $cats[name]);
  183. $relcats[] = "<A HREF="index.php?catid=$cats[id]">$cats[name]</A>";
  184. }
  185. if (count($relcats)) {
  186. $relcats = join('&nbsp;&nbsp;', $relcats);
  187. } else {
  188. $relcats = '<I>This category has no related categories.';
  189. }
  190. table_header('Related Categories');
  191. table_content('', array($relcats));
  192. table_footer();
  193. }
  194. //////////////////// articles ////////////////////
  195. $catarray2 = $catarray;
  196. unset($catarray2[0]);
  197. unset($columns, $table, $extra);
  198. // select the articles
  199. $db->query("
  200. SELECT * FROM faq_articles
  201. WHERE category = '$catid'
  202. ORDER BY show_order
  203. ");
  204. while ($article = $db->row_array()) {
  205. $table[] = array(
  206. "<b>$article[title]</b>", 
  207. form_input($article[id], $article[show_order], '3', 'do_order'),
  208. form_checkbox_single($article[id], '1', '', 'do_delete'),
  209. form_select($article[id], $catarray2, 'do_category', $catid),
  210. iff($article[to_validate], "<a href="validate.php?id=$article[id]">Validate</a>", '<i>Validated</i>'),
  211. "<a href="view.php?do=view&articleid=$article[id]">View</a>"
  212. );
  213. }
  214. if (is_array($table)) {
  215. $columns = array('Title', 'Order', 'Delete', 'Move', 'Validate', 'View');
  216. table_header('Articles in this Category', 'index.php', array('do' => 'edit_articles', 'catid' => $catid));
  217. table_content($columns, $table, $extra);
  218. table_footer('Update Articles');
  219. } elseif ($catid != '0') {
  220. echo table_border('<b><center>There are no articles in this category.</center></b>');
  221. }
  222. ############################### END PAGE ###############################
  223. echo "<form method="post" action="index.php">" . form_select('catid', $catarray) . "&nbsp;&nbsp;&nbsp;<input type="submit" name="submit" value="Jump"><br /><br />";
  224. if (count($catarray) > 1 AND $user['p_add_k']) {
  225. echo "<a href="view.php?do=add&catid=$catid">Add New Article</a><br />";
  226. }
  227. echo "<a href="category.php?do=add">Add New Category</a><br />";
  228. if(defined('DEVELOPERMODE')) {
  229. echo "<A HREF="actions.php?do=maintenance">Run FAQ Maintenance Tasks</A><BR />n";
  230. }
  231. }
  232. tech_footer();
  233. ?>