misc_faq.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: misc_faq.php 32267 2012-12-12 03:26:40Z monkey $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. $keyword = isset($_GET['keyword']) ? dhtmlspecialchars($_GET['keyword']) : '';
  12. $faqparent = $faqsub = array();
  13. foreach(C::t('forum_faq')->fetch_all_by_fpid() as $faq) {
  14. if(empty($faq['fpid'])) {
  15. $faqparent[$faq['id']] = $faq;
  16. if($_GET['id'] == $faq['id']) {
  17. $ctitle = $faq['title'];
  18. }
  19. } else {
  20. $faqsub[$faq['fpid']][] = $faq;
  21. }
  22. }
  23. if($_GET['action'] == 'faq') {
  24. $id = intval($_GET['id']);
  25. $faq = C::t('forum_faq')->fetch_all_by_fpid($id);
  26. if($faq) {
  27. $ffaq = $faq[$id];
  28. $navtitle = $ctitle;
  29. $navigation = "<em>&rsaquo;</em> $ctitle";
  30. $faqlist = array();
  31. $messageid = empty($_GET['messageid']) ? 0 : $_GET['messageid'];
  32. foreach(C::t('forum_faq')->fetch_all_by_fpid($id) as $faq) {
  33. if(!$messageid) {
  34. $messageid = $faq['id'];
  35. }
  36. $faqlist[] = $faq;
  37. }
  38. } else {
  39. showmessage('faq_content_empty', 'misc.php?mod=faq');
  40. }
  41. } elseif($_GET['action'] == 'search') {
  42. $navtitle = lang('core', 'search');
  43. if(submitcheck('searchsubmit')) {
  44. if(($keyword = $_GET['keyword'])) {
  45. $sqlsrch = '';
  46. $searchtype = in_array($_GET['searchtype'], array('all', 'title', 'message')) ? $_GET['searchtype'] : 'all';
  47. $faqlist = array();
  48. foreach(C::t('forum_faq')->fetch_all_by_fpid('', $keyword) as $faq) {
  49. if(!empty($faq['fpid'])) {
  50. $faq['title'] = preg_replace("/(?<=[\s\"\]>()]|[\x7f-\xff]|^)(".preg_quote($keyword, '/').")(([.,:;-?!()\s\"<\[]|[\x7f-\xff]|$))/siU", "<u><b><font color=\"#FF0000\">\\1</font></b></u>\\2", $faq['title']);
  51. $faq['message'] = preg_replace("/(?<=[\s\"\]>()]|[\x7f-\xff]|^)(".preg_quote($keyword, '/').")(([.,:;-?!()\s\"<\[]|[\x7f-\xff]|$))/siU", "<u><b><font color=\"#FF0000\">\\1</font></b></u>\\2", $faq['message']);
  52. $faqlist[] = $faq;
  53. }
  54. }
  55. } else {
  56. showmessage('faq_keywords_empty', 'misc.php?mod=faq');
  57. }
  58. $keyword = dhtmlspecialchars($keyword);
  59. }
  60. } elseif($_GET['action'] == 'plugin' && !empty($_GET['id'])) {
  61. $navtitle = $_G['setting']['plugins']['faq'][$_GET['id']]['name'];
  62. $navigation = '<em>&rsaquo;</em> '.$_G['setting']['plugins']['faq'][$_GET['id']]['name'];
  63. include pluginmodule($_GET['id'], 'faq');
  64. } else {
  65. $navtitle = lang('core', 'faq');
  66. }
  67. include template('common/faq');
  68. ?>