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