Jo, also wie das gelöst wird, ist eigentlich egal, Variable, Konstante ...
Es braucht ganz einfach ein festes Verzeichnis, von dem aus man zuverlässig referenzieren kann, und zwar vorwärts (ohne ../). Sinnvollerweise sollte das das Installationsverzeichnis sein (CMSimpleRoot). Ursprünglich war das ja wohl mal
$sn, bevor die Mehrsprachigkeit eingeführt wurde. Mit der Einführung der sekundären Sprachen taugt
$sn dazu nicht mehr.
mvwd wrote:Trotzdem gehören solche defines in den core, also cms.php. vielleicht irgendwann mal!?
Da hast Du recht, aber solange die Plugins auch unter CMSimple 3.2 funktionieren sollen, geht das halt nicht. Da aber meta_tags und page_params sowieso den neuen PL brauchen, ist der PL schon die richtige Stelle.
Ich habe mal einfach eine Variable
$CMSimpleRoot ausprobiert:
Code: Select all
$CMSimpleRoot = str_replace('/'.$sl.'/', "/", $sn);
einfach in die index.php des PL eingefügt.
Das scheint auch zu funktionieren:
http://www.cmsimple-xh.de/xhtest/, die Variablen werden über dem Content angezeigt. Einfach die verschiedenen Sprachen anklicken und
$sn und
$CMSimpleRoot beobachten.
Nach meiner Meinung entsteht hier auch eine "absolute Referenzierung", weil aus dem Domain-Root heraus referenziert wird (/ ...). Trotzdem muss niemand in der config herumschreiben bei einem Umzug. Von der Variablen
$CMSimpleRoot aus kann man dann sicher referenzieren, auch aus einer sekundären Sprache heraus.