Und ich dachte wir wären alleine mit diesem Problem. (haben es aber mittlerweile in den Griff bekommen)
hardcodete Links sind nicht so toll. Lieber die im Shop eingebauten Funktionen benutzen. Z.B: die oxVIewConfig hat ja paar Funktionen, die z.B. die Shop-BaseURL liefern oder je nach Modus http:// oder https://.
(Sourcecode Docu: http://docu.oxid-esales.com/CE/sourcecodedocumentation/ einfach auf 4.5.2. klicken und oxViewConfig eingeben)
es sieht so aus:
force_sid wird dann (im Idealfall, wenn alles richtig funktioniert) an die Links angehängt, wenn ein Wechsel vom HTTPS ins HTTP Modus erfolgt, also aus dem Bestellprozess / Seiten mit Formularen auf z.B: eine CMS Seite (die ja nicht verschlüsselt werden muss).
die Session ID braucht man eben um den Warenkorb nicht zu verlieren.
Da ihr ja auf 4.5.2 aktualisiert habt, nehme ich an, dass es keine Probleme mit dem Miniwarenkorb gibt. (Rauswurf aus der Session wenn man nach dem 2. Bestellschritt auf eines der Produkte im Miniwarenkorb klickt)
Die Links auf CMS Seiten haben wir alle so eingebunden:
[{oxifcontent ident="XXX" object="oContent"}]
<a href="[{if $oViewConf->isSsl() }][{ $oCont->getLink()|replace:"http://":"https://"}][{else}][{ $oCont->getLink()}][{/if}]">[{ $oContent->oxcontents__oxcontent->value }]</a>
[{/oxifcontent}]
$oViewConf->isSsl() sagt true wenn https aktiv ist, dann wird mit Hilfe des Smarty Modifikators http durch https ersetzt.
Da wird zwar die force_cid angehängt, es hat aber keine Auswirkung.
Hardgecodete (interne) Links
http[b][{if $oViewConf->isSsl() }]s[{/if}][/b]://www.mein-shop.de/seite-x-y.html
ist eigentlich selbsterklärend
Oder wenn man einfach irgendwo die force_sid anhängen möchte:
[{ if $oViewConf->isSsl() }][{assign var="ssl" value=$_product->getSession() }]?force_sid=[{ $ssl->getId()}]&[{/if}]
Hier dürfen allerdings keine anderen URL Parameter vorhanden sein, sonst müsste man “?” durch eine “&” ersetzen oder es über Smarty lösen.
Wenn du LightBox bzw ColorBox benutzt, dann könntest du folgenden Code für deine js Datei gebrauchen:
var autoSslUrl = ("https:" == document.location.protocol) ? "https://www.mein-shop.de/" : "http://www.mein-shop.de/";
$("a[href='#xxx']").colorbox({width: "600px",height: "70%", iframe:true, href: autoSslUrl+"/cms-seite/"});
Sonst sind unsere Anpassungen auf bestimmte Anwendungsfälle gebunden und auch auf der PHP Ebene gewesen.
Grüße