MAIS

    [Joomla] – Filtrar artigos utilizando model setState

    - Anúncio -
    - Anúncio -

     

     

    De uma forma simples e rápida utilizando o $model->setState podemos filtrar vários artigos pela sua ID.

    utilizando o comando abaixo:

    $model->setState('filter.article_id', $content_ids);
    $model->setState('filter.article_id.include', true);

    Onde nesse casso o $content_ids é um array contendo seus ids, por exemplo:

     

    $content_ids = array(
                                     5332,5627,4965,5126,5243
    				);
    

     

    o código completo ficaria assim:

    include_once JPATH_BASE .DS.'components/com_content/models/article.php';   
    require_once JPATH_BASE .DS.'components/com_content/helpers/route.php';
    require_once JPATH_BASE .DS.'components/com_content/helpers/query.php';
    
    
    JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_content/models', 'ContentModel');
    
    $mainframe = JFactory::getApplication('site');
    $mainframe->initialise();	
    
    JPluginHelper::importPlugin( 'system' );
                                                                       
    $db = JFactory::getDbo();
    // Get an instance of the generic articles model
    $model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));
    
    // Set application parameters in model
    $app = JFactory::getApplication();
    $appParams = $app->getParams();
    $model->setState('params', $appParams);
    
    $model->setState('list.start', 0);
    $model->setState('list.limit', 10);
    $model->setState('filter.published', 1);
    
    // Access filter
    $access     = !JComponentHelper::getParams('com_content')->get('show_noauth');
    $authorised = JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id'));
    $model->setState('filter.access', $access);
    
    $dir      = 'DESC';
    
    $content_ids = array(5332,5627,4965,5126,5243,5348,5313,4219,5208
    				);
    
    $model->setState('filter.article_id', $content_ids);
    $model->setState('filter.article_id.include', true);
    
    $model->setState('list.ordering', 'a.publish_up');
    $model->setState('list.direction', $dir);
    		
    $items = $model->getItems();

     

    na sua variável $items vai conter um array() com todos os seus artigos filtrados.

     

     

     

    - Anúncio -

    Artigos recentes

    Continue lendo

    DEIXE UMA RESPOSTA

    Please enter your comment!
    Please enter your name here