Cibler enfants d'une page ID du menu pour afficher un module dans les pages enfants

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • psykopathik
    a répondu
    Re : Cibler enfants d'une page ID du menu pour afficher un module dans les pages enfa

    Merci Rajoz !
    Ton code PHP fonctionne nickel en fait !

    J'avais bêtement oublié une parenthèse pour fermer

    Si ca peut servir :

    Code PHP:
    <?php
    $app 
    JFactory::getApplication();
    $menu $app->getMenu();
    $active $menu->getActive();
    $view   $app->input->getCmd('view''');

    if (
    $active->id == 105 || $active->id == 106 || $active->id == 252 || $active->id == 253) {
    if (
    $view =='article') { ?>

    // MON MODULE

    <?php }
    ?>

    Laisser un commentaire:


  • psykopathik
    a répondu
    Re : Cibler enfants d'une page ID du menu pour afficher un module dans les pages enfa

    Hello,

    Tout d'abord merci à tous d'avoir pris le temps de me répondre.

    J'avoue que ca m'embête de passé par un module tiers, quand on peut simplement le faire en PHP et que c'est un paramètre qu'il n'y a pas besoin d'administrer (dans mon cas).

    @Rajoz :
    La solution 1 n'est pas possible, trop fastidieuse... créer un nouvel item à chaque fois que l'on créé un article, c'est un coup à oublié 1 fois 5, et à très rapidement avoir un menu à 3000 items

    Je teste avec ta piste en PHP.
    Pour le moment j'ai des erreurs, mais on trifouillant avec les sources des modules évoqués, je vais peut-être trouver la bonne façon d'écrire ma petite condition.

    Je vous tiens au courant.

    Laisser un commentaire:


  • Rajoz
    a répondu
    Re : Cibler enfants d'une page ID du menu pour afficher un module dans les pages enfa

    Bonjour psykopathik,

    Voici plusieurs pistes.

    1) Avec Joomla! tout seul en utilisant l'assignation des modules : créer une architecture à deux niveaux des des catégories et utiliser un menu caché pour le deuxième niveau. L'organisation proposée est :
    Catégorie A --> lien dans le menu visible (avec inclure les sous-catégories) --> le module ne lui est pas assigné
    • Catégorie B --> lien dans un menu caché --> le module lui est assigné
      • Article 1
      • Article 2

    Dans le menu visible le lien blog sur la catégorie A permet d'afficher les articles en blog. Quand on clique sur un des articles en blog, Joomla! remonte au premier lien de menu au-dessus de l'article pour l'afficher en entier, donc le lien de menu du menu caché et il affiche le module qui est assigné à ce menu caché.

    2) Joomla! avec un module comme MetaMod
    http://extensions.joomla.org/extensi...anagement/3391
    On doit aussi pouvoir le faire avec d'autres extensions de http://extensions.joomla.org/extensi...les-management, mais c'est MetaMod qui m'est venu en premier.
    MetaMod permet d'afficher les modules en fonction d'un code PHP, par exemple on peut mettre :
    Code:
    if ($view == 'article' and $Itemid == "xxx") return yyy;
    $view == 'article' : il faut que la vue soit 'article' puisque l'on veut que le module ne s'affiche que pour les articles affichés complets
    $Itemid == 'xxx' : il faut que l'id du lien de menu soit xxx puisque l'on veut que le module ne s'affiche que pour ce lien de menu
    return yyy : si les deux conditions sont vraies MetaMod retourne (affiche) le module dont l'id est yyy

    3) Si l'objectif est d'ajouter un 'bout de code' comme dans l'exemple de ton post il faut penser que comme pour MetaMod les articles entiers sont affichés avec une view=article et dépendent d'un lien de menu Itemid=xxx (105 dans ton exemple) :
    Code:
    <?php
    $app    = JFactory::getApplication();
    $view   = $app->input->getCmd('view', '');
    $itemid = $app->input->getCmd('Itemid', '');
    if ($view =='article' && $itemid='105') {
        // bout de code ...
    }
    ?>
    Atuce : C'est parfois utile de se mettre en mode non-SEF et de regarder de contenu de l'URL. Ici, ça m'a donné la view et l'itemid des pages ciblées. Avec Protostar, on peut aussi regarder les valeurs des variables lignes 20 à 26 de templates/protostar/index.php en ajoutant des 'echo' pour voir ce qu'il y a dedans.

    Amicalement,
    Rajoz

    Laisser un commentaire:


  • chabi01
    a répondu
    Re : Cibler enfants d'une page ID du menu pour afficher un module dans les pages enfa

    Bonjour,
    Peut-être que Advanced Module Manager de Nonumber.nl pourrait t'aider...
    Regular Labs offers you the best and highest rated Joomla extensions: Advanced Module Manager, Modals, Articles Anywhere, Modules Anywhere, Sourcerer en ReReplacer and many more.


    Cordialement,

    Laisser un commentaire:


  • Cibler enfants d'une page ID du menu pour afficher un module dans les pages enfants

    Hi @all,

    Mon titre n'est peut être pas très explicite... difficile à formuler en une phrase

    L'idée : Afficher un module sur des pages spécifiques, en les ciblant depuis leur item de menu parent.
    Pour cibler une page "active" du menu, ça OK :

    Code PHP:
    <?php
    $app 
    JFactory::getApplication();
    $menu $app->getMenu();
    $active $menu->getActive();
    if (
    $active->id == 105) { 
    // bout de code...
    ?>
    Sauf que, je ne veux pas cibler cette page à l'ID 105 (qui est un affiche Blog catérogie), mais les sous-pages (les enfants), autrement-dit quand l'article est afficher complet.

    Et ces fameuses sous-pages ne sont pas dans mon menu, et les ID, il y en aura des nouvelles à chaque fois qu'il y aura un nouvelle article.
    Donc impossible de cibler leurs ID.

    Je n'ai pas trouvé comment cibler les "enfants".

    Des pistes ?

    Merci d'avance.

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X