Override joomla du template 'category' lié à un menu

2 vues
05 novembre 2014
Cyril
joomla-templates

 

Dans nos formations sur le templating Joomla! nous abordons naturellement des exemples comme overrider le template Joomla de liste blog de ma catégorie 'actualité', qui est appelée par mon menu principal (en cliquant sur l'onglet 'actualités')

Quiet comme un moine, je me rend à la gestion des catégories dans mon back office, j'édite la catégorie 'actualités', je set l'option  Alternative Layout du nom de mon template overridé et je raffraichis ma page... stupeur ! rien ne se passe ! après moult insultes et imprécations, je check dans le code, et ho surprise ! je vois ceci :
 view.html.php de components/com_content/views/category

// Check for layout override only if this is not the active menu item
        // If it is the active menu item, then the view and category id will match
        $active    = $app->getMenu()->getActive();
        if ((!$active) || ((strpos($active->link, 'view=category') === false) || (strpos($active->link, '&id=' . (string) $category->id) === false))) {
            // Get the layout from the merged category params
            if ($layout = $category->params->get('category_layout')) {
                $this->setLayout($layout);
            }
        }
        // At this point, we are in a menu item, so we don't override the layout
        elseif (isset($active->query['layout'])) {
            // We need to set the layout from the query in case this is an alternative menu item (with an alternative layout)
            $this->setLayout($active->query['layout']);
        }

Peste et fichtre ! Il ne va chercher l'override de la catégorie que s'il n'est pas lié à un lien de menu !!!

Ma catégorie n'est pas overridable aussi facilement, car on y accède via un lien de menu direct... ce qui est tout de même assez balo, because que ce fonctionnement oblige de rajouter des fichiers dans le com_content/views/category/tmpl, donc n'est plus 100% full override (il aurait été mieux de ne devoir toucher qu'aux fichiers de situés dans le dossier template)

Alors en fait, pour surcharger un layout d'un lien de menu :

il faut :

1-aller dans administrator/language/fr-FR/fr-FR.com_content.sys.ini et rajouter le type de lien

COM_CONTENT_CATEGORY_VIEW_BLOG_TITLE_ACTUALITE="Blog d'une catégorie (actualite)"

_______________________________________________________________________________
2-aller dans components/com_content/views/category/tmpl/ rajouter ton template modele-actualite-liste.php ET son fichier XML modele-actualite-liste.xml (copié sur blog.xml)
Remplacer la variable layout du fichier XML par

       layout title="COM_CONTENT_CATEGORY_VIEW_BLOG_TITLE_ACTUALITE" option="COM_CONTENT_CATEGORY_VIEW_BLOG_OPTION">
       help  key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG"
________________________________________________________________________________
3-définir dans administrator/language/fr-FR/fr-FR.ini la variable suivante :

JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG_ACTUALITE="Menus_Menu_Item_Article_Category_Modele-actualite-liste" (qui est le chemin du template)
_______________________________________________________________________________
4-mettre les deux layouts modele-actualite-liste.php et modele-actualite-liste_item.php dans le template : templates/yoo_avenue(ou tout autre)/html/com_content/category
_________________________________________________________________________________
et enfin

5-Assigner ce type de lien à son menu 'actualites'
_________________________________________________________________________________
et gnoila !

N'oubliez pas de me suivre sur mon compte google +

https://plus.google.com/u/0/111173509958661808617

Astuces PHP lazy load sous joomla seblod warp
Advanced module manager et page d'accueil
Entrées grisées avec la mention [extrait] dans DOCMAN
Les solutions multi sites avec Joomla!
Pulsar au JoomlaDay 2014: Chaine de production
JoomlaDay 2015: Pulsar y était!
Un nouveau routeur pour Joomla!
Chargement Joomla avec Mootools de Google
Workflows généralisés avec Joomla! et Seblod (partie 4)
Pulsar sponsor du Joomladay
GED Open Source simple pour les PME
Multisites, multilangues et multidevices pour la SORBONNE
Pulsar, le JoomlaDay et Israël
Joomla meilleur cms open source 2011
Joomla! présent au salon AGORA CMS 2016
Comprendre le stockage des données avec SEBLOD
Workflow Joomla! évolué avec Seblod 2/4
Plugin de cache Joomla : les images ne s'affichent pas
Joomla! à nouveau élu meilleur CMS 2017
Ajouter le bouton DOCLINK avec Jevents et SobiPro
Les nouveautés de Joomla! 4
SEBLOD: supprimer un script à moindre coût
Workflows évolués pour Joomla! avec Seblod 1/4
Développement multi sites avec Joomla et Seblod
SEBLOD et J2store au JoomlaDay Israël 2017
sh404SEF: URLs n'apparaissent pas
Pulsar présente le JoomlaBusiness à l'AFUP
Paramètres hikashop des items de menu
Critère de correspondance pour la recherche SEBLOD
Pulsar developpe la passerelle Joomla LUCENE SOLR
Monétisez votre workflow avec Joomla!
Pulsar certifie ses formateurs Joomma!
Référencement naturel, cocons sémantiques et Joomla!
Pulsar forme au CCK SEBLOD pour Joomla!
Job board intégré à votre site Joomla!
Edition front end avec Hikashop et Virtuemart
Chasse aux bugs des templates Warp
Optimisation et vitesse de votre site Joomla!
Extensions Joomla: accessibilité, menu vertical et réseaux sociaux
Virtuemart: flèches quantité ne fonctionnent pas
com_search joomla 2.5 recherche sans accents
Pulsar au JoomlaDay Israel 2016
E-commerce avec Seblod
Pulsar présente le job board du nouveau site web Dynamique Emploi
Sommaire automatique pour Joomla
Soirée CMS open-source en PHP
Projets multi langues et multi sites avec Seblod
CMS Day: Joomla pour les projets du secteur public
Indiegogo: contrôle de version avancé avec SEBLOD
Pulsar présente JOOMLA à AGORA CMS
Quelles extensions choisir pour son site joomla ?
Les solutions e-commerce avec Joomla!
Transformer un article en contenu SEBLOD
JoomlaDay 2015: Joomla! pour les applis pro
Pulsar présente son expertise SEBLOD au JoomlaDay 2013
Joomla 4 : professionnalisation et performance
Super BreadCrumb for Joomla 1.5 1.6 & 1.7
Pulsar présente le CMS Joomla! au club STARINUX
Pulsar et Joomla pour les sites évolués au JoomlaDay 2014
Joomla! fête ses 10 ans!
Pulsar présente le projet pour la Sorbonne au JoomlaDay!
Pourquoi nous avons ajouté WordPress à notre offre
Joomla et les CCK
Pulsar primé pour le site de la Sorbonne
Sites multi langues mobiles avec Joomla et Seblod
Gestion Electronique de Documents sur mesure
3 nouvelles extensions Joomla! de Pulsar dans la JED
Personnalisation du backoffice de Joomla!
Ajouter Cufon à votre site Joomla!:
l'AFUJ exposant au salon Open Source Summit 2015
Correctif de Pulsar dans le routeur de Joomla
Astuce: suppression des éléments Seblod
Joomla! meilleur CMS PHP Open Source
Pulsar, sponsor OR du JoomlaDay 2017
SOBI Pro: le menu principal ne s'affiche pas
Pulsar sponsor OR du JoomlaBusiness 2015
Import shipping pour hikashop
Plugin merge css/js pour Joomla
JCEmediabox et css js compress
Elections 2016 ... le CMS Joomla! encore
Fenêtre coulissante avec Joomla et Seblod
Workflow et formulaires faciles avec Joomla! et Seblod 3/4
Ajouter une icône d'édition dans une liste SEBLOD
Les avantages de Joomla! face à Drupal
Pulsar gagne l'appel d'offre de la Sorbonne
Comparaison des CCKs pour Joomla!
Une agence web Joomla! au Drupagora
Developpements pour la Bibliotheque Mazarine
L'agence Pulsar sponsorise le JoomlaDay 2015
Comprendre les droits et niveaux d'accès de Joomla!
Nouveau site de Pulsar avec Seblod!