Développer avec RBS Change : [Résolu] Récupérer l'Url courante d'une page
-
08/03/2013 11:42
Bonjour,
Je suis entrain d'effectuer un test sur l'url courante (avec les paramètres) d'une page particulière, je veux comparer cette url là par une url que je l'ai eu en utilisant un item/getUrl dans un menu contextuelle.
J'ai réussi à le faire en php dans la classe service équivalente au block désiré comme dans le code ci dessous :$currenturldoc = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $request->setAttribute('currenturldoc' , $currenturldoc);
Et après en affichant cette variable au niveau du block j'ai remarqué que les caractères spéciaux tels que [ ne sont pas converti comme dans le cas du retour de la méthode getUrl ( %5D%5B pour dire [ ).
Du coup j'ai pas pu effectuer un tal:condition sur cette variable là vu que c'est vrai que les deux variables me retourne l'url mais le résultat de la condition reste toujours invalide.
J'ai voulu posé la question est ce que je peux récupérer l'Url courante en entier et comme c'est fait dans le retour de la méthode getUrl, sachant que j'ai tenter d'utiliser les fonctions de change pour récupérer l'Url, j'ai réussi juste à avoir la première partie c'est à dire celle du site et non pas les paramètres.
Voici le code que j'ai écrit:$query = website_WebsiteService::getInstance()->createQuery(); $website = $query->findUnique(); $currenturldoc = $website->getUrl(); $request->setAttribute('currenturldoc' , $currenturldoc);
Cordialement.
Développeur & Intégrateur Web
RBS Change
V 3.5.2
Ecommerce Core -
Re-bonjour,
J'ai réussi à avoir la même mise en forme que l'Url retournée par le getUrl mais le problème maintenant c'est que le<strong tal:condition="currenturldoc==item/getUrl">${item/getLabel}</strong>
a l'aire de ne pas fonctionner malgré que j'ai même essayer d'afficher les url contenu dans currenturl et item/getUrl et il y en a deux Url qui correspondent bien!!
J’attends vos réponses et merci bien.
Cordialement
Développeur & Intégrateur Web
RBS Change
V 3.5.2
Ecommerce Core -
08/03/2013 16:46
Bonjour,
Pour faire des opérations logiques (notamment un test d'égalité) dans un tal:condition, il faut passer par le mot-clé php: (cf la doc de PHPTAL pour plus d'informations). -
Bonjour,
J'ai déjà essayer de faire la condition avec un tal:condition="php: currenturldoc == item/getUrl" mais en vain.
Pouvez vous me détailler un peu votre réponse déjà dans le lien que vous m'avez envoyer j'ai pas trouvé un exemple de la condition que je veux faire.
Cordialement
Développeur & Intégrateur Web
RBS Change
V 3.5.2
Ecommerce Core -
Ah oui, mon lien pointait un peu trop bas en fait : deux paragraphes plus haut, ils disent qu'il faut passer par les version en lettres des opérateurs (en l’occurrence EQ plutôt que ==).
-
Bonjour,
Le problème provenait de la condition dans le tal:condition en utilisant le php: on devrait remplacer le item/getUrl par item.getUrl() et du coup la condition finale et qui a fonctionné en fin est la suivante:<strong tal:condition="php: currenturldoc==item.getUrl()">${item/getLabel}</strong>
Cordialement.
Développeur & Intégrateur Web
RBS Change
V 3.5.2
Ecommerce Core -
De plus j'ai découvert une autre méthode plus sophistiqué pour avoir l'url courante de la page en utilisant le framework de change et que j'ai découvert en fouillant un peu dans l'api.
$currenturldoc = LinkHelper::getCurrentUrlComplete();
Merci et bonne journée.
Cordialement
Développeur & Intégrateur Web
RBS Change
V 3.5.2
Ecommerce Core
Merci de prendre connaissance et de respecter les règles des forums.