Beispiel #1
0
    /**
     * 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);
    }
Beispiel #2
0
	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;
	}