Joomladay francophone 2018 à Paris 18 et 19 mai

Faire apparaitre les modules selon les liens virtuemarts

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Faire apparaitre les modules selon les liens virtuemarts

    Salut à tous,

    J'ai besoin pour une boutique de faire apparaitre les modules selon les pages virtuemart :
    Exemple :
    Pour la page d'acceuil de virtuemat (shop.index) un module de promo à droite
    Pour la page d'affichage des sous categories (shop.browse) un module de categorie à droite mais plus le module de promo
    pour le page produit (flypage) aucun module.

    Ma question : est il possible de gérer cela via le gestionnaire de module ou pas ?

    La difficulté étant que les pages internes à virtuemart(shop.browse, flypage....) n'apparaissent pas dans le menu "Affectation de menu" du gestionnaire de module.

    J'espère avoir été clair, toutes vos idées sont les bienvenues.
    Merci
    http://www.sunmodelisme.com - http://www.miroiterie-lapetitevenise.fr - http://www.bebemalice.fr - http://yzedesign.free.fr - http://www.lesmaurines.fr

  • #2
    As tu trouvé une piste??

    Je suis très intéressé par ce sujet!

    as tu trouvé des une soluce?

    Merci

    Commentaire


    • #3
      Salut à vous deux,

      Pardon à toi Yze972, je n'ai pas vu ton post !! C'est celui de Tomawack qui m'a réveillé
      J'espère que depuis le temps tu as trouvé la solution...

      Sinon, concrètement, vous pouvez utiliser le fabuleux module MetaMod. Son rôle consiste à inclure d'autres modules et/ou du code php sur mesure en fonction de "règles" très nombreuses. Le site de l'auteur donne de nombreuses recettes !! Basez vous sur elles...

      En gros :
      - vous créez un module custom - ou vous utilisez un module existant -
      - vous n'affectez aucune position à ce module (mais publié = oui)
      - vous notez quelque part son ID de module

      - vous configurez le module MetaMod à la position souhaitée (désactivez toutes les fonctions inutiles, geoip et autres...).
      - dans sa partie PHP, vous créez votre code selon vos besoins en vous référant aux exemples donnés par l'auteur sur son site.

      Donc, pour VirtueMart, je vous donne un exemple :

      Le début du code
      Code PHP:
      if ($option == "com_virtuemart") {
       
      $page array_key_exists("page",$_REQUEST) ? $_REQUEST["page"] : "";
       
      $category_id array_key_exists("category_id",$_REQUEST) ? $_REQUEST["category_id"] : ""
       
      $product_id array_key_exists("product_id",$_REQUEST) ? $_REQUEST["product_id"] : ""
       
      $search_category array_key_exists("search_category",$_REQUEST) ? $_REQUEST["search_category"] : "";

      //Votre code


      Le bout de code va lire la valeur de la variable "option" (visible dans l'url non sef) et si on est bien dans VirtueMart (com_virtuemart), il va extraire les variables de page, d'ID catégorie, d'ID produit et de recherche... dont on va se servir pour remplir "//Votre code" ci-dessus

      De petits exemple supplémentaires, vous allez voir, c'est enfantin !

      Sur une page de Catégorie (shop.browse)
      Code PHP:
      if ($page == "shop.browse") {
        if (
      $category_id == "2") return 97/* when browsing a specific category (2 in this case) */
        
      return 98/* when browsing any other category */
       

      Si on parcoure la catégorie 2, le module MetaMod affiche le module n° 97. Sinon, il affiche le module n° 98 (optionnel ! vous pouvez ne rien afficher d'autre si vous voulez, en effaçant "return 98;")

      Sur une page de produit (shop.product_details)
      Code PHP:
      if ($page == "shop.product_details") {
        if (
      $product_id == "4") return 99/* modules that should appear for very specific products */
        
      if ($product_id == "44") return 100;
        return 
      102/* when viewing any other product not mentioned above */
       

      Si on ouvre la page de détail du produit n° 4, MetaMod affiche le module n° 99. Pour le produit n° 44, il affiche le module n° 100. Et sinon, il affiche le module n° 102...

      Consultez le site de l'auteur, il y a de nombreux autres exemples !!

      J'espère que ce merveilleux module va vous sortir une épine du pied

      @++
      Hyperion
      Pas de demande de support en MP ou par mail, le forum est là pour ça!
      http://network.wantoo.com : Wantoo Network - Infogérance Serveurs Dédiés - Sécurité Joomla!

      Commentaire


      • #4
        Salut,

        Hyperion, tu m'as devancé dans ma réponse à Tomawack
        J'avais effectivement trouvé cette solution, mais elle ne répondait pas totalement à mon probleme.
        Alors peut-être encore besoin d'aide...

        Certe je pouvais afficher n'importe lequel de mes modules, mais je voulais aller plus loin sur les pages de virtuemart:
        En fait, je voulais que sur certaine page apparaissent la colonne de droite du site avec un module de recherche et certaines autres aucune colonne ni à droite ni à gauche (exemple fiche produit).

        Le souci que j'ai rencontré avec metamod est qu'il faut le publier pour l'affichage personnalisé et résultat ma colonne de droite demeurait tout le temps présente puisque le metamod y était publié qu'il y ait un module à montrer ou pas.

        Si tu as une solution, je suis preneur

        Je ne sais pas si je me suis bien fait comprendre ...
        Sinon j'essaierai de mieux m'expliquer
        Dans tous les cas merci
        A+
        http://www.sunmodelisme.com - http://www.miroiterie-lapetitevenise.fr - http://www.bebemalice.fr - http://yzedesign.free.fr - http://www.lesmaurines.fr

        Commentaire


        • #5
          Envoyé par yze972 Voir le message
          Le souci que j'ai rencontré avec metamod est qu'il faut le publier pour l'affichage personnalisé et résultat ma colonne de droite demeurait tout le temps présente puisque le metamod y était publié qu'il y ait un module à montrer ou pas.
          Oui, j'ai le même problème ! Malheureusement, au regard de la façon dont sont exécutées les constructions de pages, j'ai peur qu'il n'y ait pas de solution à cela.

          On pourrait penser modifier le code de MetaMod pour que, s'il n'y a aucun contenu à afficher, il se "dépublie" lui-même. Mais ce n'est pas possible car il est déjà présent (monté) physiquement dans le montage du template lorsqu'il s'exécute... trop tard, donc
          Que le module soit vide ou non, son emplacement est réservé dans l'ensemble de la page.

          Sauf, peut être à jouer avec une feuille de style adaptée au template lui-même et créer dynamiquement une contrainte de "display:none" par exemple, pour l'ensemble du module... je ne sais pas. A tester. Je dis peut être une ânerie

          @++
          Hyperion
          Pas de demande de support en MP ou par mail, le forum est là pour ça!
          http://network.wantoo.com : Wantoo Network - Infogérance Serveurs Dédiés - Sécurité Joomla!

          Commentaire


          • #6
            Bonjour,

            Un peu d'archéologie aujourd'hui en deterrant ce topic, et au cas où ça pourrait aider quelqu'un:

            Le souci que j'ai rencontré avec metamod est qu'il faut le publier pour l'affichage personnalisé et résultat ma colonne de droite demeurait tout le temps présente puisque le metamod y était publié qu'il y ait un module à montrer ou pas.
            --> Ce problème est manifestement désormais résolu dans la version pro:

            If the MetaMod does not contain any modules, the template does not see any modules published into the module position. This means that the template will only reserve space for modules that are actually published, just as it would if the MetaMod was not used.

            (Traduction: Si le Metamod ne contient aucun module, le template ne voit aucun module publié dans la position. Autrement dit, le template réservera uniquement des espaces pour les modules réellement publiés, comme il le ferait si le Metamod n'était pas utilisé.)

            Commentaire

            Annonce

            Réduire
            1 sur 2 < >

            C'est [Réglé] et on n'en parle plus ?

            A quoi ça sert ?
            La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

            Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

            Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
            Comment ajouter la mention [Réglé] à votre discussion ?
            1 - Aller sur votre discussion et éditer votre premier message :


            2 - Cliquer sur la liste déroulante Préfixe.

            3 - Choisir le préfixe [Réglé].


            4 - Et voilà… votre discussion est désormais identifiée comme réglée.

            2 sur 2 < >

            Assistance au forum - Outil de publication d'infos de votre site

            Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

            Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

            Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

            UTILISER À VOS PROPRES RISQUES :
            L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

            Problèmes connus :
            FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

            Installation :

            1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

            Archive zip : https://github.com/AFUJ/FPA/zipball/master

            2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

            3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

            4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

            5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

            6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
            et remplacer www. votresite .com par votre nom de domaine


            Exemples:
            Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
            Télécharger le script fpa-fr.php dans: /public_html/
            Pour executer le script: http://www..com/fpa-fr.php

            Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
            Télécharger le script fpa-fr.php dans: /public_html/cms/
            Pour executer le script: http://www..com/cms/fpa-fr.php

            En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

            Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
            Voir plus
            Voir moins
            Travaille ...
            X