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
                          Aucune annonce pour le moment.

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X