<base> tag in front_content.php zwingend notwendig?

Gesperrt
knb
Beiträge: 224
Registriert: Fr 9. Sep 2005, 14:03
Wohnort: Potsdam
Kontaktdaten:

<base> tag in front_content.php zwingend notwendig?

Beitrag von knb »

Hallo Forum
Hat hier schon mal einer gefragt oder gesagt ob der <base> HTML Tag in

front_content.php Zeile 747 zwingend notwendig ist?

Code: Alles auswählen

		$baseCode = '<base href="'.$cfgClient[$client]["path"]["htmlpath"].'">';
	$code = str_ireplace_once("<head>", "<head>\n".$baseCode, $code);
Es stehen da leider keine Kommentarzeilen im Code, obwohl sie hier hilfreich wären.

Oder kann man die $code= Zeile oben einfach auskommentieren?
Kann ich mir zwar nicht vorstellen, aber wer weiss...


Ich frage dies weil ihc heute realisiert habe dass man wegen dieses Tags keine "relativen Anker" mit tinymce konstruieren kann. Was kein Fehler des Editors ist.

Es ist klar dass Contenido den <BASE> Html Tag bei jedem seitenaufruf verwendet. Deshalb können "relative anker" (weiss nicht ob es wirklich so heisst) nicht mehr funktionieren :

Code: Alles auswählen

<a href="#bottom">[Bottom of page]</a><p>
...blablabla ....
<a name="bottom">Last modified....</a>
Es wird stets http:/ .... contenidohtmlpath/mandantenname *hinzugefügt*

1. contenido fügt den base tag ein und
2. der browser interpoliert den inhalt von <base> in den String rein

Sehe ich das richtig?


tinymce müsste idealerweise noch eine Warnung in URL-Editierfenster anzeigen wenn der BASE tag verwendet wird. Vielleicht werde ich das mal im tinymce Forum posten.
Gruss,
Knut
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ja, da dieser Tag für das Backend-Editieren benötigt wird.

Übrigens wird da vom Browser nichts "interpoliert", sondern "interpretiert" ;)
knb
Beiträge: 224
Registriert: Fr 9. Sep 2005, 14:03
Wohnort: Potsdam
Kontaktdaten:

Beitrag von knb »

ja ja, "interpretiert" kann man auch sagen ...

aber
in perl spricht man von String-Interpolation, ich dachte unter php gäbe es den Begriff auch ...
für sowas:

Code: Alles auswählen

$name = "Fred";

print "$name Feuerstein";

Und hier analog so ungefähr

Code: Alles auswählen

pseudocode - 

if (href in <a> tag is relative) then

href = "$base/href" ;
Gruss,
Knut
trixta
Beiträge: 165
Registriert: Di 26. Apr 2005, 12:53
Kontaktdaten:

Beitrag von trixta »

hallo,

aus dem grund habe ich sie auch rausgenommen. ich weiss nicht mehr ob es danach probleme gab. rein theoretisch müsste das so sein, da die seiten nicht mehr vom frontend ordner, sondern vom backend ordner aufgerufen werden. du kannst das aber dennoch entfernen. damit contenido die richtigen pfade findet kannst du wie folgt vorgehen: entweder

musst du dann darauf achten, dass alle links zu bildern, css und js dateien absolut gesetzt sind, sonst werden sie nicht gefunden.

oder

du erstellst ein modul und platzierst es im head bereich (code: if($edit) echo '<base...>';) / statt einem modul kannst du auch direkt bei contenido die stelle suchen wo er das javascript für das backend hineininterpoliert :-) und dort die zeile hinzufügen, dann brauchst nicht immer ein modul zu schreiben/einzufügen (function getCellClass(element) {) dann können die anker im backend gesetzt werden, funktionieren aber nicht richtig, aber im frontend funzen sie.

btw. ich habe das base auskommentiert und keine der oben genannten "workarounds" benutzt funktioniert trotzdem, ob mir zur lösung des problems irgendetwas drittes eingefallen ist, weiss ich nich mehr.

das ist kein tiny problem und kann auch nicht mit tiny gelöst werden (zumindest im zusammenhang mit contenido), da der tiny bei contenido ja nur für bestimmte bereiche und nicht für das gesamte dokument benutzt wird. tiny weiss also gar nicht, dass ein base gesetzt wurde.
Gesperrt