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

    Como se dar bem na crise do corona vírus? Ganhe dinheiro no tempo de quarentena (covid-19)

    Em tempos que tudo se fala em corona vírus (covid-19) e que temos que ficar em quarentena em casa, muitos trabalhando como home-office, ou...

    PHP Orientado a Objetos de forma fácil e prática – POO

    Para muitos programadores PHP, orientação a objetos é um conceito amedrontador, cheio de sintaxes complicadas e pontos de paradas. Aqui você aprenderá os conceitos por...

    Ganhar Dinheiro Trabalhando Em Casa Em Apenas 7 Dias

    O Método Desafio de 7 Dias é um Curso Online com um método único e exclusivo, para que você aprenda a gerar renda através...

    Moderninha X – A melhor maquininha

    Fácil de usar, a Moderninha X é a maquininha PagSeguro que aceita 22 formas de pagamento diferentes e ainda te ajuda a gerenciar suas...

    Cielo ZIP

    Cabe no seu bolso e não precisa de celular. Você pode levar para aonde quiser e conta com bateria de longa duração.DébitoCrédito à vistaCrédito...

    Continue lendo

    DEIXE UMA RESPOSTA

    Please enter your comment!
    Please enter your name here

    Stay on op - Ge the daily news in your inbox