it-swarm-eu.dev

Ottenere l'ultimo articolo dalla categoria comprese le sottocategorie

Sto tentando di ottenere l'ultimo articolo in una categoria che ha un numero di sottocategorie attraverso il ContentModel articoli.

Se uso $model->setState('filter.category_id', $this->category->id);, non restituisce nulla a causa della categoria in questione che non contiene alcun articolo; tutti gli articoli sono in sottocategorie.

Come posso ottenere tutti gli articoli nella categoria corrente inclusi i bambini?

Codice in questione:

$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));
$model->getState();

// Set application parameters in model
$app = JFactory::getApplication();
$appParams = $app->getParams();
$model->setState('params', $appParams);

// Set the filters based on the module params
$model->setState('list.start', 0);
$model->setState('list.limit', 1);
$model->setState('filter.category_id', $this->category->id);
$model->setState('filter.published', 1);

// Permissions
$access = !JComponentHelper::getParams('com_content')->get('show_noauth');
$authorised = JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id'));
$model->setState('filter.access', $access);

// Featured Item

// Get article from featured set
// $model->setState('filter.featured', 'only');

// Ordering
$model->setState('list.ordering', 'a.publish_up');
$model->setState('list.direction', 'DESC');

$items = $model->getItems();
1
Mark

Devi abilitare le sottocategorie con il subcategories.filter e specifica anche i livelli delle sottocategorie che desideri approfondire.

$model->setState('filter.subcategories', true);
$model->setState('filter.max_category_levels', $subCategoryLevels);

Tieni presente che verrà verificato il controllo delle sottocategorie, se l'id della categoria per filter.category_id è numerico, altrimenti se si passa una matrice di ID di categoria (ad es. proveniente da un campo di selezione a scelta multipla), il modello non cercherà sottocategorie, ma caricherà gli articoli per gli ID di categorie indicati.

1
FFrewin