コード例 #1
0
ファイル: helper.php プロジェクト: rkern21/videoeditor
	function getList(&$params)
	{
		global $mainframe;
		
		$db			=& JFactory::getDBO();
		$user		=& JFactory::getUser();
		$userId		= (int) $user->get('id');
		
		$count		    = $params->get('article_count',4); 
		$catid		    = trim( $params->get('catid') );
		$secid		    = trim( $params->get('secid') );
		$show_front	    = $params->get('show_front', 1);
		$aid		    = $user->get('aid', 0);
		$content_type   = $params->get('content_type','joomla');
		$ordering       = $params->get('itemsOrdering');
		$cid            = $params->get('category_id', NULL);
        $text_length    = intval($params->get( 'preview_count', 200) );
        $show_comment_count = $params->get('show_comment_count',0);

		$contentConfig = &JComponentHelper::getParams( 'com_content' );
		$access		= !$contentConfig->get('show_noauth');
		
		$offset     = JRequest::getInt('offset',0);

		$nullDate	= $db->getNullDate();
		
		$date =& JFactory::getDate();
		$now = $date->toMySQL();
		
        $thumb_size      = $params->get('thumb_width',90);
        $image_size      = $params->get('itemImgSize','M');



		$where = '';
		
		// ensure should be published
		$where .= " AND ( a.publish_up = ".$db->Quote($nullDate)." OR a.publish_up <= ".$db->Quote($now)." )";
		$where .= " AND ( a.publish_down = ".$db->Quote($nullDate)." OR a.publish_down >= ".$db->Quote($now)." )";
		
	    // ordering
		switch ($ordering) {
			case 'date' :
				$orderby = 'a.created ASC';
				break;
			case 'rdate' :
				$orderby = 'a.created DESC';
				break;
			case 'alpha' :
				$orderby = 'a.title';
				break;
			case 'ralpha' :
				$orderby = 'a.title DESC';
				break;
			case 'order' :
				$orderby = 'a.ordering';
				break;
			default :
				$orderby = 'a.id DESC';
				break;
		}

		// content specific stuff
        if ($content_type=='joomla') {
            // start Joomla specific
            
            $catCondition = '';
            $secCondition = '';

            if ($show_front != 2) {
        		if ($catid)
        		{
        			$ids = explode( ',', $catid );
        			JArrayHelper::toInteger( $ids );
        			$catCondition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ) . ')';
        		}
        		if ($secid)
        		{
        			$ids = explode( ',', $secid );
        			JArrayHelper::toInteger( $ids );
        			$secCondition = ' AND (s.id=' . implode( ' OR s.id=', $ids ) . ')';
        		}
        	}	
    		// Content Items only
    		$query = 'SELECT a.*, cr.rating_sum/cr.rating_count as rating,' .
    			' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
    			' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
    			' FROM #__content AS a' .
    			($show_front == '0' ? ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' : '') .
    			($show_front == '2' ? ' INNER JOIN #__content_frontpage AS f ON f.content_id = a.id' : '') .
    			' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
    			' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
                ' LEFT JOIN #__content_rating as cr ON a.id = cr.content_id' .
    			' WHERE a.state = 1'. $where .' AND s.id > 0' .
    			($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
    			($catid && $show_front != 2 ? $catCondition : '').
    			($secid && $show_front != 2 ? $secCondition : '').
    			($show_front == '0' ? ' AND f.content_id IS NULL ' : '').
    			' AND s.published = 1' .
    			' AND cc.published = 1' .
    			' ORDER BY '. $orderby;
    		// end Joomla specific
	    } else {
		    // start K2 specific
		    require_once (JPath::clean(JPATH_SITE.'/components/com_k2/helpers/route.php'));
		    
    		$query = "SELECT a.*, cr.rating_sum/cr.rating_count as rating, c.name as categoryname,c.id as categoryid, c.alias as categoryalias, c.params as categoryparams, cc.commentcount as commentcount".
    		" FROM #__k2_items as a".
    		" LEFT JOIN #__k2_categories c ON c.id = a.catid" .
            " LEFT JOIN #__k2_rating as cr ON a.id = cr.itemid".
            " LEFT JOIN (select cm.itemid  as id, count(cm.id) as commentcount from #__k2_comments as cm where cm.published=1 group by cm.itemid) as cc on a.id = cc.id";
				
    		$query .= " WHERE a.published = 1"
    		." AND a.access <= {$aid}"
    		." AND a.trash = 0"
    		." AND c.published = 1"
    		." AND c.access <= {$aid}"
    		." AND c.trash = 0"
    		;
	
   		    if ($params->get('catfilter')){
    			if (!is_null($cid)) {
    				if (is_array($cid)) {
    					$query .= " AND a.catid IN(".implode(',', $cid).")";
    				}
    				else {
    					$query .= " AND a.catid={$cid}";
    				}
    			}
    		}

    		if ($params->get('FeaturedItems')=='0')
    			$query.= " AND a.featured != 1";
	
    		if ($params->get('FeaturedItems')=='2')
    			$query.= " AND a.featured = 1";
    			
    		$query .= $where . ' ORDER BY ' . $orderby;
    		// end K2 specific
		}

		$db->setQuery($query, $offset, $count);
		$rows = $db->loadObjectList();

		$i		= 0;
		$lists	= array();
		foreach ( $rows as $row )
		{
            //process content plugins
		    $text = JHTML::_('content.prepare',$row->introtext,$contentConfig);

            $lists[$i]->comment_count = null;


			if ($content_type=='joomla') {
			    $lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));
                $images = modRokNewsPagerHelper::getImages($row->introtext,$thumb_size);
                $lists[$i]->comment_count = modRokNewsPagerHelper::getCommentCount($row);

			} else {
			    $lists[$i]->link = JRoute::_(K2HelperRoute::getItemRoute($row->id.':'.$row->alias, $row->catid.':'.$row->categoryalias));
                $images = modRokNewsPagerHelper::getK2Images($row->id,$image_size,$thumb_size);
				// commentcount can be null, cast to int needed to make sure it's a numeric value
                $lists[$i]->comment_count = (int) $row->commentcount;
			}
			$lists[$i]->title = htmlspecialchars( $row->title );
			$lists[$i]->introtext = modRokNewsPagerHelper::prepareContent( $text, $text_length, $params);

            $lists[$i]->rating = (is_numeric($row->rating))?floatval($row->rating / 5 * 100):null;
            $lists[$i]->image = $images->image;
    		$lists[$i]->thumb = $images->thumb;

            // set the author
            $author		=& JFactory::getUser($row->created_by);
            $lists[$i]->author = $author->name;

            //set the pub date
            jimport('joomla.utilities.date');
            $created_date = new JDate($row->created);
            $publish_date = new JDate($row->publish_up);
            $lists[$i]->published_date = ($created_date->toUnix() > $publish_date->toUnix())?$row->created:$row->publish_up;

			if (isset($images->size)) $lists[$i]->thumb_size = $images->size;
			$i++;
		}

		return $lists;
	}