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

电子政务应用

开发平台:

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: view.php,v $
  15. // | $Date: 2004/02/10 01:34:26 $
  16. // | $Revision: 1.51 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - FAQ article viewer.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL ^ E_NOTICE);
  22. include "./../global.php";
  23. // default do
  24. $_REQUEST['do'] = trim($_REQUEST['do']);
  25. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  26. $_REQUEST['do'] = "view";
  27. }
  28. // globalise variables
  29. $global = array (
  30. array('articleid')
  31. );
  32. rg($global);
  33. include ("./faq_include.php");
  34. if ($_REQUEST['do'] == 'delcomment' AND $_REQUEST['comment']) {
  35. if ($user['p_delete_c_k']) {
  36. $db->query("DELETE FROM faq_comments WHERE id = '$_REQUEST[comment]'");
  37. alert("Comment deleted.");
  38. } else {
  39. alert("You don't have permission to delete comments.");
  40. }
  41. $_REQUEST['do'] = 'view';
  42. }
  43. if (!$_REQUEST['articleid'] AND !$_REQUEST['do'] == 'add' AND !$_REQUEST['do'] == 'add2') {
  44. mistake('An article ID was not specified.');
  45. exit;
  46. }
  47. /******************************************************************************
  48. //       ADD ARTICLE
  49. ******************************************************************************/
  50. if ($_REQUEST['do'] == "add2") { // validation (will lose data but can only get here by bypassing javascript)
  51. max_limits('faq');
  52. if (($_REQUEST['title'] == '') OR ($_REQUEST['question'] == '') OR ($_REQUEST['answer'] == '') OR ($_REQUEST['category'] == '')) {
  53. jump('view.php?do=add', 'You left either the title, question, category or answer empty');
  54. exit();
  55. } elseif (!$user['p_add_k']) {
  56. nopermission('add articles');
  57. } else { // insert into article
  58. $ref = make_ticket_ref('faq_articles');
  59. $checks = xss_check(array(
  60. $_REQUEST['title'],
  61. $_REQUEST['answer'],
  62. $_REQUEST['question'],
  63. $_REQUEST['question_html'],
  64. $_REQUEST['answer_html']), 'user');
  65. $db->query("INSERT INTO faq_articles SET
  66. title = '" . mysql_escape_string($checks[0]) . "',
  67. category = '" . mysql_escape_string($_REQUEST['category']) . "',
  68. answer = '" . mysql_escape_string($checks[1]) . "',
  69. question = '" . mysql_escape_string($checks[2]) . "',
  70. question_html = '" . mysql_escape_string($checks[3]) . "',
  71. answer_html = '" . mysql_escape_string($checks[4]) . "',
  72. keywords = '" . mysql_escape_string($_REQUEST['hidListVals']) . "',
  73. show_order = '" . mysql_escape_string($_REQUEST['order']) . "',
  74. date_made = '" . mktime() . "',
  75. ref = '" . mysql_escape_string($ref) . "',
  76. techid_made = $user[id]
  77. ");
  78. $id = $db->last_id();
  79. // update category dates
  80. $result = $db->query_return("SELECT parentlist FROM faq_cats WHERE id = '$_REQUEST[category]'");
  81. $parentlist = iff($result['parentlist'], $result['parentlist'] . ",$_REQUEST[category]", $_REQUEST['category']);
  82. $db->query("UPDATE faq_cats SET 
  83. newdate = " . mktime() . ",
  84. totalarticles = (totalarticles + 1)
  85. WHERE id IN ($parentlist)
  86. ");
  87. $db->query("UPDATE faq_cats SET
  88. articles = (articles + 1)
  89. WHERE id = '$_REQUEST[category]'
  90. ");
  91. // sort out keywords
  92. $_REQUEST['hidListVals'] = explode(',', $_REQUEST['hidListVals']);
  93. // add article to this keyword if keyword exists
  94. if (is_array($_REQUEST['hidListVals'])) {
  95. $keyword_data = $db->query_return_array("SELECT word FROM faq_keywords WHERE word IN " . array2sql($_REQUEST['hidListVals']) . "");
  96. if ($db->num_rows()) {
  97. foreach ($keyword_data AS $result) {
  98. $update_words[] = $result['word'];
  99. $db->query("UPDATE faq_keywords SET articles = CONCAT(articles, ',$id') WHERE word = '$result[word]'");
  100. }
  101. }
  102. }
  103. if (is_array($_REQUEST['hidListVals'])) {
  104. foreach ($_REQUEST['hidListVals'] AS $key => $var) {
  105. if (!(@in_array($var, $update_words))) {
  106. $keywords[$var] = $id;
  107. }
  108. }
  109. // new keywords
  110. if (is_array($keywords)) {
  111. $db->query("INSERT INTO faq_keywords (word, articles) VALUES " . insertsql($keywords));
  112. }
  113. }
  114. // sort out attachment
  115. if (validate_attachment($error)) {
  116. $attach = add_attachment();
  117. $db->query("INSERT INTO faq_attachments SET
  118. blobid = '$attach[blobid]',
  119. filename = '" . mysql_escape_string($attach['name']) . "',
  120. filesize = '" . mysql_escape_string($attach['size']) . "',
  121. extension = '" . mysql_escape_string($attach['extension']) . "',
  122. timestamp = '" . mktime() . "',
  123. techid = '$user[id]',
  124. articleid = '$id'
  125. ");
  126. }
  127. $tmp = split(';', $_REQUEST['selectBoxBString']);
  128. if (is_array($tmp)) {
  129. foreach ($tmp AS $key => $var) {
  130. if ($var) {
  131. $array[] = array($var, $id);
  132. }
  133. }
  134. }
  135. if (is_array($array)) {
  136. $temp = insertsql($array);
  137. $db->query(" INSERT INTO faq_articles_related
  138. (related_article, show_article)
  139. VALUES " . insertsql($array) . "
  140. ");
  141. }
  142. $subs = $db->query_return_array("SELECT * FROM faq_subscriptions WHERE catid = '$_REQUEST[category]' AND new");
  143. if (is_array($subs)) {
  144. // Do notifications
  145. foreach ($subs AS $key => $val) {
  146. $user_details = $db->query_return("SELECT * FROM user WHERE id = '$val[userid]'");
  147. if ($db->num_rows()) {
  148. $category = $db->query_return_array("SELECT * FROM faq_cats WHERE id = '$_REQUEST[category]'");
  149. $article = $db->query_return("SELECT * FROM faq_articles WHERE id = '$id'");
  150. $user_details = update_user_details($user_details);
  151. eval(makeemaileval('message', 'BODY_category_updated', $subject));
  152. dp_mail($user_details['email'], $subject, $message);
  153. }
  154. }
  155. }
  156. jump("view.php?do=view&articleid=$id", 'FAQ entry added');
  157. }
  158. }
  159. /******************************************************************************
  160. //       EDIT ARTICLE
  161. ******************************************************************************/
  162. // validation (will loose data but can only get here by bypassing javascript)
  163. if ($_REQUEST['do'] == "update") { 
  164. if (($_REQUEST['title'] == '') OR ($_REQUEST['question'] == '') OR ($_REQUEST['answer'] == '') OR ($_REQUEST['category'] == '')) {
  165. jump("view.php?do=view&articleid=$articleid", 'You left either the title, question or answer empty');
  166. }
  167. if (!$user['p_edit_k']) {
  168. nopermission('edit articles');
  169. }
  170. $article = $db->query_return("
  171. SELECT faq_articles.*, faq_cats.parentlist AS parentlist
  172. FROM faq_articles 
  173. LEFT JOIN faq_cats ON (faq_cats.id = faq_articles.category)
  174. WHERE faq_articles.id = '$_REQUEST[articleid]'
  175. ");
  176. if ($db->num_rows() < 1) {
  177. jump("index.php", 'The article you are trying to update does not exist');
  178. }
  179. //////////////// KEYWORDS ////////////////
  180. if ((trim($_REQUEST['hidListVals']) != '') OR (trim($article['keywords']) != '')) {
  181. $keywords_new = explode(',', $_REQUEST['hidListVals']);
  182. $keywords_old = explode(',', $article['keywords']);
  183. $keywords_all = array_unique(array_merge($keywords_new, $keywords_old));
  184. if (is_array($keywords_all)) {
  185. // get current data we are changing
  186. $db->query("SELECT * FROM faq_keywords WHERE word IN " . array2sql($keywords_all) . "");
  187. while ($result = $db->row_array()) {
  188. // get array of articles for this word
  189. $keyword_articles = split(',', $result['articles']);
  190. // remove this article (we do this as standard because we just add it back in again anyway)
  191. $var = array_search($_REQUEST['articleid'], $keyword_articles);
  192. if ($var!==null && $var!==false) {
  193. unset($keyword_articles[$var]);
  194. }
  195. $new_data[$result['word']] = $keyword_articles;
  196. }
  197. }
  198. // now we add the $keywords_new entries
  199. foreach ($keywords_new AS $key => $var) {
  200. $new_data[$var][] = $_REQUEST['articleid'];
  201. }
  202. foreach ($new_data AS $key1 => $var1) {
  203. // now rebuild back into standard format
  204. foreach ($var1 AS $key2 => $var2) {
  205. $thearticles .= $var2 . ',';
  206. }
  207. $thearticles = substr($thearticles, 0, -1);
  208. $keyword_data[$key1] = $thearticles;
  209. unset($thearticles);
  210. }
  211. }
  212. if (is_array($keyword_data)) {
  213. $db->query("REPLACE INTO faq_keywords (word,articles) VALUES " . insertsql($keyword_data) . "");
  214. }
  215. // if we have removed the article, and there is now no articles for that word we need to delete the word
  216. $db->query("DELETE FROM faq_keywords WHERE articles = ''");
  217. //////////////// ARTICLE FIELDS ////////////////
  218. $checks = xss_check(array(
  219. $_REQUEST['title'],
  220. $_REQUEST['answer'],
  221. $_REQUEST['question'],
  222. $_REQUEST['question_html'],
  223. $_REQUEST['answer_html']), 'tech');
  224. $db->query("
  225. UPDATE faq_articles SET
  226. title = '" . mysql_escape_string($checks[0]) . "',
  227. category = '" . mysql_escape_string($_REQUEST['category']) . "',
  228. answer = '" . mysql_escape_string($checks[1]) . "',
  229. question_html = '" . mysql_escape_string($checks[3]) . "',
  230. answer_html = '" . mysql_escape_string($checks[4]) . "',
  231. question = '" . mysql_escape_string($checks[2]) . "',
  232. keywords = '" . mysql_escape_string($_REQUEST['hidListVals']) . "',
  233. show_order = '" . mysql_escape_string($_REQUEST['order']) . "',
  234. date_modified = '" . mktime() . "',
  235. techid_modified = '$user[id]'
  236. WHERE id = '$_REQUEST[articleid]'
  237. ");
  238. //////////////// CATEGORY TOTALS ////////////////
  239. if ($article['category'] != $_REQUEST['category']) { // reduce old parents by 1
  240. if ($article['parentlist']) {
  241. $db->query("UPDATE faq_cats SET 
  242. totalarticles = (totalarticles - 1)
  243. WHERE id IN ($article[parentlist])
  244. ");
  245. }
  246. // increase new parents by 1
  247. $result = $db->query_return("SELECT parentlist FROM faq_cats WHERE id = '$_REQUEST[category]'");
  248. if ($result['parentlist']) {
  249. $db->query("UPDATE faq_cats SET 
  250. newdate = " . mktime() . ",
  251. totalarticles = (totalarticles + 1)
  252. WHERE id IN ($result[parentlist])
  253. ");
  254. }
  255. // update new category
  256. $db->query("UPDATE faq_cats SET
  257. totalarticles = (totalarticles + 1),
  258. articles = (articles + 1)
  259. WHERE id = $_REQUEST[category]
  260. ");
  261. // update old category
  262. $db->query("UPDATE faq_cats SET
  263. totalarticles = (totalarticles - 1),
  264. articles = (articles - 1)
  265. WHERE id = $article[category]
  266. ");
  267. }
  268. //////////////// RELATED ARTICLES ////////////////
  269. $db->query("DELETE FROM faq_articles_related WHERE show_article = '$_REQUEST[articleid]'");
  270. $tmp = split(';', $_REQUEST['selectBoxBString']);
  271. if (is_array($tmp)) {
  272. foreach ($tmp AS $key => $var) {
  273. if ($var) {
  274. $array[] = array($var, $_REQUEST['articleid']);
  275. }
  276. }
  277. }
  278. if (is_array($array)) {
  279. $temp = insertsql($array);
  280. $db->query(" INSERT INTO faq_articles_related
  281. (related_article, show_article)
  282. VALUES " . insertsql($array) . "
  283. ");
  284. }
  285. //////////////// CATEGORY DATES ////////////////
  286. // update category dates
  287. $result = $db->query_return("SELECT parentlist FROM faq_cats WHERE id = '$_REQUEST[category]'");
  288. $parentlist = iff($result['parentlist'], $result['parentlist'] . ",$_REQUEST[category]", $_REQUEST['category']);
  289. $db->query("UPDATE faq_cats SET editdate = '" . mktime() . "' WHERE id IN ($parentlist)");
  290. // sort out attachment
  291. if (validate_attachment($error)) {
  292. // add attachment
  293. $attach = add_attachment();
  294. // add information to ticket table
  295. $db->query("INSERT INTO faq_attachments SET
  296. blobid = '$attach[blobid]',
  297. filename = '" . mysql_escape_string($attach['name']) . "',
  298. filesize = '" . mysql_escape_string($attach['size']) . "',
  299. extension = '" . mysql_escape_string($attach['extension']) . "',
  300. timestamp = '" . mktime() . "',
  301. techid = '$user[id]',
  302. articleid = '$articleid'
  303. ");
  304. }
  305. $subs = $db->query_return_array("SELECT * FROM faq_subscriptions WHERE (catid = '$_REQUEST[category]' AND new) OR (articleid = $_REQUEST[articleid] AND edit)");
  306. if ($db->num_rows()) {
  307. // Do notifications
  308. foreach ($subs AS $key => $val) {
  309. $user_details = $db->query_return("SELECT * FROM user WHERE id = '$val[userid]'");
  310. if ($db->num_rows()) {
  311. $category = $db->query_return_array("SELECT * FROM faq_cats WHERE id = '$_REQUEST[category]'");
  312. $article = $db->query_return_array("SELECT * FROM faq_articles WHERE id = '$articleid'");
  313. $user_details = update_user_details($user_details);
  314. eval(makeemaileval('message', 'BODY_article_changed', $subject));
  315. dp_mail($user_details['email'], $subject, $message);
  316. }
  317. }
  318. }
  319. alert('Article Updated');
  320. $_REQUEST['do'] = 'view';
  321. }
  322. /******************************************************************************
  323. //      VIEW ARTICLE
  324. ******************************************************************************/
  325. if ($_REQUEST['do'] == "view" OR $_REQUEST['do'] == "add") {
  326. if ($_REQUEST['do'] == 'add') {
  327. max_limits('faq');
  328. $db->query("SELECT id FROM faq_cats LIMIT 0,1");
  329. if (!$db->num_rows()) {
  330. mistake('You must create a category before creating an article');
  331. }
  332. }
  333. // get article data
  334. if ($_REQUEST['do'] == "view") {
  335. if (!$articleid) {
  336. mistake("No article was specified to view.");
  337. }
  338. $article = $db->query_return("SELECT * FROM faq_articles WHERE id = '$articleid'");
  339. if (!$db->num_rows()) {
  340. mistake("The article could not be found.");
  341. }
  342. }
  343. if ($_REQUEST['do'] == 'add') {
  344. $article['title'] = $_REQUEST['title'];
  345. $article['question'] = $_REQUEST['question'];
  346. $article['answer'] = $_REQUEST['answer'];
  347. }
  348. tech_nav('faq');
  349. ############################### TOP NAVIGATION ###############################
  350. $catarray = faq_categoryjump();
  351. unset($catarray[0]);
  352. if ($_REQUEST['do'] == "view") {
  353. $catid = $article['category'];
  354. $parent = $categorycache[$catid]['parent'];
  355. while ($parent > 0) {
  356. $nav = " >> <a href="index.php?catid=" . $parent . "">" . $categorycache[$parent]['name'] . "</a>" . $nav;
  357. $parent = $categorycache[$parent]['parent'];
  358. }
  359. $nav = "<a href="index.php">Top</a>" . $nav;
  360. if ($catid != "0") {
  361. $nav .= " >> <a href="index.php?catid=$catid">" . $categorycache[$catid]['name'] . "</a>";
  362. }
  363. $nav = $nav . " >> " . $article['title'];
  364. echo "<BR><B>$nav</b><br /><br />";
  365. }
  366. ############################### ARTICLE FIELDS ###############################
  367. echo "<form id="faqform" name="faqform" enctype="multipart/form-data" method="post" action="view.php" onSubmit="postThis();selectBoxToString('selectFrom','selectBoxAString');selectBoxToString('selectInto','selectBoxBString');">";
  368. $table[] = array('<b>Category</b>', form_select('category', $catarray, '', iff($_REQUEST['catid'], $article['category'], $article['category'])));
  369. $table[] = array('<b>Title</b>', form_input('title', $article['title'], '50'));
  370. $table[] = array(
  371. "<b>Question</b><br /><br />" .
  372. wysiwyg('faqform', 'question', 'View in HTML editor', 'question') .'<br><br><br>' . form_checkbox_single('question_html', 1, $article['question_html']) . "<b>Treat question as HTML</b>",
  373. form_textarea('question', 70, 10, $article['question'])
  374. );
  375. $table[] = array(
  376. "<b>Answer</b><br /><br />" . 
  377. wysiwyg('faqform', 'answer', 'View in HTML editor', 'answer') .'<br><br><br>' . form_checkbox_single('answer_html', 1, $article['answer_html']) . "<b>Treat answer as HTML</b>",
  378. form_textarea('answer', 70, 10, $article['answer'])
  379. );
  380. $keywords = "
  381. <table border="0" cellspacing="0" cellpadding="0">
  382. <tr><td>
  383. <select name="cmbAdd" size="10" multiple="multiple" style="width:200px" onDblClick="return removeFromList()"></select>
  384. </td><td>&nbsp;&nbsp;&nbsp;&nbsp;<input name="Button" type="button" onClick="return removeFromList()" value="   Remove  "></td></tr><tr><td>
  385. <br /><input type="text" name="txtAdd" tabindex="0" /><input type=hidden name="hidListVals" value="$article[keywords]"><input name="Add" type="button" tabindex="1" onClick="return addToList()" value="    Add    "/> 
  386. </td></tr><tr><td>
  387. </td></tr></table>";
  388. $table[] = array('<b>Key Words</b><br /><br />Add multiple keywords at once by<br />seperating with commas', $keywords);
  389. if ($_REQUEST['do'] == 'view') {
  390. echo form_hidden('do', 'update');
  391. echo form_hidden('articleid', $articleid);
  392. $title = 'Update the FAQ article';
  393. } else {
  394. echo form_hidden('do', 'add2');
  395. $title = 'Create new FAQ article';
  396. }
  397. echo form_hidden('answer_html', '');
  398. echo form_hidden('question_html', '');
  399. echo form_hidden('selectBoxAString', '');
  400. echo form_hidden('selectBoxBString', '');
  401. table_header($title);
  402. table_content('', $table);
  403. table_footer();
  404. echo get_javascript('keywords.js');
  405. unset($table);
  406. ############################### RELATED ARTICLES ###############################
  407. function print_main($arg) { 
  408. global $cats, $y, $cat_ref;
  409. if (!$y) {
  410. $y = '0';
  411. }
  412. $cat_ref[$cats[0][$arg][id]] = "$y";
  413. $data = "categoryArray[$y] = new Array('" . $cats[0][$arg]['name'] . "',-1,0,0);n";
  414. $y++;
  415. return $data;
  416.  
  417. function print_subs($arg) { 
  418. global $cats, $y, $cat_ref; 
  419. foreach ($arg as $key => $val) {
  420. $cat_ref[$arg[$key]['id']] = $y;
  421. $data .= "categoryArray[$y] = new Array('" . addslashes_js($arg[$key]['name']) . "'," . $cat_ref[$arg[$key]['parent']] . ",0,0);n";
  422. $y++; 
  423. if (is_array($cats[$arg[$key]['id']])) { 
  424.    $data .= print_subs($cats[$arg[$key]['id']], $delim); 
  425. }  
  426. }
  427. return $data;
  428. }
  429. // get related articles
  430. $db->query("SELECT * FROM faq_articles_related WHERE show_article = '$articleid'");
  431. while ($result = $db->row_array()) {
  432. $related[] = $result['related_article'];
  433. }
  434. // get cats
  435. $db->query("SELECT * from faq_cats ORDER by parent, show_order");
  436. while ($result = $db->row_array()) { 
  437. $cats[$result['parent']][] = array(
  438. "name" => $result['name'], 
  439. "id" => $result['id'],
  440. "parent" => $result['parent']
  441. );  
  442. }     
  443.  
  444. for ($i=0; $i<count($cats[0]); $i++) { 
  445. $data .= print_main($i); 
  446. if (is_array($cats[$cats[0][$i]['id']])) { 
  447. $data .=  print_subs($cats[$cats[0][$i]['id']]); 
  448. }
  449. // get articles
  450. $y = 0;
  451. $z = 1;
  452. $db->query("SELECT id, category, title FROM faq_articles ORDER by category, show_order");
  453. while ($result = $db->row_array()) {
  454. $data .= "articleArray[$y] = new Array('" . addslashes_js($result['title']) . "','$result[id];$y;'," . $cat_ref[$result['category']] . ",'" . 
  455. iff(@in_array($result[id], $related), 'selectInto', 'selectFrom') . "');n";
  456. $y++;
  457. }
  458. $columns = array('Title', 'Delete Relation');
  459. table_header('Related Articles');
  460. table_html(0, 1);
  461. echo get_javascript('swapbox.js');
  462. ?>
  463. <input type="hidden" name="whitespace" value="&nbsp;&nbsp;&nbsp;">
  464. <script language="javascript">
  465. var categoryArray = new Array();
  466. var articleArray = new Array();
  467. <?php echo $data; ?>
  468. </script>
  469. <table border="0" cellpadding="2" cellspacing="0" align="center">
  470. <tr>  
  471. <td>
  472. <select name="selectFrom" size="10" style="width: 70mm" onChange="document.forms['faqform'].elements['displayTrail'].value = getArticleTrail(this.selectedIndex,this.name); document.forms['faqform'].elements['selectInto'].selectedIndex = -1; if(this.options[this.selectedIndex].value != '')document.forms['faqform'].elements['to'].disabled = false;else document.forms['faqform'].elements['to'].disabled = true; document.forms['faqform'].elements['back'].disabled = true;"></select>
  473. </td>
  474. <td width="30" align="center">
  475. <input type="button" value="&gt;&gt;" name="to" onClick="shiftArticle('selectFrom','selectInto');this.disabled = true;" >
  476. </td>
  477. <td width="30" align="center">
  478. <input type="button" value="&lt;&lt;" name="back" onClick="shiftArticle('selectInto','selectFrom');this.disabled = true;">
  479. </td>
  480. <td>
  481. <select name="selectInto" size="10" style="width: 70mm" onChange="document.forms['faqform'].elements['displayTrail'].value = getArticleTrail(this.selectedIndex,this.name); document.forms['faqform'].elements['selectFrom'].selectedIndex = -1; if(this.options[this.selectedIndex].value != '')document.forms['faqform'].elements['back'].disabled = false; else document.forms['faqform'].elements['back'].disabled = true; document.forms['faqform'].elements['to'].disabled = true;">
  482. </select>
  483. </td>
  484. </tr>
  485. <tr>
  486. <td colspan="4" align="center"><input type="text" name="displayTrail" value="" size="90"></td>
  487. </tr>
  488. </table>
  489. <SCRIPT LANGUAGE="JavaScript">
  490. fillSelectBox(-1,''); 
  491. document.forms['faqform'].elements['back'].disabled = true;
  492. document.forms['faqform'].elements['to'].disabled = true;
  493. retrieveVals();
  494. </SCRIPT>
  495. <?php
  496. table_html(0, 2);
  497. table_footer();
  498. ############################### ATTACHMENTS ###############################
  499. echo "<table width="100%" cellpadding="3"><tr><td valign="top">";
  500. table_header('Add Attachment');
  501. table_content('', array("<input type="file" name="attachment">"));
  502. table_footer();
  503. unset($table);
  504. echo "</td>"; 
  505. if ($_REQUEST['do'] == 'view') {
  506. echo "<td valign="top">";
  507. $db->query("SELECT filesize, id, filename, blobid, extension FROM faq_attachments WHERE articleid = '$articleid'");
  508. while ($attachment = $db->row_array()) {
  509. $attachment['filesize'] = number_format($attachment['filesize'] / 1024, 2);
  510. $table[] = array(
  511. $attachment['filename'],
  512. $attachment['filesize'] . " kb",
  513. "<a href="attachment.php?do=download&id=$attachment[id]&articleid=$articleid">download</a>",
  514. jprompt('Are you sure you want to delete this attachment?', "attachment.php?do=delete&id=$attachment[id]&articleid=$articleid", 'Delete Attachment'));
  515. }
  516. table_header('Current Attachments');
  517. table_content(array('Filename', 'Size', 'Download', 'Delete'), $table);
  518. table_footer();
  519. unset($table);
  520. echo "</td></tr></table>";
  521. } else {
  522. echo "</td></tr></table>";
  523. }
  524. ############################### COMMENTS ###############################
  525. if ($_REQUEST['do'] == "view") {
  526. $db->query("
  527. SELECT faq_comments.id as id, userid, useremail, comments, articleid, user.username, user.email 
  528. FROM faq_comments
  529. LEFT JOIN user ON (faq_comments.userid = user.id)
  530. WHERE articleid = '$articleid'
  531. ");
  532. while ($comment = $db->row_array()) {
  533. if ($comment[userid]) {
  534. $show_name = "<a href="./../users/view.php?id=$comment[userid]">$comment[username]</a>";
  535. } else {
  536. $show_name = $comment[useremail];
  537. }
  538. $table[] = array(
  539. $comment['comments'],
  540. $show_name,
  541. iff($user['p_delete_c_k'],
  542. jprompt('Are you sure you want to delete this comment?', "view.php?do=delcomment&articleid=$articleid&comment=$comment[id]", 'Delete Comment'),
  543. "<FONT COLOR="GRAY">Delete Comment</FONT>"
  544. ),
  545. "<a href="./../tickets/newticket.php?commentid=$comment[id]">Create Ticket</a>"
  546. );
  547. }
  548. $columns = array('Comments', 'Submitter', 'Delete', 'Create Ticket');
  549. table_header('Comments from users about this article', '', '', '', 'AddForm');
  550. table_content($columns, $table, $extra, '', $top);
  551. table_footer();
  552. unset($table, $columns);
  553. $db->query("
  554. SELECT faq_rating.* 
  555. FROM faq_rating
  556. WHERE faqid = '$articleid'
  557. ");
  558. while ($result = $db->row_array()) {
  559. $ratings[$result[rating]]++;
  560. $ratings_count++;
  561. $ratings_total = $ratings_total + $result[rating];
  562. }
  563. if ($ratings_total) {
  564. $ratings_avg =  $ratings_total / $ratings_count;
  565. }
  566. give_default($ratings[0], '0');
  567. give_default($ratings[20], '0');
  568. give_default($ratings[40], '0');
  569. give_default($ratings[60], '0');
  570. give_default($ratings[80], '0');
  571. give_default($ratings[100], '0');
  572. $columns = array('0%', '20%', '40%', '60%', '80%', '100%');
  573. $table[] = array("$ratings[0]", "$ratings[20]", "$ratings[40]", "$ratings[60]", "$ratings[80]", "$ratings[100]");
  574. if ($ratings_total) {
  575. $table[] = array("The average rating is <b>" . round($ratings_avg) . "</b>%");
  576. }
  577. table_header('Faq Article Ratings');
  578. table_content($columns, $table);
  579. table_footer();
  580. }
  581. ############################### FINISH FORM ###############################
  582. echo "
  583. <script language="javascript">
  584. var error = '';
  585. function validateit() {
  586. if (document.faqform.title.value == '') {
  587. error += 'You have not entered a title\n';
  588. }
  589. if (document.faqform.answer.value == '') {
  590. error += 'You have not entered an answer\n';
  591. }
  592. if (document.faqform.question.value == '') {
  593. error += 'You have not entered a question\n';
  594. }
  595. if (error) {
  596. alert(error);
  597. error = '';
  598. return false;
  599. }
  600. }
  601. </script>
  602. ";
  603. if ($_REQUEST['do'] == 'view') {
  604. echo "<input type="submit" name="Update Article" value="Update Article" onclick="return validateit()">";
  605. } else {
  606. echo "<input type="submit" name="Create New Article" value="Create New Article" onclick="return validateit()">";
  607. }
  608. }
  609. tech_footer();
  610. ?>