web-dev-qa-db-fra.com

Joomla set Template Alternative Layout via link, est-ce possible?

Je suis tombé sur un comportement étrange et j'essaie de savoir si je peux résoudre ce problème en définissant la mise en page à utiliser via le lien vers la catégorie.

Voici ce qui s'est passé.

  • J'ai un remplacement de modèle pour la mise en page du blog de la catégorie
  • Je l'ai assigné dans le menu et ça marche bien
  • La disposition de blog de catégorie de type de menu utilisant le remplacement de disposition personnalisé affiche également les liens de catégories enfants
  • Lorsque je clique sur l'une des catégories enfants, le remplacement de modèle personnalisé n'est pas utilisé comme catégorie parent; il revient simplement à la présentation de blog par défaut.

Donc, j'ai essayé quelque chose comme le ci-dessous dans le custom_children.php (blog_children.php)

<a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($child->id).'&layout=customlayout');?>">

Mais cela ne semble pas fonctionner.

La catégorie enfant n'a pas d'élément de menu lié à celle-ci et compte tenu du nombre de catégories, nous n'aurons pas d'élément de menu pour chacune.

Donc les questions sont:

  1. Est-il prévu que la catégorie enfant revienne par défaut au blog.php par défaut?

  2. Est-il possible de définir le remplacement de la présentation via un lien?

Je teste cela sur un MAMP avec PHP 7.0 et le dernier joomla 3.7.5

1
edger

Il est probable que les informations fournies ne sont pas exactes à 100%. Je vais donc essayer de clarifier quelques points et d'arriver à une conclusion.

Les substitutions peuvent être effectuées de nombreuses manières, il peut y avoir de nombreuses combinaisons de paramètres de configuration pour les traiter.

Ignore les approches

  1. Remplacement de la mise en page (global): pour tous les éléments d'une vue - il suffit de copier les fichiers tmpl de la vue dans le dossier respectif du dossier html du modèle. Ensuite, ces fichiers doivent être chargés à la place de ceux par défaut pour toutes les catégories, sans tenir compte.

  2. Alternative Layouts: Semblable à ce qui précède, mais cette fois-ci, nous renommons les fichiers tmpl et nous devons spécifier au niveau de l’article quelle disposition utiliser.

  3. Autres dispositions/éléments de men - Copiez et renommez/modifiez également le fichier XML tmpl afin que cette disposition puisse être sélectionnée/affectée avec ce nouvel élément de menu personnalisé.

D'après votre description, je peux supposer que vous avez suivi la 3ème option ... mais veuillez clarifier.

Dans ce cas, la mise en page sera utilisée uniquement pour la catégorie que vous avez sélectionnée avec votre élément de menu personnalisé.

Essayer de "tromper" les liens de sous-catégories avec le &layout=customlayout est une tentative juste et aurait du sens. Réellement &layout=template:customlayout _ serait plus proche - mais cela ne fonctionnera pas non plus.

À un moment donné dans le passé (il y a environ un an), j'ai approfondi cette idée et concluais comment cela fonctionnait et pourquoi cela ne pouvait pas fonctionner ainsi, mais je ne me souviens plus très bien pourquoi. Ma conclusion générale était que je devais créer mon MVC personnalisé avec diverses personnalisations ici et là. Cependant, depuis que c'était il y a longtemps, certaines choses ont peut-être changé maintenant.

Mais dans tous les cas, gardant cela à l'esprit, il est toujours possible de réaliser ce que vous voulez et cela peut être assez simple. Cela dépend un peu de votre configuration globale, mais voici ce que vous pouvez faire:

Vos options de substitution

  • En supposant que vous ayez suivi la 3ème option d’en haut, il suffit de cloner le customlayout.php dans votre dossier de substitution et renommez-le en quelque chose comme customlayoutsubs.php. Si nécessaire, créez des remplacements similaires pour les autres fichiers tmpl de cette présentation. Ensuite, dans votre backend, allez dans les catégories pour lesquelles vous voulez utiliser cette mise en page, modifiez-les et dans leur layout option (sous l’onglet Options) sélectionnez ce customlayoutsubs.php. Désormais, les sous-catégories utiliseront cette nouvelle présentation, identique à celle de votre autre élément de menu customlayout.php.

  • S'il ne s'agit que de la section d'un blog de catégorie que vous avez sur votre site, vous n'avez pas besoin d'un autre élément de menu. Créez simplement votre remplacement (première option) et laissez toutes les catégories l’utiliser.

  • Au cas où vous n’auriez besoin que de certaines catégories pour utiliser cette disposition, créez uniquement une autre disposition (sans élément de menu) et affectez cette disposition à ces catégories.


Quelques dernières réflexions.

Je pense que les capacités de neutralisation de Joomla ont besoin d'être perfectionnées et améliorées. Par exemple, attribuez à une catégorie parente un remplacement de mise en page et soyez en mesure d'hériter celui-ci à ses sous-utilisateurs via des paramètres, ou une prise en charge plus approfondie de la rubrique pour les éléments de menu alternatifs décrits ci-dessus serait Nice.

Il serait également logique qu’il existe une option au niveau de l’élément de menu pour configurer de tels paramètres.

Malgré tout, et avec la confusion que tout cela peut engendrer, il reste encore beaucoup d’options pour réaliser de grandes choses.

0
FFrewin