1 1 1 1 1 100%/5 (2 Votes)

Qui n'a pas essayé de créer un lien composant directement sur une catégorie de ce composant ? (par exemple: DocMan->catégorie "logiciels"...).

Pour ce faire,

1ère solution simple: utiliser le type "url" et non plus composant en y mettant l'url d'accès à la catégorie recherchée.

Limite de cette solution :Elle ne permet pas de gérer le choix d'affichage des autres modules de la page. Les liens url ne sont pas disponibles dans "Lien(s) vers l'élément de menu") des modules. Vous pouvez trouver une solution bricolage ici permettant de contourner ce problème.

A défaut de trouver une solution, rageant de ne pas avoir cette fonctionnalité, j'ai été faire un tour dans les sources et j'ai adapté la solution suivante :
2ème solution :

La modification porte sur les sources de joomla 1.0.11. (fonctionne également sur 1.0.12). Je vous conseille de taguer vos modifications (c'est à dire de mettre un commentaire portant votre marque. Cela vous permettra de lister vos modifications (recherche par contenu) avant des montées de version et de pouvoir les ré-appliquer.

Vous pouvez trouver ici l'exemple animé du résultat de la modification !


Editer le fichier suivant
    administrator/components/com_menus/components/components.menu.html.php

  • insérer ligne 59, la ligne suivante :

  •               if ( trim( form.link.value ) == "")
  • Les instructions suivantes devant être les lignes :

  •                form.link.value = comp_links[form.componentid.value];

                  }

                  if ( trim( form.name.value ) == "" )

                  { 

  • Mettez en commentaire la ligne suivante (vers ligne 110) comme indiqué ci-dessous:

  •       <!-- <?php echo ampReplace($lists['link']); ?> -->
  • et ajouter les lignes suivantes :

  •        <?php if ($lists['link']=="")
          {
          echo "La modification de l'URL sera possible une fois le lien créé.";
           ?>
          <input type="hidden" name="link" value="" />
          <?php
          }
          else
         {
          ?>
          <input class="inputbox" type="text" name="link" size="50" maxlength="250" value="<?php echo ampReplace($lists['link']); ?>" />
          <?php
          }
          ?>
  •  Enfin, mettez en commentaire la ligne suivante (vers ligne 180) comme indiqué :

  •         <!-- <input type="hidden" name="link" value="" /> -->

 

Editer le fichier suivant :
administrator/components/com_menus/components/components.class.php

  • modifiez la ligne 77 :

  •                 $lists['link']             = mosAdminMenus::Link( $menu, $uid );
  • comme suit :

  • #        $lists['link']             = mosAdminMenus::Link( $menu, $uid );
              if ($menu->id==0)
                $lists['link']             = mosAdminMenus::Link( $menu, $uid );      
              else
                $lists['link']             = mosAdminMenus::Link( $menu, $uid, $menu->link );

 

Commentaires  

+1 # ajout d\'une correctionalain 17-10-2006 22:24
Pourinfo : ajout à l'instant en fin d'article d'une correction pour éviter un effet de bord ( lors d'une modification, components.clas s.php ajoute toujours à l'adresse "&Itemid=.. ."-)
Répondre
0 # Cha\Mar 26-04-2007 22:06
Tu peux être plus précis pour cette correction ?
Répondre
0 # peut-êtrealain 26-04-2007 23:05
Salut,

Tu parles de la correction indiquée dans mon commentaire du 17 octobre :-?:
si oui, elle a été ajoutée dans l'article. C'est la dernière correction indiquée. Celle portant sur le source :arrow: components.class.php.
si non, désolé, c'est à mon tour de te demander plus de précision...sur ta question. :twisted:
J'espère que çà t'aidera.
N'hésite pas.
Répondre
0 # Demande de Cha\'Maralain 30-04-2007 08:25 Répondre
0 # ça marche sans marcher !polo13 13-06-2007 21:22
Effectivement quand j'ouvre le menu la fenêtre modifiable est bien là, mais quand je sauvegarde l'élément de menu le lien s'efface !
:cry::
Répondre