Développer avec RBS Change : [Résolu] Récupérer l'Url courante d'une page

  • 75504.1

    08/03/2013 11:42


    mamous
    Rang : Expert
    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
  • 75504.2 en réponse à 75504.1 écrit par mamous

    08/03/2013 15:29


    mamous
    Rang : Expert
    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
  • 75504.3

    08/03/2013 16:46


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    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).
  • 75504.4 en réponse à 75504.3 écrit par Gaël Port

    08/03/2013 17:01


    mamous
    Rang : Expert
    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
  • 75504.5 en réponse à 75504.4 écrit par mamous

    08/03/2013 17:34


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    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 ==).
  • 75504.6 en réponse à 75504.5 écrit par Gaël Port

    11/03/2013 09:37


    mamous
    Rang : Expert
    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
  • 75504.7 en réponse à 75504.6 écrit par mamous

    11/03/2013 09:39


    mamous
    Rang : Expert
    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.
 
1471 membres
Aucun membre connecté