Editor: Rel. Pfad wird absolut, wenn in HTML gewechselt wird

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Editor: Rel. Pfad wird absolut, wenn in HTML gewechselt wird

Beitrag von HerrB » Mi 22. Okt 2003, 21:10

1. HTML-Editor aufrufen
2. Text eingeben, markieren
3. Internen Link einfügen
4. Testweise Link markieren und über Insert Link überprüfen (-> Pfad ist relativ: "front_content.php?...")
5. Von 'Design' auf 'HTML' wechseln (-> Pfad ist relativ: "front_content.php?...")
6. Von 'HTML' auf 'Design' umschalten
7. Entweder wieder auf 'HTML' wechseln oder über Insert Link Link überprüfen. Link ist nun absolut und falsch ("http://www.domain.de/contenido/includes/front_content.php?...")

Halte ich für schwerwiegend... :cry:

Gruß
HerrB

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Do 23. Okt 2003, 08:55

Hallo HerrB,

das sollte normalerweise durch ein on-the-fly-Replacement geschehen. Bekommst du JavaScript-Fehler?

Grüße,
Timo

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Okt 2003, 09:02

sehe ich mir an...

das on-the-fly replacement in javascript funktionierte auf der basis von
$cfgClient[$client]["path"]["htmlpath"]

das ist nun mit backend editing nicht mehr korrekt...
sämtliche änderungen für spaw die ich hier rein poste funktionieren dann nur mehr für version 4.4

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Do 23. Okt 2003, 09:07

Ja, aber $cfgClient und $client sind normalerweise im Backend verfügbar (ich hab ja extra gestern noch ziemlich lange daran rumgetestet, bis ich mir sicher war, daß es funktioniert).

Hast du ne Idee?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Okt 2003, 09:08

ja hab ich gib mir etwas zeit...

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Okt 2003, 09:18

erste änderung

contenido/external/wysiwyg/spaw/dialogs/insert_link.php

zeile:40 ersetzen durch

Code: Alles auswählen

        smyLink.Href = smyLink.Href.replace('<?php echo $cfgClient[$client]['path']['htmlpath'];?>', '')
        smyLink.Href = smyLink.Href.replace('<?php echo $cfg['path']['contenido_fullhtml'].$cfg['path']['includes'];?>', '')
damit funktioniert dort mal das on-the-fly replace (links werden dann wieder korrekt zugeordnet...

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Okt 2003, 09:48

timo ich brauch was...

und zwar wo ersetzt contenido die absoluten links (gibts so ne funktion ?)
meine funktion würde nur funktionieren(mit einer kleinen modifikation) wenn man in die html ansicht wechselt. in die design ansicht retour werden die links und bilder immer falsch gesetzt.

auf gut deutsch wenn der quelltext in die db geschrieben wird müssten alle
$cfg['path']['contenido_fullhtml'].$cfg['path']['includes'] innerhalb des gesendeten texts durch '' ersetzt werden.

dann sind zwar innerhalb der db die links relativ nur eine bearbeitung bzw anzeige der bilder ist dann nicht mehr innerhalb von spaw möglich...

schlecht... das is für die umsetzung ein ziemlich massives problem...
für ne bearbeitung in spaw müssten alle links wieder durch absolute ersetzt werden (welche korrekt auf den client zeigen)

beim wechsel in die HTML ansicht müssten dieses wieder entfernt werden
und beim wechsel in die DESIGN ansicht wieder ergänzt.

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Do 23. Okt 2003, 10:00

emergence hat geschrieben: und zwar wo ersetzt contenido die absoluten links (gibts so ne funktion ?)
Zum einen wird, sobald der Content gespeichert wird, alles absolute (sprich: alles das, was unter Contenido ist), mit relativem ersetzt. Die Funktion conSaveContentEntry in der functions.con.php macht das.
meine funktion würde nur funktionieren(mit einer kleinen modifikation) wenn man in die html ansicht wechselt. in die design ansicht retour werden die links und bilder immer falsch gesetzt.
Ich dachte eigentlich, ich hätte das abgefangen...wichtig ist, daß das IE DHTML-Element immer mit absoluten Pfaden arbeiten kann. d.h. der Pfad sollte erst beim speichern wieder relativ gemacht werden.

Damit das alles gut funktioniert, muß einerseits ja beim Laden des Editors alles relative mit absolutem ersetzt werden (macht der WYSIWYG ja wunderbar falsch, da er ab 4.4 im Backend aufgerufen wird, und dann hat man z.b. contenido/includes/upload/blabla.gif). Deshalb wird eine Sekunde nach dem Laden des Editors das On-The-Fly-Replacement gemacht (Zeile 263 in der Datei spaw_control_class.php). Beim einfügen von Bildern sollte ja dann der volle Frontendpfad verfügbar sein, der beim abspeichern wieder weggekickt wird.
schlecht... das is für die umsetzung ein ziemlich massives problem...
für ne bearbeitung in spaw müssten alle links wieder durch absolute ersetzt werden (welche korrekt auf den client zeigen)

beim wechsel in die HTML ansicht müssten dieses wieder entfernt werden
und beim wechsel in die DESIGN ansicht wieder ergänzt.
Sollte eigentlich ja alles funktionieren, oder hab ich was übersehen? :)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Okt 2003, 10:16

2 dinge müssen gemacht werden.

1. beim wechsel in die html ansicht muss bevor der text angezeigt wird
alle absoluten durch relative links ersetzt werden.
d.h $cfgClient[$client]["path"]["htmlpath"] durch ''
die ersetzung von
$cfg['path']['contenido_fullhtml'].$cfg['path']['includes'] durch '' wäre hier nicht notwendig.

2. sobald man wieder auf design tab klickt müssen alle relativen links wieder durch absolute ersetzt werden sprich $cfgClient[$client]["path"]["htmlpath"] muss wieder ergänzt werden... und dann darf der code erst an innerhtml übergeben werden.

dann müsste eigentlich alles funktionieren oder ?

auf der selben basis funktioniert an sich ja die ersetzung beim einfügen des contents wenn spaw sich öffnet... wenn man diese ersetzung auf absolute links zuerst macht, wäre keine zeitverzögerung von einer sekunde notwendig. das ganze müsste sich eigentlich ganz elegant via javascript php lösen lassen...

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Do 23. Okt 2003, 10:27

Ja, das Problem ist aber, daß es schwierig ist, relative Links rauszubekommen. Der "Faulheit" halber, da das IE DHTML-Dingens das ja sowieso automatisch macht, wird einfach nach dem Ersetzen nochmal "richtig" ersetzt.

Was ich aber noch nicht verstehe: Wenn man vom WYSI in den HTML-Mode springt, warum müssen dann dort die relativen drin stehen? Des Komforts wegen?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Okt 2003, 10:52

timo hat geschrieben:Ja, das Problem ist aber, daß es schwierig ist, relative Links rauszubekommen. Der "Faulheit" halber, da das IE DHTML-Dingens das ja sowieso automatisch macht, wird einfach nach dem Ersetzen nochmal "richtig" ersetzt.
und genau das selbe machen wir auch wenn wir auf design klicken ! damit müssten wir eigentlich den gewünschten effekt erzielen.
timo hat geschrieben: Was ich aber noch nicht verstehe: Wenn man vom WYSI in den HTML-Mode springt, warum müssen dann dort die relativen drin stehen? Des Komforts wegen?
so blöd wie es klingt ja,
das ist einer der hauptgründe warum gerne htmledit verwendet wird.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 23. Okt 2003, 11:22

Traumhaft, dieser Fleiss! Danke euch beiden.
Was ich aber noch nicht verstehe: Wenn man vom WYSI in den HTML-Mode springt, warum müssen dann dort die relativen drin stehen? Des Komforts wegen?
Aus meiner Sicht müssten in der HTML-Ansicht nicht zwangsläufig die relativen Pfade erscheinen (auch wenn es praktischer, weil kürzer, ist). Aber in der DB sollte immer der relative Pfad gespeichert werden.

Aber so habe ich euch ja auch verstanden... :wink:

Gruß
HerrB

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Do 23. Okt 2003, 11:47

Jetzt hab ich aber ein kleines Verständnisproblem :)

Bei uns hat das ersetzen immer traumhaft funktioniert (bis auf die Tatsache, daß man im HTML-Mode absolute Pfade sieht). emergence, wie war's bei dir? Ging da alles?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Okt 2003, 12:14

bis auf die absoluten links ging fast alles...
insert_link -> funktionierte die zuweisung nicht mehr.

das einzige was ich jetzt mache beim wechsel in den html mode alle absoluten zu entfernen,
und beim design mode
den text normal einfügen lassen und anschließend mit replace wieder zu korrigieren.

es ist an sich nur jeweils eine zeile einzufügen...
das witzige daran mir ist innerhalb des javascript files die php variable
$cfgClient[$client]['path']['htmlpath']; abhanden gekommen... ähm tja...

für die funktion SPAW_design_tab_click
unterhalb von

Code: Alles auswählen

    this[editor+'_rEdit'].document.body.innerHTML = iText;
hätte ich sonst nur diese zeile eingefügt...

Code: Alles auswählen

    this[editor+'_rEdit'].document.body.innerHTML.replace(/<?php echo str_replace('/', '\\/',$cfg['path']['contenido_fullhtml'].$cfg['path']['includes']); ?> /g,'<?php echo $cfgClient[$client]['path']['htmlpath']; ?>');
bei SPAW_html_tab_click
wäre eigentlich auch nur unterhalb von

Code: Alles auswählen

	iHTML = this[editor+'_rEdit'].document.body.innerHTML;
folgendes zu ergänzen.

Code: Alles auswählen

	iHTML.replace(/<?php echo str_replace('/', '\\/',$cfgClient[$client]['path']['htmlpath']); ?> /g,'');
einzusetzen.

damit hätte ich eigentlich alles was gewünscht wäre... relative links innerhalb der html ansicht und innerhalb der design ansicht die absoluten.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Okt 2003, 12:40

noch was

Spaw Error Report

Error in file: http://localhost/contenido/includes/inc ... 9c8&lang=1
Line number: 228
Message: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.

ähm ich tippe mal drauf, dass da client nicht mitübergeben wurde...

Gesperrt