Transmettre le paramètre ID d'un module à mon application

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

  • [Problème] Transmettre le paramètre ID d'un module à mon application

    Bonjour à vous et merci de votre promptitude.
    JE travaille sur un projet de partage vidéo et j'utilise un composant vidéo : "" qui vient avec ses modules standards : Featured video, popular video, related video ...
    Le problème, est que lesdits modules ne donnent pas la possibilité de filtrer leur résultat en fonction d'une catégorie spécifique.
    J'ai donc créé dans le fichier xml des modules, un paramètre "id catégorie" (pour le moment en champ texte). Mais j' n'arrive pas à passer le paramètre (id de la catégorie choisie) à la requête dans le contrôleur helper.php (dans la requête qui attaque la base de données, j'ai pu ajouter une autre clause dans le "where " pour inclure l' id de la catégorie depuis le module et quand j'y affecte une valeur constante, j'ai le résultat).
    C'est un peu compliqué pour moi avec l'orienté objet car cela fait un bon moment que j'ai cessé de programmer. Et je suis un peu perdu. (Si au passage, il y a un bon tuto qui peut m'aider à reprendre pied dans la programmation php surtout orienté Objet, je suis prenant)
    Merci pour votre aide!
    Dernière édition par lupino federos à 02/02/2014, 17h35 Raison: messages commerciaux

  • #2
    Re : Transmettre le paramètre ID d'un module à mon application

    Bonjour,

    Contus HD video Share étant un produit commercial, pour accéder aux sources du composant et de ses modules, et déterminer ce qu'il y aurait à faire pour réaliser un module ayant le comportement désiré, il faudrait en acquérir une licence.

    Mais logiquement, dans un module, si les paramètres respectent bien la méthodologie Joomla!, l'id de catégorie doit être accessible dans les paramètres du module via $params->get 'nom_du_param', 'valeur_par_defaut' ).
    Une fois cet ID récupéré, il suffit de le passer à la requête SQL.

    En PHP-OOP, voir par exemple http://fr.openclassrooms.com/informa...e-objet-en-php qui est un cours de qualité et très didactique.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Transmettre le paramètre ID d'un module à mon application

      JE vous joins le contenu du fichier mod_HDvideosharePopular.php

      <?php

      // No direct access to this file
      defined('_JEXEC') or die('Restricted access');
      // Define DS
      if (!defined('DS')) {
      define('DS', DIRECTORY_SEPARATOR);
      }
      require_once( dirname(__FILE__) . DS . 'helper.php' );
      $db = JFactory::getDBO();
      $document = JFactory::getDocument();
      if(version_compare(JVERSION,'1.7.0','ge')) {
      $version='1.7';
      } elseif(version_compare(JVERSION,'1.6.0','ge')) {
      $version='1.6';
      } else {
      $version='1.5';
      $document->addStyleSheet( JURI::base().'components/com_contushdvideoshare/css/tool_tip_15.css' );
      }
      if($version == '1.5'){
      if(!class_exists('JHtmlString')){
      JLoader::register('JHtmlString', JPATH_SITE.'/components/com_contushdvideoshare/string.php');
      }
      }
      if(version_compare(JVERSION,'1.6.0','ge')) {
      $jlang = JFactory::getLanguage();
      $jlang->load('mod_HDVideoSharePopular', JPATH_SITE, $jlang->get('tag'), true);
      $jlang->load('mod_HDVideoSharePopular', JPATH_SITE, null, true);
      }
      $class = $params->get( 'moduleclass_sfx' );

      // C'est ici que je récupère dans la variable $categorie_id, la valeur de la catégorie entrée dans le module
      // dans le champ texte créé dans le fichier xml

      $categorie_id = $params->get( 'moduleclass_sfx1' );
      $result = modpopularvideos::getpopularVideos();
      $result1 = modpopularvideos::getpopularVideossettings();
      require(JModuleHelper::getLayoutPath('mod_HDVideoS harePopular'));
      ?>
      Dernière édition par lupino federos à 02/02/2014, 17h34

      Commentaire


      • #4
        Re : Transmettre le paramètre ID d'un module à mon application

        Voici le helper.php. La clause en gras est la partie ajoutée et qui marche quand je met en constante le id de la catégorie.


        // No direct access to this file
        defined('_JEXEC') or die('Restricted access');
        /**

        class modpopularVideos {

        /* function to get popular videos */
        public static function getpopularvideos() {
        $db = JFactory::getDBO();
        $limitrow = modpopularVideos::getpopularvideossettings();

        $thumbview = unserialize($limitrow[0]->sidethumbview);
        $length = $thumbview['sidepopularvideorow'] * $thumbview['sidepopularvideocol'];
        //Query is to display popular videos
        $popularquery = "SELECT a.id,a.filepath,a.thumburl,a.title,a.description,a .times_viewed,a.ratecount,a.rate,
        a.times_viewed,a.seotitle,b.category,b.seo_categor y,d.username,e.catid,e.vid
        FROM #__hdflv_upload a
        LEFT JOIN #__users d on a.memberid=d.id
        LEFT JOIN #__hdflv_video_category e on e.vid=a.id
        LEFT JOIN #__hdflv_category b on e.catid=b.id
        WHERE a.published='1' and b.published=1 and a.type='0' and e.catid='8'
        GROUP BY e.vid
        ORDER BY a.times_viewed desc
        LIMIT 0,$length";
        $db->setQuery($popularquery);
        $popularvideos = $db->loadobjectList(); //$popularvideos contains the results
        return $popularvideos;
        }

        /* function to get popular videos settings */
        public static function getpopularvideossettings() {
        $db = JFactory::getDBO();
        //Query is to select the popular videos row
        $popularquery = "SELECT dispenable,sidethumbview FROM #__hdflv_site_settings";
        $db->setQuery($popularquery);
        $rows = $db->loadObjectList();
        return $rows;
        }
        }
        ?>
        Dernière édition par lupino federos à 02/02/2014, 17h34

        Commentaire


        • #5
          Re : Transmettre le paramètre ID d'un module à mon application

          il n'est normalement pas permis de publier en forum le code de produits commerciaux.

          De plus, ce code est inutile, puisque d'une part, les moduleclass_sfx sont des variables permettant (et automatiquement utilisées par le chrome des modules) uniquement de passer des classes CSS à un module.
          Tout paramètre "parlant" devant avoir un nom de varaible aussi parlant, par exemple category_id...

          Le code donné ici le fait que récupérer des paramètres, puis appeler des méthodes statiques de la classe modpopularvideos, qui, comme son nom l'indique n'a qu'un seul but, récupérer les vidéos les plus populaires, toutes catégories confondues.

          Il conviendrait donc, éventuellement en t'inspirant du code de ce module, de créer ton propre module, avec les bons paramètres et la classe adhoc. Ce serait la seule méthode évitant que les bricolages dans le code soient anéantis à la première mise à jour de l'ensemble composant/modules.
          Pas de demande de support par MP.
          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

          Commentaire


          • #6
            Re : Transmettre le paramètre ID d'un module à mon application

            Rappel, il est absolument INTERDIT de publier du code de produits commerciaux sur le forum, c'ets une violation de la licence qui t'est accordée par l'auteur du composant.
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : Transmettre le paramètre ID d'un module à mon application

              Je suis désolé pour cette erreur. J'ai cette intention et c'est quelque peu difficile pour moi. C'est pourquoi j'ai recours à se forum pour être guidé. merci pour votre promptitude

              Commentaire


              • #8
                Re : Transmettre le paramètre ID d'un module à mon application

                Regarder la méthode getpopularvideos... il est possible d elui ajouter un paramètre, par exemple
                Code PHP:
                public static function getpopularvideos$catid=0
                et d'utiliser ce paramètre pour lui transmettre la catégorie.
                Pas de demande de support par MP.
                S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                Commentaire


                • #9
                  Re : Transmettre le paramètre ID d'un module à mon application

                  Merci jisse03.
                  Comme je le disais, je ne sais pas comment utiliser pour lui transmettre la catégorie. Désolé. Pouvez vous pousser le bouchon un peu loin?

                  Merci de votre compréhension

                  Commentaire


                  • #10
                    Re : Transmettre le paramètre ID d'un module à mon application

                    C'est une des bases de la programmation, et pas qu'avec PHP.

                    Il faut déclarer la méthode avec son paramètre (qui pourra être utilisé pour la requête SQL. Et lors de l'appel à la méthode, lui passer le paramètre du module (celui concernant l'ID de catégorie...)
                    Donc
                    Code PHP:
                    $result modpopularvideos::getpopularVideos$category_id ); 
                    Donner davantage de code concernant ce module reviendrait à en fournir une version sur le forum, ce qui violerait quelque peu la licance.

                    On ne peut donc donner que des pistes.
                    Pas de demande de support par MP.
                    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                    Commentaire


                    • #11
                      Re : Transmettre le paramètre ID d'un module à mon application

                      J'ai déclaré la méthode avec et j'ai utillisé, toujours dans mon fichier helper, la variable $result dans la clause where de la requête à la BD. que dois je ??
                      un tuto ou un lien pour m'aider ou en MP? please!!
                      Merci

                      Commentaire


                      • #12
                        Re : Transmettre le paramètre ID d'un module à mon application

                        Pour le tuto, voir ma réponse http://forum.joomla.fr/showthread.ph...=1#post1000346

                        La variable result est le RESULTAT de la requête. Dans la clause WHERE, c'est la paramètre catid qui doit être utilisé.

                        On ne peut pas bricoler des méthodes sans prendre le temps d'étudier au moins les bases de PHP, du passage de paramètres, c'est à dire les bases même de la programmation.

                        Autant pour du composant ou module Free, donner du code n'est jamais un problème, mais dès qu'il s'agit de produits commerciaux, les règles s'appliquent, que ce soit sur le forum ou en message privé. Je ne donne que des indications générales, des tutos, mais pas de code complètement écrit concernant ces applications commerciales.
                        Pas de demande de support par MP.
                        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                        Commentaire


                        • #13
                          Re : Transmettre le paramètre ID d'un module à mon application

                          J'avais pas vu le lien du tuto. Je me met tout de suite la dessus et je reviens.

                          Merci encore!!!
                          Bien à vous

                          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