Ciao a tutti,
volevo sottoporre alla community un limite che, secondo me, è stato introdotto alla gestione dei layout alternativi di joomla. Aprendo lato administrator un quasiasi articolo nel box "opzioni di visualizzazione" troviamo una select che ci permette di scegliere il layout da applicare a quell'artico, purtroppo però lo stesso layout non viene applicato se quell'articolo è collegato ad una voce di menu.
Non capisco il perchè di questa scelta che funziona allo stesso modo anche per i layout delle categorie. Ho aggirato il problema modificando il file components/com_content/views/article/view.html.php commentando l'if che fa il controllo sulla voce di menù nel seguente modo:
// Check to see which parameters should take priority
// if ($active) {
// $currentLink = $active->link;
// // If the current view is the active item and an article view for this article, then the menu item params take priority
// if (strpos($currentLink, 'view=article') && (strpos($currentLink, '&id='.(string) $item->id))) {
// // $item->params are the article params, $temp are the menu item params
// // Merge so that the menu item params take priority
// $item->params->merge($temp);
// // Load layout from active query (in case it is an alternative menu item)
// if (isset($active->query['layout'])) {
// $this->setLayout($active->query['layout']);
// }
// }
// else {
// // Current view is not a single article, so the article params take priority here
// // Merge the menu item params with the article params so that the article params take priority
// $temp->merge($item->params);
// $item->params = $temp;
//
// // Check for alternative layouts (since we are not in a single-article menu item)
// // Single-article menu item layout takes priority over alt layout for an article
// if ($layout = $item->params->get('article_layout')) {
// $this->setLayout($layout);
// }
// }
// }
// else {
// // Merge so that article params take priority
// $temp->merge($item->params);
// $item->params = $temp;
// // Check for alternative layouts (since we are not in a single-article menu item)
// // Single-article menu item layout takes priority over alt layout for an article
// if ($layout = $item->params->get('article_layout')) {
// $this->setLayout($layout);
// }
// }
if ($layout = $item->params->get('article_layout')) {
$this->setLayout($layout);
}
ho fatto lo stesso per le categorie anche se il controllo è un pò diverso.
In questo modo il CMS tiene in considerazione solo il layout che impostiamo nell'articolo che secondo me è il giusto comportmento che dobrebbe avere la gestione dei layout.
Qualcuno mi sa spiegare se c'è una soluzione che non implichi la modifica della vista?
Non vorrei modificare alcun file del core di joomla così da poter effettuare l'update automatico senza che questo vada a sovrascrivere i file da me modificati.