Backslash-Problem

Dieses Forum enthält Diskussionen zu Bugs in ConPresso 4 und deren Lösungen.
Antworten
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Backslash-Problem

Beitrag von MarkusR »

Folgendes Szenario:

Ich habe ich einem Artikel folgendes stehen
\SERVER\Bilder\ps\DSC_0005.jpg
\\SERVER\Bilder\ps\DSC_0005.jpg
\\\\SERVER\Bilder\ps\DSC_0005.jpg
\\\\\\SERVER\Bilder\ps\DSC_0005.jpg
Bei Benutzung von Header- und Footer wird daraus
\SERVER\Bilder\ps\DSC_0005.jpg
\SERVER\Bilder\ps\DSC_0005.jpg
\\SERVER\Bilder\ps\DSC_0005.jpg
\\\SERVER\Bilder\ps\DSC_0005.jpg
Bei Nutzung von Seitentemplates wird daraus
\SERVER\Bilder\ps\DSC_0005.jpg
\SERVER\Bilder\ps\DSC_0005.jpg
\SERVER\Bilder\ps\DSC_0005.jpg
\\SERVER\Bilder\ps\DSC_0005.jpg
Es fehlen also zunehmend mehr Backslashes.

Ich kriege zumindest einen Gleichstand, wenn ich in buildpage,inc.php am Ende der foreach-Schleife die Zeile

Code: Alles auswählen

$pagereplacer['/'.preg_quote($page_fullmatch, '/').'/'] = $pagereplacement;
ändere zu

Code: Alles auswählen

$pagereplacer['/'.preg_quote($page_fullmatch, '/').'/'] = str_replace('\\','\\\\',$pagereplacement);
aber auch dann fehlen immer noch Backslashes...
die werden vermutlich beim Parsen gefressen.

Daher habe ich in parser.php die Zeile

Code: Alles auswählen

$replacer['/'.preg_quote($_fullmatch, '/').'/'] = $replacement;
geändert zu

Code: Alles auswählen

$replacer['/'.preg_quote($_fullmatch, '/').'/'] = str_replace('\\','\\\\',$replacement);
somit werden auch alle Backslashes ausgegeben.

Das bitte ich zu prüfen und ggf. diese oder eine bessere Lösung in eine der kommenden Versionen einzubauen. Bitte mit Ankündigung, weil ich dann die Workarounds aus den Modulen wieder ausbauen muß.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten