Récupérer CATID dans mod_custom

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

  • [RÉGLÉ] Récupérer CATID dans mod_custom

    Bonjour,
    Dans mon menu principal, j'ai des liens vers des pages qui affichent un blog d'une catégorie spécifique.
    En plus de ce blog, chaque page visée contient un mod_custom en bas de page dont le contenu est fonction de la page (catégorie en fait) affichée et alimenté par bdd. L'adresse de mon mod_custom spécifiée dans l'admin est du type "custom/calendrier.php?page=24".
    J'ai donc un mod_custom par page dont la seule différence est la variable "page" que je passe dans l'url.
    Du coup, c'est un peu le bor$%! dans mon admin.
    Ma question est la suivante:
    Comment récupérer l'id de la catégorie ou de la page affichée pour qu'un seul et unique mod_custom puisse être utilisé sur toutes les pages mais n'affiche pas la même chose en fonction de la page où il est affiché.
    J'ai trouvé des trucs genre
    Code PHP:
    echo JRequest::getVar('id'); 
    Mais rien ne s'affiche...
    Je précise, j'ai l'urlrewrite d'activé... si jamais ça a de l'importance.
    Merci de votre aide.
    Boimb.
    Dernière édition par boimb à 21/09/2011, 15h46 Raison: passé en réglé ;)

  • #2
    Re : Récupérer CATID dans mod_custom

    Bonjour,
    j'ai bien du mal à comprendre de quoi il s'agit...
    Pour moi mod_custom est un module standard de Joomla qui d'une part ne peut pas contenir de php et d'autre part n'a pas d'adresse qu'on puisse spécifier en admin
    Il te faudrait donc déjà un plugin comme sourcerer ou un module Jumi pour pouvoir intégrer du php dans module.
    Ensuite si tu récupères quelquechose dans un module par un getvar ça ne peut-être qu'un élément de l'URL de la page. Donc désactive la réécriture d'URL le temps de mettre tout ça au point et t'assurer que ce que tu veux récupérer est bien là.
    Schtroumpfe toi le Schtroumpf t'aidera.
    Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

    Commentaire


    • #3
      Re : Récupérer CATID dans mod_custom

      Salut Grand Schtroumpf,
      Merci de cette réponse rapide.
      Effectivement, j'me suis un peu emmêlé les pinceaux... Et pour cause, ce n'est pas moi qui a écrit et installé l'iframe, car en fait il s'agit bien de celà, un fichier "calendrier.php" appelé via une "fenêtre intégrée" (d'où l'url).
      Le but étant d'afficher un calendrier en relation avec la page affichée, en l’occurrence, un calendrier de rencontres sportives qui est bien entendu différent en fonction de l'équipe (donc de la page) affichée.
      Si j'ai bien compris ce que tu me dis, idéalement il faudrait que:
      1/ J'installe soit le plugin sourcerer ou le module Jumi pour pouvoir y copier/coller mon code php,
      2/ Désactiver "le temps du dev" la réécriture d'url pour y voir plus clair.
      Je m'y attelle de suite.
      Petite question en passant... Est-ce que mon Jrequest fonctionnera encore une fois la réécriture d'url activée?
      Merci pour le coup de main.
      See ya.
      Boimb

      Commentaire


      • #4
        Re : Récupérer CATID dans mod_custom

        Re,
        Est-ce que mon Jrequest fonctionnera encore une fois la réécriture d'url activée?
        oui, du moment que l'élément est visible quand l'URL est "normale"
        Schtroumpfe toi le Schtroumpf t'aidera.
        Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

        Commentaire


        • #5
          Re : Récupérer CATID dans mod_custom

          Merci Grand Schtroumpf,
          Ton explication et ton orientation m'ont grandement aidé!
          J'ai dl et installé "Flexi Custom Code" pour y copier/coller le code contenu dans mon fichier externe et ça marche! PLus besoin d'iframe à répétition...
          Le Jrequest fonctionne également, ce qui m'a permis de le mettre en paramètre de la requête sql contenue dans mon code php.
          Du coup, mon calendrier s'affiche bien en fonction de la page sur laquelle je me trouve.
          Tant que je te tiens... Il y aurait-il des fonctions intégrées à joomla qui me permettraient d'interroger ma base sans taper en dur dans le module mon mysqlconnect(....) ?
          Encore merci du coup de main!
          J'attends de voir si tu réponds et passe tout ça en [réglé]
          [EDIT]
          Arf, j'me suis un peu emballé... Ca fait bien une partie du boulot, mais
          Code PHP:
          echo JRequest::getVar('id'); 

          ne se met pas à jour... la valeur est conservée en mémoire, tant bien que c'est toujours le même calendrier qui s'affiche... Une idée? [/EDIT]
          Mon code au cas où...
          Code PHP:
          <?php
          $idcat 
          JRequest::getVar'id''' );
          echo 
          $idcat;
          $catequipe = array(40 => 1,
          47 => 2,
          41 => 3);

          mysql_connect('localhost''root''');
          mysql_select_db('cpbhand');  
          echo 
          "<center><div><br /><span class='titre'>Calendrier et résultats</span><br /><br /><table>";
          $passage "";
          $requete mysql_query("SELECT  `cpb_matchs`.`adversaire`, 
                                          `cpb_matchs`.`domicile`,
                                          `cpb_matchs`.`score_cpb`,
                                          `cpb_matchs`.`score_adversaire`,
                                          `cpb_matchs`.`date`,
                                          `cpb_competitions`.`nom`
                                  FROM `cpb_matchs` 
                                  LEFT JOIN `cpb_competitions` 
                                  ON `cpb_matchs`.`id_competition` = `cpb_competitions`.`id`
                                  WHERE `cpb_matchs`.`id_equipe` = "
          .$catequipe[$idcat]."
                                  ORDER BY `cpb_matchs`.`date`"
          );
          while (
          $resultat mysql_fetch_assoc($requete)) {
            if (!
          $passage) {
              
          $passage "<tr><td colspan = 4 class='tr_legende'><span class='match_domicile'>Matchs à domicile</span> / <span class='match_exterieur'>Matchs à l'extérieur</span></td></tr>";
              echo 
          "<tr class='tr_titre'>
                      <td>&nbsp;Date&nbsp;</td>
                      <td>&nbsp;Compétition&nbsp;</td>
                      <td>&nbsp;Adversaire&nbsp;</td>
                      <td>&nbsp;Score&nbsp;</td>
                    </tr>"
          ;
            }
            
          $tab explode(' '$resultat['date']);
            
          $tab_date explode('-'$tab[0]);
            
          $tab_heure explode(':'$tab[1]);
            if (
          $tab_heure[0] > || $tab_heure[1] > 0) {
              
          $heure " ".$tab_heure[0]."h".$tab_heure[1];
            }
            else {
              
          $heure "";
            }
            
          $style "match_nul";
            
          $score "";
            if (
          $resultat['score_cpb'] > || $resultat['score_adversaire'] > 0) {
              if (
          $resultat['score_cpb'] > $resultat['score_adversaire']) {
                
          $style "match_victoire";
              }
              elseif (
          $resultat['score_cpb'] < $resultat['score_adversaire']) {
                
          $style "match_defaite";
              }
              
          $score $resultat['score_cpb']." - ".$resultat['score_adversaire'];
            }
            echo 
          "<tr class='tr_ligne'>
                    <td class='date'>&nbsp;"
          .$tab_date[2]."/".$tab_date[1]."/".$tab_date[0].$heure."&nbsp;</td>
                    <td>&nbsp;"
          .$resultat['nom']."&nbsp;</td>
                    <td class='"
          .(($resultat['domicile'] == 1)?"match_domicile":"match_exterieur")."'>&nbsp;".$resultat['adversaire']."&nbsp;</td>
                    <td class='"
          .$style."'>&nbsp;".$score."&nbsp;</td>
                  </tr>"
          ;
          }
          echo 
          $passage."</table>";
          if (!
          $passage) {
            echo 
          "Aucun match n'est prévu";
          }
          echo 
          "</div></center>";
          ?>

          Dernière édition par boimb à 19/09/2011, 17h49

          Commentaire


          • #6
            Re : Récupérer CATID dans mod_custom

            Re,
            sans doute une histoire de cache. Vérifie que t n'a pas activé le cache pour le module.
            Schtroumpfe toi le Schtroumpf t'aidera.
            Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

            Commentaire


            • #7
              Re : Récupérer CATID dans mod_custom

              Effectivement, tu avais raison... Pb de cache. Tout fonctionne au mieux maintenant !
              Rapport à l'inscription en dur de:
              Code PHP:
              mysql_connect('localhost''root'''); 
              Est-ce une faille de sécurité béante dans mon site ?
              Au delà de la sécurité, est-ce que cela ne sollicite pas trop le serveur ? La connection est peut être déjà initiée et je n'aurais que mon select à effectuer ?
              Encore merci du temps que tu m'accordes Grand Schtroumpf.
              See Ya.
              Boimb.

              Commentaire


              • #8
                Re : Récupérer CATID dans mod_custom

                Re,
                mysql_connect('localhost', 'root', '');
                Est-ce une faille de sécurité béante dans mon site ?
                Oui, et une monstruosité d'un point de vue maintenance. Si tu crées n scripts, tu va dupliquer n fois les chaines et amplifier le problème.
                Une fois dans Joomla, il faut utiliser le framework et tout ce qui va avec, tu gagneras sur tous les plans. Exemples ici :
                Schtroumpfe toi le Schtroumpf t'aidera.
                Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                Commentaire


                • #9
                  Re : Récupérer CATID dans mod_custom

                  Salut Grand Schtroumpf,
                  Pour ne rien te cacher, j'ai un peu galéré... Mais ça y est ! J'suis arrivé au bout de mes peines...
                  J'ai utilisé l'instruction
                  Code PHP:
                  $db =& JFactory::getDBO(); 
                  pour me connecter et la base, et récupéré les résultats de la requête via la boucle
                  Code PHP:
                  $results $db->loadObjectList();
                  foreach(
                  $results as $resultat){ 
                  en lieu et place du
                  Code PHP:
                  while ($resultat mysql_fetch_assoc($requete)) { 
                  remplacé les
                  Code PHP:
                  $resultat['monchamp'
                  par des
                  Code PHP:
                  $resultat->monchamp 
                  et le tour est joué!
                  Merci encore pour le temps que tu m'as accordé et les tuyaux !
                  A bientôt!
                  Boimb.

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X