Seite 2 von 3
Re: [3.3] Typographische Anführungszeichen
Verfasst: 29.08.2022 14:01
von liesenfeld
Nee, das klappt nicht, weil es auch im reinen Datenbanktext schon HTML-Code gibt. Damn, das kann nicht umgangen werden...
Re: [3.3] Typographische Anführungszeichen
Verfasst: 29.08.2022 14:13
von BNa
Doch, das geht:
BNa hat geschrieben: 29.08.2022 13:32
Achja, Du musst in der
regex
noch jegliches Zeichen
direkt vor dem einleitenden
" und nach dem ausleitenden
" ausschließen.
Also außer Leerzeichen davor/danach sollte die regex das ausschließen.
Das hier mal als Inspiration anschauen (hierbei ist
preg_match()
evtl. Dein Freund):
Leerzeichen zulassen
Das Hinzufügen beliebiger Zeichen zu unserem regulären Ausdruck gilt sogar für Leerzeichen. In diesem Beispiel haben wir noch ein Leerzeichen in die Zeichenklasse aufgenommen:
Code: Alles auswählen
if (!preg_match("#^[a-zA-Z0-9äöüÄÖÜ ]+$#", $text)) {
echo 'String enthält auch andere Zeichen.';
} else {
echo 'String enthält nur Buchstaben, Zahlen und Leerzeichen.';
}
Und das "negativ" umsetzen, (ähnlich wie im Beispiel)
if (!preg_match(blabla
:
https://www.askingbox.de/tipp/php-nur-b ... g-zulassen
Also nur, wenn ein Leerzeichen davor und danach von
" ist, wandle um, ansonsten mache nichts.
Quasie anders rum denken, regex für Leerzeichen (davor und danach von
") setzen (also via
preg_match()
)
und Umwandlung via
preg_replace()
ausschließen, wenn Leerzeichen davor und danach von
" nicht vorhanden...
Weiteres Futter:
https://forum.planet3dnow.de/index.php? ... en.291646/
https://www.php.net/manual/de/function.preg-match.php
Re: [3.3] Typographische Anführungszeichen
Verfasst: 29.08.2022 16:36
von IMC
Wenn man sich es sehr leicht machen möchte bindet man dieses Skript in der
overall_footer.html
hinter der Zeile
{$SCRIPTS}
ein.
https://smartquotes.js.org/
Unterliegt der MIT-Lizenz.
Im Skript müssen für deine gewünschte Funktion nur 4 Stellen geändert werden.
Finde
\u201C
und ersetze diese durch
\u201E
(Unicode-Zeichen).
Edit: Es gibt einen Fork der die Deutschen Besonderheiten berücksichtigt.
https://github.com/k-nut/smartquotesjs
[3.3] Typographische Anführungszeichen
Verfasst: 29.08.2022 16:51
von Kirk
@liesenfeld
Solange der letzte Beitrag in einem Thema von dir stammt und noch kein anderer Benutzer geantwortet hat, darfst du erst nach einer Wartezeit erneut antworten.
Siehe dazu
Knowledge Base - Der kleine phpBB.de-Knigge - unsere Hausordnung Bereich Topic-Bumping / Mehrfachantworten
Mit freundlichen Grüßen,
dein phpBB.de-Team
Re: [3.3] Typographische Anführungszeichen
Verfasst: 30.08.2022 08:06
von liesenfeld
Danke für die viele Hilfe. Ich bin jetzt so folgendem Ergebnis gekommen (falls jemand anderes auch das gleiche Problem haben sollte):
1) Ersetzung der Zollzeichen durch typographische Anführungszeichen gehen nur bedingt. Das vordere kann man aus dem Datenbanktext bedenkenlos ersetzen, das hintere nicht. Denn es gibt zu viele HTML-Anweisungen, die schon im Feld phpbb_posts stehen, die dadurch korrumpiert werden. Daher habe ich es jetzt so gemacht:
Code: Alles auswählen
//In viewtopic.php in Zeile 1764 einfach folgendes eingefügt:
//(Suchen nach: $message = generate_text_for_display($row)
$rohtext = $row['post_text'];
$rohtext = str_replace(" \"", ' „', $rohtext);
//$message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);
$message = generate_text_for_display($rohtext, $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);
Das sieht dann so aus: lass es dir „munden"
und damit bin ich zufrieden
2) Ich habe noch an der zweiten Stelle, wo also das $message schon quasi ausgabefertig ist eine zweite Ersetzung reingemacht. Dadurch kann ich beliebige Ersetzungen machen. In meinem Fall :hr: zu <hr> mit Styling.
Code: Alles auswählen
//in Zeile 2032
$message = str_replace(':hr:', '<hr style="width: 50%; height:unset; margin:auto;">', $message);
//
$post_row = array(
Re: [3.3] Typographische Anführungszeichen
Verfasst: 10.09.2022 01:34
von IMC
Vielleicht ist dies die Lösung für dich.
https://github.com/IMC-GER/phpBB-Curly-Quotes
Wird nach und nach weiter entwickelt.
Re: [3.3] Typographische Anführungszeichen
Verfasst: 10.09.2022 06:44
von liesenfeld
Ah - thank you for the hint. Will check it out and report back

...
No - doesn't work:
Code: Alles auswählen
Fatal error: Uncaught Error: Call to undefined function imcger\curlyquotes\event\str_contains() in /pages/51/66/d0015911/home/htdocs/heilforum.de/ext/imcger/curlyquotes/event/main_listener.php:96 Stack trace: #0 /pages/51/66/d0015911/home/htdocs/heilforum.de/ext/imcger/curlyquotes/event/main_listener.php(51): imcger\curlyquotes\event\main_listener->get_browser_lang('de') #1 /pages/51/66/d0015911/home/htdocs/heilforum.de/cache/production/container_4335734bbdd20f586549a504dff5f80c.php(3783): imcger\curlyquotes\event\main_listener->__construct(Object(phpbb\user), Object(phpbb\request\request), Object(imcger\curlyquotes\core\fixer)) #2 /pages/51/66/d0015911/home/htdocs/heilforum.de/cache/production/container_4335734bbdd20f586549a504dff5f80c.php(3009): phpbb_cache_container->getImcger_Curlyquotes_ListenerService() #3 /pages/51/66/d0015911/home/htdocs/heilforum.de/vendor/symfony/event-dispatcher/EventDispatcher.php(231): phpbb_cache_container->{closure}() #4 /pages/51/66/d0015911/home/htdocs/heilforum.de/vendor/symfony/event-di in /pages/51/66/d0015911/home/htdocs/heilforum.de/ext/imcger/curlyquotes/event/main_listener.php on line 96
Re: [3.3] Typographische Anführungszeichen
Verfasst: 10.09.2022 09:56
von IMC
Die Extension benötigt min. php 8.0. Wenn du nicht die Möglichkeit hast höher zu gehen könnte ich dies noch ändern.
php 7 erreicht jedoch am Ende des Jahr sein Lebensende. Dann sollte man eh hoch stufen.
Re: [3.3] Typographische Anführungszeichen
Verfasst: 10.09.2022 10:37
von liesenfeld
Ah, wie dämlich von mir. Ich hatte für das Verzeichnis vergessen auf 8.0 umzustellen
Habe ich jetzt gemacht und es kommt keine Fehlermeldung mehr. Scheint gut zu funktionieren, allerdings werden Zitate zu Beginn des Beitrages nicht ersetzt:
"Ich denke, also bin ich"
Bleibt unverändert.
Er sagt "ich denke, also bin ich"
Wird ersetzt.
Re: [3.3] Typographische Anführungszeichen
Verfasst: 10.09.2022 11:10
von IMC
Danke für die Rückmeldung.
Jetzt sollte auch am Zeilenanfang ersetzt werden. Ist im Main korrigiert.
https://github.com/IMC-GER/phpBB-Curly- ... s/main.zip