/** * Query SQL for user inputted search pattern * * @return Nothing */ function displayResults() { global $mainframe, $smartyvs, $limitstart, $hwdvs_joinv, $hwdvs_joing, $hwdvs_selectv, $hwdvs_selectg; $c = hwd_vs_Config::get_instance(); $db = & JFactory::getDBO(); $my = & JFactory::getUser(); $pattern = JRequest::getVar( 'pattern', '' ); $category_id = JRequest::getInt( 'category_id', '0' ); $vpp = JRequest::getInt( 'rpp', '0' ); $gpp = JRequest::getInt( 'rpp', '0' ); $sort = JRequest::getInt( 'sort', '0' ); $ep = JRequest::getVar( 'ep', '' ); $ex = JRequest::getVar( 'ex', '' ); if (empty($vpp) || $vpp == 0) { $limitv = intval($c->vpp); } else { $limitv = $vpp; } if (empty($gpp) || $gpp == 0) { $limitg = intval($gpp); } else { $limitg = $gpp; } $smartyvs->assign("pattern", $pattern); $smartyvs->assign("ep", $ep); $smartyvs->assign("ex", $ex); $smartyvs->assign("rpp", $vpp); $smartyvs->assign("sort", $sort); require_once(JPATH_SITE.DS.'administrator'.DS.'components'.DS.'com_hwdvideoshare'.DS.'helpers'.DS.'search.php'); $whereVideos = hwd_vs_search::search_perform_videos(); $whereGroups = hwd_vs_search::search_perform_groups(); if ($sort == 1) { $orderVideos = " ORDER BY video.title ASC"; } else if ($sort == 2) { $orderVideos = " ORDER BY video.date_uploaded DESC"; } else if ($sort == 3) { $orderVideos = " ORDER BY video.updated_rating DESC"; } else if ($sort == 4) { $orderVideos = " ORDER BY video.number_of_views DESC"; } else { $orderVideos = ""; } $db->SetQuery( "SELECT count(*) FROM #__hwdvidsvideos AS video $whereVideos"); $totalVideos = $db->loadResult(); jimport('joomla.html.pagination'); $videoNav = new JPagination( $totalVideos, $limitstart, $limitv ); $query = "SELECT $hwdvs_selectv FROM #__hwdvidsvideos AS video $hwdvs_joinv $whereVideos $orderVideos"; //echo $query; $db->SetQuery($query, $videoNav->limitstart, $videoNav->limit); $matchingVideos = $db->loadObjectList(); if ($c->diable_nav_groups == 0) { // count matching groups $db->SetQuery("SELECT count(*) FROM #__hwdvidsgroups AS g $hwdvs_joing $whereGroups"); $totalGroups = $db->loadResult(); echo $db->getErrorMsg(); // pagination $groupNav = new JPagination( $totalGroups, $limitstart, $limitg ); // get matching group data $query = "SELECT $hwdvs_selectg FROM #__hwdvidsgroups AS g $hwdvs_joing $whereGroups"; $db->SetQuery($query, $groupNav->limitstart, $groupNav->limit); $matchingGroups = $db->loadObjectList(); } else { $totalGroups = 0; $groupNav = null; $matchingGroups = null; } // sent out hwd_vs_html::search($totalVideos, $matchingVideos, $videoNav, $totalGroups, $matchingGroups, $groupNav, $pattern, $category_id); }
function search_perform_groups($type="core",$pattern=null) { global $mainframe, $limitstart, $hwdvs_joinv, $hwdvs_joing, $hwdvs_selectv, $hwdvs_selectg; $c = hwd_vs_Config::get_instance(); $db = & JFactory::getDBO(); $my = & JFactory::getUser(); if (empty($pattern)) { $pattern = JRequest::getVar( 'pattern', '' ); } $pattern = addslashes($pattern); $ep = JRequest::getVar( 'ep', '' ); $ex = JRequest::getVar( 'ex', '' ); $limitg = intval($c->gpp); if ($c->search_method == 1) { $search_gcols = ""; if ($c->search_title == "on") { $search_gcols.= "group_name"; } if ($c->search_title == "on" && $c->search_descr == "on") { $search_gcols.= ","; } if ($c->search_descr == "on") { $search_gcols.= "group_description"; } $terms = hwd_vs_search::search_split_terms($pattern); $ft_pattern = implode(" ", $terms); if (empty($ep) && empty($ex)) { $wheregroups = " WHERE MATCH ($search_gcols) AGAINST ('$ft_pattern')"; } else { $bm = ""; if (!empty($pattern)) { foreach($terms as $term){ $bm.= " +$term"; }; } if (!empty($ep)) { $ep_terms = hwd_vs_search::search_split_terms($ep); $ft_ep = implode(" ", $ep_terms); $bm.= " \"$ft_ep\""; } if (!empty($ex)) { $ex_terms = hwd_vs_search::search_split_terms($ex); foreach($ex_terms as $ex_term){ $bm.= " -$ex_term"; } } $wheregroups = " WHERE MATCH ($search_gcols) AGAINST ('$bm' IN BOOLEAN MODE)"; } } else { $terms = hwd_vs_search::search_split_terms($pattern); $terms_db = hwd_vs_search::search_db_escape_terms($terms); $parts_g = array(); foreach($terms_db as $term_db) { $search_gcols = ""; if ($c->search_title == "on") { $parts_g[] = "group_name RLIKE '$term_db'"; } if ($c->search_descr == "on") { $parts_g[] = "group_description RLIKE '$term_db'"; } } $parts_g = implode(' OR ', $parts_g); $wheregroups = " WHERE $parts_g"; } $wheregroups.= " AND g.published = 1"; //echo $wheregroups."<br>"; return $wheregroups; }