Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

[Résolu] Problème récupération variable d'une page à l'autre

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French
View previous topic :: View next topic  
Author Message
Equinoxe5
Smarty Rookie


Joined: 08 May 2008
Posts: 14

PostPosted: Sat Nov 06, 2010 3:18 pm    Post subject: [Résolu] Problème récupération variable d'une page à l'autre Reply with quote

Bonjour,
Je vais essayer d'être clair et précis mais ça va pas être facile.
J'ai récupéré une galerie de photos qui fonctionne avec Smarty et des jeux de templates.
Je l'ai integré sans souci à mon site sauf pour une chose.
Sur ce site, je peux choisir plusieurs couleurs dominantes en changeant de feuille de style.
Le nom de la feuille de style choisie (La couleur donc) est stockée dans un cookie.
La navigation sur le site se fait par un menu déroulant dont un lien "photos" qui correspond donc à ma galerie.
Voilà, le décor est planté, maintenant passons au problème
La galerie commence par une page index.php qui appelle une page InterPhoto.Functions.php ou sont regroupées toutes les fonctions.
Dans ce fichier, j'ai créé une fonction comme ceci:

Code:
function GetColorSite()
{
        if(!isset($_COOKIE['colorsite'])){
                return css_default;
        }else{
                return $_COOKIE['colorsite'];
        }
}


Je précise que le cookie est valide puisque tout le reste du site a la bonne couleur.
A la fin du fichier index.php j'ai mis ceci:
Code:
$colorsite=GetColorSite();
$smarty->assign('colorsite',$colorsite);


Au début de mon fichier index.tpl, j'ai ceci:
Code:
{include file="header.tpl" colorsite=$colorsite}


Maintenant, si j'appelle ma galerie par mon menu déroulant, donc par un lien classique externe à la galerie, ça fonctionne.
Mais si je l'appelle par ses propres boutons internes (le bouton HOME appelle la même page index.php de cette galerie), ça ne fonctionne plus.
ALors j'ai testé des tas de choses et j'ai trouvé ceci. Le bouton HOME de la galerie appelle ce lien:
Code:
<a href="{'index.php'|GetUrl}">{$lan_home}</a></li>

Si je le remplace par:
Code:
<a href="{'index.php'}">{$lan_home}</a></li>

ça fonctionne.
Tous les tests en long et en large que j'ai fait me prouvent bien que c'est la fonction GetUrl qui pose problème.
Souci, je ne sais pas comment repédier à ce souci.
Voici la fonction complète:
Code:
function GetUrl($PageName, $Key ='', $Value ='', $PageNum='', $Querystring='') {
   global $mainsettings;
       
   if ($PageName == './') $PageName = 'index.php';
   $sReturn = '';

   if ($mainsettings['siteRewrite']) {
      $PageName = substr($PageName, 0, -4)   .Iif($Value, '-'.$Value, '').'.html';

      if ($PageNum != '') {
         $sReturn = 'p='.$PageNum;
      }
   } else {
      $sReturn = ($Value != '' && $Value != '0' ? $Key.'='.$Value : '');
      if ($PageNum != '') {
         if ($sReturn != '') $sReturn .= '&';
         $sReturn .= 'p='.$PageNum;
      }
   }

   if ($Querystring != '' && substr($Querystring, 0, 1) != '#') {
      if ($sReturn != '') $sReturn .= '&';
      $sReturn .= $Querystring;
   }
       
   if ($sReturn != '') $sReturn = '?'.$sReturn;
   if ($Querystring != '' && substr($Querystring, 0, 1) == '#') $sReturn .= $Querystring;
   return BASEURL.$PageName.$sReturn;
}


Si quelqu'un pouvait me dire quoi rajouter / modifier ? et surtout pourquoi ça agit comme ça...
Merci d'avance et désolé si j'ai été long.


Last edited by Equinoxe5 on Mon Nov 15, 2010 1:05 pm; edited 1 time in total
Back to top
View user's profile Send private message
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Sat Nov 06, 2010 4:44 pm    Post subject: Reply with quote

Bonjour,

Pourrais tu me fournir quelques réponses et contenus de tes variables:

- Que contient ta constante BASEURL ?
- Que te génère ton lien {'index.php'|GetUrl} ?

Merci Smile
Back to top
View user's profile Send private message Send e-mail
Equinoxe5
Smarty Rookie


Joined: 08 May 2008
Posts: 14

PostPosted: Sat Nov 06, 2010 10:36 pm    Post subject: Reply with quote

Bonsoir,

Si je fais un echo de BASEURL, ça me donne
Code:
http://localhost/new_asmb/interphoto


Quant au lien, un echo de {'index.php'|GetUrl} donne
Code:
http://localhost/new_asmb/interphoto/index.php


Merci
Back to top
View user's profile Send private message
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Mon Nov 08, 2010 6:08 pm    Post subject: Reply with quote

Humm personnellement, je vois pas le problème ici. Tu pourrais faire un debug en smarty pour voir tes variables ?

Code:

{debug}


++
Back to top
View user's profile Send private message Send e-mail
Equinoxe5
Smarty Rookie


Joined: 08 May 2008
Posts: 14

PostPosted: Tue Nov 09, 2010 1:33 pm    Post subject: Reply with quote

Je ne suis pas très familier de {debug}.

Il y a des options ? parce que debug seul me liste bien mes variables oui mais à aucun moment je ne vois quand je perds la valeur de ma variable colorsite.
Y'a moyen de tracer ligne par ligne ?
Back to top
View user's profile Send private message
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Mon Nov 15, 2010 8:14 am    Post subject: Reply with quote

Je reviens sur ce problème :

Pour moi, j'ai pas l'impression que cela vient de tout ca traitement mais plutot de ton cookie.

As tu vérifier le path de ton cookie ?
Back to top
View user's profile Send private message Send e-mail
Equinoxe5
Smarty Rookie


Joined: 08 May 2008
Posts: 14

PostPosted: Mon Nov 15, 2010 9:36 am    Post subject: [Résolu] Reply with quote

Bonjour,

Tu as parfaitement raison, il s'agissait effectivement d'un problème de path dans le cookie.
Il m'a suffit de rajouter le "/" dans ma commande setcookie

Code:
setcookie("colorsite","$colorsite",time()+$expirecolor,"/");


Merci beaucoup pour votre aide à tous


Last edited by Equinoxe5 on Mon Nov 15, 2010 1:04 pm; edited 1 time in total
Back to top
View user's profile Send private message
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Mon Nov 15, 2010 11:58 am    Post subject: Reply with quote

Je m'en doutais, ca m'etais déjà arrivé mais comme tu avais dit plus haut :

Quote:

Je précise que le cookie est valide puisque tout le reste du site a la bonne couleur.


Je cherchais l'erreur autre part Smile

Tu pourrais mettre [résolu] dans ton titre ?

Merci et ++
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP