url rewriting et SOURCERER

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

  • [Problème] url rewriting et SOURCERER

    Bonjour,

    Je reviens sur une discussion que j'avais ouverte en Mars 2014, mais je ne bouge pas d'un pouce.

    J'ai fait un script php fait maison de requête vers une base de données (qui fonctionne très bien) j'ai mis tout cela entre des balises sourcerer

    A l'origine voici le code qui fonctionne bien :
    Code PHP:
    <a href='index.php?option=com_content&view=article&id=28&amp;annee1=$anneecompet1&amp;annee2=$anneecompet2'
    Pour rendre cela plus joli je passe par l'url rewriting

    Voici le code que j'inscris dans la page php :
    Code PHP:
    <a href='resultats-saison-$anneecompet1-$anneecompet2'
    puis dans le .htaccess :
    Code PHP:
    RewriteRule ^resultats-saison-([0-9]+)-([0-9]+) ./index.php?option=com_content&view=article&id=28&annee1=$1&annee2=$[L
    Et la j'ai erreur 404 dès que je lance resultats-saison-$anneecompet1-$anneecompet2

    Dans la précédente discussion jisse03 m'avait conseillé de regarder du côté de JRoute

    C'est simple, je ne comprend rien !

    Suis-je obligé de passer par JRoute dès que j'utilise sourcerer ?
    Y a t'il un truc que je loupe quelque part ?

    D'avance merci pour votre aide

  • #2
    Re : url rewriting et SOURCERER

    Bonjour,

    JRoute est la solution de choix, très simple, pour la gestion de l'URL rewriting. Voir http://docs.joomla.org/Supporting_SE...your_component pour une explication complète.

    Sourcerer supporte très bien l'usage de JRoute::_( )
    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 : url rewriting et SOURCERER

      Envoyé par jisse03 Voir le message
      Bonjour,

      JRoute est la solution de choix, très simple, pour la gestion de l'URL rewriting. Voir http://docs.joomla.org/Supporting_SE...your_component pour une explication complète.

      Sourcerer supporte très bien l'usage de JRoute::_( )
      Bonjour et merci pour la réponse.

      Je vais faire étape par étape et "tenter" de comprendre la chose

      Donc avec JRoute, il est totalement inutile de compléter quelque chose dans le fichier .htaccess ?
      Tout se déroule dans le fichier .php qui est encadré par les balises {source}

      Est-ce bien cela ?

      Faut-il absolument créer un fichier router.php situé dans le dossier components/com_unnouveau dossier/

      J'ai vraiment l'impression que cela dépasse totalement mes compétences

      Commentaire


      • #4
        Re : url rewriting et SOURCERER

        Vu que tu appelles com_content dans ton URL, tu n'as pas besoin de rajouter un router.php, celui de com_content fera l'affaire. Le cas où tu devrais écrire ton routage est celui où tu crées ton propre composant.

        En utilisant JRoute::_, tu n'as pas à te battre avec le .htaccess, c'est la logique SEF de Joomla! qui se charge du boulot.
        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


        • #5
          Re : url rewriting et SOURCERER

          Envoyé par jisse03 Voir le message
          Vu que tu appelles com_content dans ton URL, tu n'as pas besoin de rajouter un router.php, celui de com_content fera l'affaire
          Bonjour,
          Ha voilà une bonne nouvelle. Effectivement dans com_content il y a un fichier routeur.php qui contient les différentes fonctions.

          Par contre ce que je ne comprends pas du tout c'est la construction.

          Avant le lien
          Code PHP:
          <a href='index.php?option=com_content&view=article&id=28&amp;annee1=2013&amp;annee2=2014'
          Il faut que je définisse une variable type $url ou je mettrais par exemple :
          Code PHP:
          $url="index.php?option=com_content&view=article&id=28"
          et après je supprimerais le lien pour le remplacer par :
          Code PHP:
          JRoute :: ($ url&mesvariablesderequetes); 
          ou bien est-ce dans le lien
          Code PHP:
          <a href='index.php?op ... 
          que j'inclus le JRoute

          Autant dire que cela ne fonctionne pas, de plus je ne vois pas ou ce trouve la "traduction" du lien.

          J'ai beaucoup de mal à comprendre la construction de ce traducteur d'URL

          Commentaire


          • #6
            Re : url rewriting et SOURCERER

            Suivant le contexte de ton lien, tu peux avoir besoin ou pas de guilemets ou de mettre un <?php ?> ou autre

            En n'ayant pas le contexte complet, difficile de te dire quelle est la syntaxe exacte à utiliser dans ce cas précis.
            En règle générale, tu passes à JRoute::_ ton URL complète, variables y comprises, c'est le rôle du routeur que d'en faire quelque chose de lisible.
            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 : url rewriting et SOURCERER

              Envoyé par jisse03 Voir le message
              tu passes à JRoute::_ ton URL complète, variables y comprises, c'est le rôle du routeur que d'en faire quelque chose de lisible.
              Bonjour,

              Désolé mais je ne comprends vraiment pas. Il y a réellement un truc qui m'échappe !

              Dans mon script entouré par les balises {source}<?php et ?>{/source}
              J'ai la ligne originale suivante :
              Code PHP:
              <a href='index.php?option=com_content&view=article&id=28&amp;annee1=$anneecompet1&amp;annee2=$anneecompet2'><font color='#000000'>Résultats pour la saison $anneecompet1 $anneecompet2</font></a>"; 
              qui fonctionne bien
              J'ai modifié en :
              Code PHP:
              JRoute :: (<a href='index.php?option=com_content&view=article&id=28&amp;annee1=$anneecompet1&amp;annee2=$anneecompet2'>)<font color='#C61291'>Résultats pour la saison $anneecompet1 $anneecompet2</font></a>"; 
              Assez étonnamment cela ne fonctionne pas

              Comment diable JRoute va savoir ce qu'il faut modifier ?

              Pour en revenir à mon .htaccess, j'ai inséré cette ligne et je pense que l'erreur est la suivante :
              Code PHP:
              RewriteRule ^resultats-saison-([0-9]+)-([0-9]+) index.php?option=com_content&view=article&id=28&annee1=$1&annee2=$[L
              Il ne sait pas interprété la seconde partie de la ligne et pourtant si je tape direct l'url cela fonctionne.

              J'en perd mon latin même si je n'en parle pas un mot!
              En tout cas merci du temps pris pour me répondre

              Commentaire


              • #8
                Re : url rewriting et SOURCERER

                Il y a un problème de compréhension...
                Code PHP:
                <a href=<?php 
                JRoute
                :: ('index.php?option=com_content&view=article&id=28&amp;annee1=$anneecompet1&amp;annee2=$anneecompet2'); ?> >
                <font color='#C61291'>Résultats pour la saison $anneecompet1 - $anneecompet2</font></a>";
                serait une syntaxe correcte.
                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 : url rewriting et SOURCERER

                  Envoyé par jisse03 Voir le message
                  syntaxe correcte.
                  Merci pour l'aide.

                  Une petite modification, j'ai retiré le <?php et le ?> puisque le script est déjà entre ces balises : à titre d'infos l'ensemble du script :
                  Code PHP:
                  {source}<?php
                  print " <!-- affichage du fond et de l'encadrement --><div class='cadre'>
                  <!--cadre avec bords arrondis --><div class='hautdroit'></div><div class='hautgauche'></div>
                  <div class='resultats'>Résultats des Championnats<div class='interligne'></div>et concours à la Ligue de Tir de Picardie</div><br>
                  <div class='article'>Choisissez tout d'abord l'année que vous désirez voir<br><br></div>"
                  ;
                  $anneecompetition="SELECT DISTINCT annee, annee2
                  FROM info_compet
                  ORDER BY annee DESC"
                  ;                 
                  $resultannee=mysql_query($anneecompetition) or die("Erreur dans l'extraction des informations<br>");
                  while (
                  $row mysql_fetch_array($resultannee)) {
                  $anneecompet1=$row["annee"];     
                  $anneecompet2=$row["annee2"];  
                  #tri dans les annees avec affichage different pour l'annee en cours
                  # Permet un affichage différent pour l'année en cours
                  if ($anneecompet1 =="2013") {            
                  print 
                  " <div class='archivesnavigationnew'>       
                  <a href= JRoute::_('index.php?option=com_content&view=article&id=28&amp;annee1=
                  $anneecompet1&amp;annee2=$anneecompet2');>
                  <font color='#C61291'>Résultats pour la saison 
                  $anneecompet1 - $anneecompet2</font></a><div class='interligne'></div>
                  </div><br>"
                  ;
                  }
                  #
                  elseif ($anneecompet1 >="2000") {
                  print 
                  " <div class='archivesnavigation'>        
                  <a href='index.php?option=com_content&view=article&id=28&amp;annee1=
                  $anneecompet1&amp;annee2=$anneecompet2'><font color='#000000'>Résultats pour la saison $anneecompet1 - $anneecompet2</font></a><div class='interligne'></div>
                  </div>"
                  ;
                  } }
                  #requete permettant affichage des annees du 20eme siecle                
                  $anneecompetition="SELECT DISTINCT annee
                  FROM info_compet
                  ORDER BY annee DESC"
                  ;
                  #recherche et affichage des annees    
                  $resultannee=mysql_query($anneecompetition) or die("Erreur dans l'extraction des informations<br>");
                  while (
                  $row mysql_fetch_array($resultannee)) {
                  $anneecompet3=$row["annee"];     
                  }
                  if (
                  $anneecompet3 "2000") {
                  print 
                  " <br><br><a href='index.php?page=210'><div class='article'><div align='center'><b>Les résultats du siècle dernier</b></div></a><div class='interligne'></div></div>";
                  }
                  print 
                  " <!-- Fin cadre avec bords arrondis et du fond --><div class='basdroit'></div><div class='basgauche'></div></div>";
                  ?>{/source}
                  Mais cela ne fonctionne pas, sur le lien j'obtiens cela :
                  Code PHP:
                  jroute::_('index.php?option=com_content&view=article&id=28&annee1=2013&annee2=2014'); 
                  avec comme message : Cliquez sur l'image pour l'afficher en taille normale

Nom : JRoute-1.jpg 
Affichages : 1 
Taille : 85,9 Ko 
ID : 1803540

                  Commentaire


                  • #10
                    Re : url rewriting et SOURCERER

                    essaies de cette manière, tu auras plus de chan ces
                    Code PHP:
                    {source}
                    <!-- affichage du fond et de l'encadrement -->
                    <div class='cadre'> 
                        <!--cadre avec bords arrondis -->
                        <div class='hautdroit'></div>
                        <div class='hautgauche'></div> 
                        <div class='resultats'>
                            Résultats des Championnats<div class='interligne'>
                        </div>et concours à la Ligue de Tir de Picardie
                    </div>
                    <br /> 
                    <div class='article'>Choisissez tout d'abord l'année que vous désirez voir<br /><br />
                    </div>
                    <?php
                    $db 
                    JFactory::getDBO();
                    $anneecompetition="SELECT DISTINCT annee, annee2 
                        FROM info_compet 
                        ORDER BY annee DESC"
                    ;
                    $db->setQuery($anneecompetition);
                    $result $db->loadObjectList() ;
                    if (
                    is_null($result)) {
                        die(
                    "Erreur dans l'extraction des informations<br>"); 
                    }
                    foreach (
                    result AS $row) {
                        
                    $anneecompet1=$row->annee;
                        
                    $anneecompet2=$row->annee2;
                        
                    #tri dans les annees avec affichage different pour l'annee en cours 
                        # Permet un affichage différent pour l'année en cours 
                        
                    if ($anneecompet1 =="2013") {
                            echo 
                    '<div class="archivesnavigationnew">        
                                <a href="' 
                    JRoute::_('index.php?option=com_content&view=article&id=28&amp;annee1=' $anneecompet1 '&amp;annee2=' $anneecompet2 ) . '">
                                <font color="#C61291">Résultats pour la saison ' 
                    $anneecompet1 ' - ' $anneecompet2 '</font></a><div class="interligne"></div> 
                                </div><br />'
                    ;  
                        }
                        elseif (
                    $anneecompet1 >="2000") { 
                            print 
                    '<div class="archivesnavigation">
                            <a href="' 
                    JRoute::_('index.php?option=com_content&view=article&id=28&amp;annee1=$anneecompet1&amp;annee2=$anneecompet2') . '"><font color="#000000">Résultats pour la saison ' $anneecompet1 ' - ' $anneecompet2 '</font></a><div class="interligne"></div> 
                            </div>'

                        }
                    }
                    #requete permettant affichage des annees du 20eme siecle                 
                    $anneecompetition="SELECT DISTINCT annee 
                        FROM info_compet 
                        ORDER BY annee DESC"

                        
                    #recherche et affichage des annees
                        
                    $db->setQuery($anneecompetition) ;
                        
                    $resultannee $db->loadObjectList() ;
                        if (
                    is_null($resultannee)) {
                            die(
                    "Erreur dans l'extraction des informations<br>"); 
                        }
                        foreach (
                    $resultannee as $an2) {
                            
                    $anneecompet3 $row->annee;
                            if (
                    $anneecompet3 "2000") { 
                                echo 
                    '<br /><br /><div class="article"><div style="text-align:center"><strong><a href="' JRoute::_'index.php?page=210') . '">Les résultats du siècle dernier</a></strong></div>
                                <div class="interligne"></div></div>'

                            }
                        }
                    ?>
                    <!-- Fin cadre avec bords arrondis et du fond --><div class="basdroit"></div><div class="basgauche"></div></div>
                    {/source}
                    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

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X