'all', 'title' => LAN_PLUGIN_FORUM_ALLFORUMS); if ($sql ->gen("SELECT f.forum_id, f.forum_name FROM #forum AS f LEFT JOIN #forum AS fp ON fp.forum_id = f.forum_parent ")) { while($row = $sql->fetch()) { $catList[] = array('id' => $row['forum_id'], 'title' => $row['forum_name']); } } $matchList = array( 0 => array('id' => 0, 'title' => FOR_SCH_LAN_4), 1 => array('id' => 1, 'title' => LAN_SEARCH_54) ); $search = array( 'name' => LAN_PLUGIN_FORUM_NAME, // 'table' => 'forum', 'table' => 'forum_thread AS t LEFT JOIN #user AS u ON t.thread_user = u.user_id LEFT JOIN #forum AS f ON t.thread_forum_id = f.forum_id LEFT JOIN #forum AS fp ON f.forum_parent = fp.forum_id LEFT JOIN #forum_post AS p ON p.post_thread = t.thread_id', 'advanced' => array( 'forum' => array('type' => 'dropdown', 'text' => FOR_SCH_LAN_2, 'list'=>$catList), 'date' => array('type' => 'date', 'text' => LAN_DATE_POSTED), 'author'=> array('type' => 'author', 'text' => LAN_SEARCH_61), 'match'=> array('type' => 'dropdown', 'text' => LAN_SEARCH_52, 'list'=>$matchList) // not functional yet. ), 'return_fields' => array('t.thread_id', 't.thread_name', 'p.post_id', 'p.post_entry', 't.thread_forum_id', 't.thread_datestamp', 't.thread_user', 'u.user_id', 'u.user_name', 'f.forum_class', 'f.forum_id', 'f.forum_name', 'f.forum_sef'), 'search_fields' => array('t.thread_name'=>'1.2', 'p.post_entry'=>'0.6'), // fields and weights. 'order' => array('thread_datestamp' => DESC), 'refpage' => 'forum' ); $params = $this->getParams(); // retrieve URL query values. if(!empty($params['match'])) { $search['search_fields'] = array('t.thread_name'=>'1.5'); } return $search; } /* Compile Database data for output */ function compile($row) { $tp = e107::getParser(); $res = array(); $datestamp = $tp->toDate($row['thread_datestamp'], "long"); if ($row['thread_parent']) { $title = $row['parent_name']; } else { $title = $row['thread_name']; } $link_id = $row['thread_id']; $uparams = array('id' => $row['user_id'], 'name' => $row['user_name']); $link = e107::getUrl()->create('user/profile/view', $uparams); $userlink = "".$row['user_name'].""; $row['thread_sef'] = eHelper::title2sef($row['thread_name'],'dashl'); $forumTitle = "".$row['forum_name'].""; $res['link'] = e107::url('forum','topic', $row, array('query'=>array('f'=>'post','id'=>$row['post_id']))); // e_PLUGIN."forum/forum_viewtopic.php?".$link_id.".post"; $res['pre_title'] = ''; // $title ? FOR_SCH_LAN_5.": " : ""; $res['title'] = $title ? $forumTitle . " | ". $title : LAN_SEARCH_9; $res['pre_summary'] = ""; $res['summary'] = $row['post_entry']; $res['detail'] = LAN_SEARCH_7.$userlink.LAN_SEARCH_8.$datestamp; 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 = " f.forum_parent != 0 AND fp.forum_class IN (".USERCLASS_LIST.") AND f.forum_class IN (".USERCLASS_LIST.") AND "; if (!empty($parm['forum']) && is_numeric($parm['forum'])) { $qry .= " f.forum_id='".$parm['forum']."' AND"; } if (!empty($parm['time']) && is_numeric($parm['time'])) { $qry .= " t.thread_datestamp ".($parm['on'] == 'new' ? '>=' : '<=')." '".(time() - $parm['time'])."' AND"; } if (!empty($parm['author'])) { $qry .= " (u.user_id = '".$tp -> toDB($parm['author'])."' OR u.user_name = '".$tp -> toDB($parm['author'])."') AND"; } return $qry; } } /* $search_info[] = array( 'sfile' => e_PLUGIN.'forum/search/search_parser.php', 'qtype' => LAN_PLUGIN_FORUM_NAME, 'refpage' => 'forum', 'advanced' => e_PLUGIN.'forum/search/search_advanced.php', 'id' => 'forum' );*/