Lof K2Scroller Module

Я использовал модуль K2 Scroller, разработанный Land of Coder. Когда я использую этот модуль для отображения элементов той же категории в представлении элементов, модуль отображает элементы в порядке возрастания созданной даты, и это значение по умолчанию и доступно только в настройках параметров модуля в серверной части. Однако я хочу, чтобы модуль отображал элементы в порядке убывания даты. Поэтому я решил отредактировать код по умолчанию в помощнике, который, как я полагаю, используется для обработки элементов на основе внутренних настроек. И это часть кода в файле помощника, который, я думаю, контролирует порядок:

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;
        }

Я редактирую правильную часть кода или я что-то упускаю.

Я с нетерпением жду вашей помощи

Благодарю.

1 ответ

Возможно, лучшим способом было бы изменить XML-файл модуля.

Я посмотрел код Lof K2Scroller (v 2.2 для Joomla 2.5) и различные варианты заказа есть.

Однако, если вы хотите изменить опцию по умолчанию, вы находитесь в нужном файле, просто замените "creation_desc" на "made_asc".

Другие вопросы по тегам