2012-03-28 2 views
0

저는 Land of Coder에서 개발 한 K2 Scroller 모듈을 사용하고 있습니다. 이 모듈을 사용하여 항목보기에 동일한 범주 항목을 표시하면 모듈은 작성한 날짜의 오름차순으로 항목을 표시하며 백엔드의 모듈 매개 변수 설정에서 사용할 수있는 기본 및 유일한 설정입니다. 그러나 모듈에서 날짜순으로 내림차순으로 항목을 표시하려고합니다. 그래서 백엔드 설정에 따라 항목을 처리하는 데 사용되는 도우미에서 기본 코드를 편집하기로 결정했습니다.Lof K2Scroller Module

public function __getList($params){ 
      global $mainframe; 

         /*some irrelevant code removed*/ 

         $condition  = $this->buildConditionQuery($params); 
      $limitDescriptionBy = $params->get('limit_description_by','char'); 
      $ordering = $params->get('k2_ordering', 'created_desc'); 
      $limit   = $params->get('limit_items', 5); 
      $ordering = str_replace('_', ' ', $ordering); 
      $my   = &JFactory::getUser(); 
      $aid   = $my->get('aid', 0); 

         /*some irrelevant code removed*/ 

      $extraURL  = $params->get('open_target')!='modalbox'?'':'&tmpl=component'; 
      $excludeIds  = $params->get('exclude_ids', ''); 
      $db  = &JFactory::getDBO(); 
      $date =& JFactory::getDate(); 
      $now = $date->toMySQL(); 
      $dateFormat = $params->get('date_format', 'DATE_FORMAT_LC3'); 

      $limitDescriptionBy = $params->get('limit_description_by','char'); 
      $isAuthor= $params->get('itemAuthor',0); 
      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 get('featured_items_show','0') == 0){ 
       $query.= " AND a.featured != 1"; 
      } elseif( $params->get('featured_items_show','0') == 2) { 
       $query.= " AND a.featured = 1"; 
      } 
      if(trim($excludeIds)){ 
       $query .= " AND a.id NOT IN(".$excludeIds.") "; 
      } 
      $query .= $condition . ' ORDER BY ' . $ordering; 
      $query .= $limit ? ' LIMIT ' . $limit : ''; 

      $db->setQuery($query); 
      $data = $db->loadObjectlist(); 

      /*some irrelevant code removed*/ 

         return $data; 
     } 


     /** 
     * build condition query base parameter 
     * 
     * @param JParameter $params; 
     * @return string. 
     */ 
     public function buildConditionQuery($params){ 
      $source = trim($params->get('k2_source', 'k2_category')); 
      if($source == 'k2_category'){ 
       $catids = $params->get('k2_category',''); 

       if(!$catids){ 
        return ''; 
       } 
       $catids = !is_array($catids) ? $catids : '"'.implode('","',$catids).'"'; 
       $condition = ' AND a.catid IN('.$catids.')'; 
      } else { 
       $ids = preg_split('/,/',$params->get('k2_items_ids','')); 
       $tmp = array(); 
       foreach($ids as $id){ 
        $tmp[] = (int) trim($id); 
       } 
       $condition = " AND a.id IN('". implode("','", $tmp) ."')"; 
      } 
      return $condition; 
     } 

내가 코드의 오른쪽 부분을 편집하거나 내가 뭔가를 놓치고 있습니까 : 그리고 이것은 내가 제어 순서를 생각하는 헬퍼 파일의 코드의 일부이다.

귀하의 도움을 기다리고 있습니다.

감사합니다.

답변

0

아마 가장 좋은 방법은 모듈의 xml 파일을 수정하는 것입니다.

Lof K2Scroller (Joomla 2.5의 경우 v 2.2)의 코드를 살펴 보았고 다른 주문 옵션이 있습니다.

그러나 기본 옵션을 수정하려면 올바른 파일에 있어야하며 'created_desc'대신 'created_asc'를 사용하십시오.

+0

감사합니다. 실제로 기본 옵션을 수정했지만 작동하지 않습니다. xml 파일에서 편집해야 할 내용을 알려주시겠습니까? –