CarlaL Posted March 7, 2015 Share Posted March 7, 2015 Hallo, ich habe PS 1.6.013 mit dem neuesten EU-Legal-Modul lokal installiert. Laut WC3 habe ich nun aber jede Menge invalide Links, weil das Modul im Versandkosten-Link die Parameter nicht maskiert. index.php?id_cms=1&controller=cms&id_lang=1&content_only=1" class="iframeEULegal" >zzgl. Versandkosten</a> </span> Hier müsste also & mit & maskiert werden. Weiß jemand wo das gemacht werden muss? Oder erübrigt sich das, wenn ich im Live-Shop dann die URLs umschreiben lasse (ich glaube eher nicht, dass diese Links standardmäßig umgeschrieben werden, oder?). Gruß, Carla Link to comment Share on other sites More sharing options...
CarlaL Posted March 8, 2015 Author Share Posted March 8, 2015 So die entsprechende Stelle(n) habe ich jetzt gefunden: modules/eu_legal/views/templates/hook/displayProductPriceBlock.tpl (kommt zweimal vor) {if $cms_id_shipping}<a href="{$link->getCMSLink($cms_id_shipping)}{if $seo_active && $show_fancy }?content_only=1{else if !$seo_active && $show_fancy}&content_only=1{/if}" {if $show_fancy} class="iframeEULegal" {/if} >{l s='excl. shipping' mod='eu_legal'}</a>{else}{l s='excl. shipping' mod='eu_legal'}{/if} Nur kenne ich mich mit den PS-spezifischen Klassen und Funktionen (noch) nicht aus. Weiß jemand, wo man ansetzen muss um das Parameter-& zu maskieren? Gruß, Carla Link to comment Share on other sites More sharing options...
Wuschel Posted March 12, 2015 Share Posted March 12, 2015 Ich vermute mal, das ist ein B... pardon: Tippfehler, und das Ampersand gehört in beiden Fällen da nicht hin, sondern ein Fragezeichen: index.php?id_cms=1&controller=cms&id_lang=1?content_only=1" class="iframeEULegal" >zzgl. Versandkosten</a> </span> {if $cms_id_shipping}<a href="{$link->getCMSLink($cms_id_shipping)}{if $seo_active && $show_fancy }?content_only=1{else if !$seo_active && $show_fancy}?content_only=1{/if}" {if $show_fancy} class="iframeEULegal" {/if} >{l s='excl. shipping' mod='eu_legal'}</a>{else}{l s='excl. shipping' mod='eu_legal'}{/if} Link to comment Share on other sites More sharing options...
CarlaL Posted March 13, 2015 Author Share Posted March 13, 2015 Hallo Wuschel, glaube ich eher nicht. Die Unterscheidung erfolgt ja über die Abfrage seo-friendly ja/nein. Da scheint mir die Unterscheidung in &/? durchaus Sinn zu machen, zumal das ja der einzige Unterschied im Code ist ... und warum sollte man dann überhaupt eine if/else Abfrage machen? Aber danke für den Hinweis, hier kann man zumindest schon mal &content_only in &content_only ändern Dann gibt es aber noch die anderen &, also &controller / &id_lang. Die werden mit der Funktion getCMSLink($cms_id_shipping) generiert. Und da müsste man ansetzen ... nur wo finde ich die? Ich habe jetzt schon im kompletten Modul nach getCMSLink gesucht, aber nichts gefunden. Any idea? Gruß, Carla Link to comment Share on other sites More sharing options...
Wuschel Posted March 13, 2015 Share Posted March 13, 2015 (edited) Hallo Carla, das hat nur bedingt etwas mit der If-Abfrage zu tun. Trotzdem war meine Vermutung falsch, denn das "&" sollte immer ein "?" ersetzen, wenn sich bereits ein weiteres Fragezeichen in der URL befindet (was allerdings zumindest im Firefox unter Windows kein Problem darstellt). Es geht ja hier um eine zur Laufzeit generierte URL - die erste bei aktivierten Benutzerfreundlichen URLs wird wie folgt aufgelöst: <URL-MeinShop>/content/1-Lieferung?content_only=1 Das funktioniert also. Hat man die Benutzerfreundlichen URLs nicht aktiviert, dann wird der else-Zweig fällig, und da liegt der Hase im Pfeffer! Denn mit einem & als Ersatz ist es nicht getan. Korrekt müsste die URL jetzt durch Escape-Sequenzen maskiert folgendermaßen aussehen: <URL-MeinShop>/index.php?id_cms=1%26controller=cms%26id_lang=1%26content_only=1 Tut sie aber nicht! Sie sieht nämlich so aus: <URL-MeinShop>/index.php?id_cms=1&controller=cms&id_lang=1&content_only=1 Da aber die Generierung der URL über Variablen verläuft, die zur Laufzeit erst aufgelöst werden, hast du keine direkte Änderungsmöglichkeit, wenn du nicht auf die Fancybox verzichten willst. Da ist also Nacharbeit der Entwickler von EU legal, wahrscheinlich aber von Prestashop selbst, angesagt. Gruß Wuschel P.S. Zum Thema getCMSLink s. meinen Beitrag hier: https://www.prestashop.com/forums/topic/428366-link-zur-versandkostentabelle-f%C3%A4llt-aus-bei-eingeschalteter-ssl-verschl%C3%BCsselung/?do=findComment&comment=2002007 Edited March 13, 2015 by Wuschel (see edit history) Link to comment Share on other sites More sharing options...
CarlaL Posted March 13, 2015 Author Share Posted March 13, 2015 (edited) Hallo Wuschel, vielen Dank für die ausführliche, professionelle Erklärung. Dann lag - bei mir - das Hauptproblem darin, dass ich hier in meiner lokalen Installation das mod_rewrite einfach nicht richtig zu Laufen bekomme und deshalb seo-friendly z.Zt. ausgeschaltet lasse. Das vergess' ich immer Bleibt aber trotzdem ein Bug – und dein Hinweis auf den anderen Beitrag stimmt mich auch nicht optimistischer ... Gruß, Carla Edited March 13, 2015 by CarlaL (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now