From 9f20bd95fbb6bdc8194dcfb21511a330339b5b7a Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 5 Feb 2015 12:30:30 -0800 Subject: [PATCH] Issue #860 Added e_search.php to Faqs plugin. (untested) --- e107_admin/search.php | 6 +-- e107_plugins/faqs/e_search.php | 83 ++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 e107_plugins/faqs/e_search.php diff --git a/e107_admin/search.php b/e107_admin/search.php index c1ddc0a9d..be8a4bc4c 100644 --- a/e107_admin/search.php +++ b/e107_admin/search.php @@ -403,17 +403,17 @@ else foreach ($search_prefs['plug_handlers'] as $plug_dir => $active) { - if(varset($searchConfigs[$plug_dir])) + if(varset($searchConfigs[$plug_dir])) // v2.x { $search_handlers[] = $searchConfigs[$plug_dir]; $search_info[0]['qtype'] = $searchConfigs[$plug_dir]['name']; } - elseif(e107::isInstalled($plug_dir) && is_readable(e_PLUGIN.$plug_dir."/e_search.php")) + elseif(e107::isInstalled($plug_dir) && is_readable(e_PLUGIN.$plug_dir."/e_search.php")) // v1.x { e107::getMessage()->addDebug("Including: ".$plug_dir."/e_search.php"); require(e_PLUGIN.$plug_dir."/e_search.php"); } - else // workaround for a messy pref data. Missing a plugin or file. + else // workaround for messy pref data. Missing a plugin or file. { continue; } diff --git a/e107_plugins/faqs/e_search.php b/e107_plugins/faqs/e_search.php new file mode 100644 index 000000000..40739d47e --- /dev/null +++ b/e107_plugins/faqs/e_search.php @@ -0,0 +1,83 @@ + LAN_PLUGIN_FAQS_NAME, + 'table' => 'faqs as t LEFT JOIN #faqs_info as x on t.faq_parent=x.faq_info_id', + + // 'advanced' => array( + // 'date' => array('type' => 'date', 'text' => LAN_DATE_POSTED), + // 'author'=> array('type' => 'author', 'text' => LAN_SEARCH_61) + // ), + + 'return_fields' => array('t.faq_question','t.faq_answer','t.faq_datestamp','x.faq_info_title','t.faq_id','x.faq_info_id','x.faq_info_class'), + 'search_fields' => array('t.faq_question'=>1.0, 't.faq_answer'=>1.2, "x.faq_info_title"=>0.6), // fields and weights. + // $where = " find_in_set(faq_info_class,'".USERCLASS_LIST."') and "; + 'order' => array('t.faq_question' => DESC), + 'refpage' => 'chat.php' + ); + + + return $search; + } + + + + /* Compile Database data for output */ + function compile($row) + { + $tp = e107::getParser(); + + preg_match("/([0-9]+)\.(.*)/", $row['cb_nick'], $user); + + $res = array(); + + $res['link'] = e_PLUGIN."chatbox_menu/chat.php?".$row['cb_id'].".fs"; + $res['pre_title'] = LAN_SEARCH_7; + $res['title'] = $user[2]; + $res['summary'] = $row['cb_message']; + $res['detail'] = $tp->toDate($row['cb_datestamp'], "long"); + + return $res; + + } + + + + /** + * Optional - Advanced Where + * @param $parm - data returned from $_GET (ie. advanced fields included. in this case 'date' and 'author' ) + */ + function where($parm='') + { + $tp = e107::getParser(); + + $qry = ""; + + if (vartrue($parm['time']) && is_numeric($parm['time'])) + { + $qry .= " cb_datestamp ".($parm['on'] == 'new' ? '>=' : '<=')." '".(time() - $parm['time'])."' AND"; + } + + if (vartrue($parm['author'])) + { + $qry .= " cb_nick LIKE '%".$tp -> toDB($parm['author'])."%' AND"; + } + + return $qry; + } + + +} +// $search_info[]=array( 'sfile' => e_PLUGIN.'faq/search.php', 'qtype' => 'FAQ', 'refpage' => 'faq.php'); + +?> \ No newline at end of file