Seite 1 von 1

Bug in der aktuellen CVS: Anker wird nicht interpretiert

Verfasst: Do 7. Apr 2005, 19:18
von JSommer
Servus zusammen,
da hab ich doch glatt nen Bug gefunden:

Ich baue mir in das Layout einen Anker namens "top" ganz oben hin bevor die Tabellen etc beginnen. Ganz unten baue ich mir einen static link auf "#top" damit wenn man bei einer langen Seite schön runtergescrollt ist, man mit einem Klick wieder oben ist, also bei "top" - das ging in der 4.4er Version auch tadellos aber in der 4.5er - aktuelle CVS interpretiert er mir den Link href="#top" so, dass wenn man klickt man auf die Startseite also die home-Site vom CMS kommt ... seltsam, was? Hat jemand ne Idee?

--update--
habe gerade gesehen, dass er dann im cms folgenden link interpretiert "http://blabla.de/cms/#top" - das findet er nicht, und geht daher in die home/startseite ...

Verfasst: Do 7. Apr 2005, 22:36
von emergence
ähm wo hast du das eingebaut direkt im layout und modul ?
oder im spaw ?

Verfasst: Fr 8. Apr 2005, 00:32
von timo
ja, das ist vollkommen richtig - in der 4.5er-Serie wurde ein base href eingebaut. Damit der Link richtig funkioniert, mußt du diese Anker mit dem vollen URL-Pfad definieren - am besten erledigt man das über ein Modul.

Verfasst: Fr 8. Apr 2005, 17:08
von JSommer
hm... versteh ich vom prinzip schon, aber am code scheiterts....

Verfasst: Do 21. Apr 2005, 17:15
von uups
Wie würde ein solches Modul aussehen? (PHP müsste man beherrschen... :oops: )

Uups...

Verfasst: Fr 22. Apr 2005, 10:41
von JSommer
ich weiß es auch nicht, könnte hier mal bitte jemand gucken, der was von der materie versteht? :-)

Verfasst: Mi 27. Apr 2005, 14:51
von JSommer
noch keiner eine idee? :?:

Verfasst: Mi 27. Apr 2005, 15:40
von emergence
ähm hab mir das jetzt mal angesehen...

ganz klar ist es mir nicht, warum jetzt dieser tag in der front_content.php ergänzt wurde...

Code: Alles auswählen

$code = str_ireplace_once("<head>", "<head>\n".'<base href="'.$cfgClient[$client]["path"]["htmlpath"].'">', $code);
@JSommer
du könntest diese zeile einfach aus der front_content.php entfernen, und schauen was passiert...

Verfasst: Mi 27. Apr 2005, 16:38
von timo
das ganze hat folgenden Hintergrund:

- in der 4.4er-Serie wurde die front_content direkt aus dem entsprechenden konfigurierten Verzeichnis geladen. Da das jedoch erhebliche Probleme mit dem IE gab, weil die Sicherheitseinstellungen es nicht erlaubten, von der front_content.php aus das Contenido-Backend anzusteuern, wenn Front- und Backend auf verschiedenen Domains lagen, haben wir das geändert.

- In der 4.5.x-Serie sowie CVS_HEAD wird das Frontend nun aus external/backendedit aufgerufen. Hierfür ist das base href zwingend notwendig. Außerdem ist das base href für sämtliche Mod-Rewrite-Anpassungen erforderlich.

Um einen Anker anzuspringen, muß die aktuelle Seite bekannt sein. Beispiel:

Code: Alles auswählen

<a href="<?php echo $cfgClient[$client]["path"]["htmlpath"]; ?>/front_content.php?idcat=<?php echo $idcat; ?>#ankername">link zu dem entsprechenden anker</a>
Das könnte man natürlich auch umschreiben, damit jeweils die Request-URL verwendet wird.