[3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben | GELÖST

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Benutzeravatar
KWolf
Mitglied
Beiträge: 68
Registriert: 18.07.2020 11:57

[3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben | GELÖST

Beitrag von KWolf »

Hallo Retter und Helfer,

an der Stelle kann ich mich einmal bedanken, für die ganze Hilfe, die ich bereits bekommen habe!

Folgendes Problem ist von Moderatoren aufgefallen:

in bestimmten Textkonstellationen, werden die Symbole nicht mehr wie früher dargestellt. (Das Forum wurde von 3.1.6 auf 3.2.9 und dann auf 3.3 geupdatet):
Zur Veranschaulichung: :grin: = Symbol1, :D = Symbol2

Anzeige der alten Version (3.1.6):
:grin: / :D 07, 19°43', TextTextText

Anzeige neue Version (3.3):
:grin: / Symbol207, 19°43', TextTextText
Es liegt hier an dem nicht vorhandenen "Leerzeichen", denn das Symbol an sich funktioniert - wird leider nur nicht ausgegeben, wenn etwas direkt dran steht. Dies war in der alten Version jedoch irrelevant und jetzt sind viele hundert, vllt. sogar tausende Beiträge davon betroffen. (es handelt sich hier nur um ein Bsp, jedoch gibt es viele Situationen, an der ausdrucksbedingt eine Zahl direkt hintendran steht, die auch noch häufig variiert)

Ich habe mir dann exakt dieses Beispiel in der Datenbank (alt und neu) angeschaut (unter posts) und verglichen.
Alte Version:

<!-- ssSO --><img src="{SMILIES_PATH}/pfad/Symbol1.gif" alt="sSO" title="Symbol1" /><!-- ssSO --> / <!-- ssKR --><img src="{SMILIES_PATH}/pfad/Symbol2.gif" alt="sKR" title="Symbol2" /><!-- ssKR -->07, 19°43', TextTextText


Neue Version:

<E>sSO</E> / sKR07, 19°43', TextTextText<br/> ( <<<< wenn ich das richtig verstehe ist hier <E>...</E> dafür verantwortlich dem Forum zu sagen: Achtung, hier ist ein Symbol)
1. Was ist hier genau passiert? Mir gefällt natürlich der zweite (neue) "Code" besser, aber das sind ja Welten...
2. Warum wird das Symbol2 nicht angezeigt? (auch wenn was hintendran steht...die Zeichenfolge ist ja festgelegt)
3. Was wäre die einfachste oder beste Möglichkeit, die Beiträge in der Datenbank anzupassen?
4. Oder kann ich den Code vom Forum anpassen, dass dieses Leerzeichen ignoriert bzw nicht benötigt wird?

Vielen dank für eure Hilfe oder Lösungsansätze!
Zuletzt geändert von KWolf am 28.07.2020 13:32, insgesamt 1-mal geändert.
Der Löwe und der Tiger sind vielleicht stärker...
aber der Wolf wird nie im Zirkus zu sehen sein. :D
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von chris1278 »

Naja hier ist die frage ob die smilies an sich noch da sind. Evtl. fehlen einfach die dateien auf dem Server.

Beispiel:

Du hattest vorher smilie1 mit datei: s1.gifund smilie2 mit datei s2.gif

Wenn jetzt die datei s2.gif weg ist also nicht mehr vorhanden würde das resultat so aussehen wie bei dir as anstelle des smilies eine bezeichnung da steht.
Benutzeravatar
KWolf
Mitglied
Beiträge: 68
Registriert: 18.07.2020 11:57

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von KWolf »

Hi,

Smilies/Symbole sind alle vorhanden...haben den gleichen Namen und auch logischerweiße den gleichen Pfad (da der Order "files" ja Original geblieben ist). Die Symbole lassen sich ja alle aufrufen...es geht um ein "Zeichen/Zahl" direkt dahinter (wie oben das Beispiel zeigt). In der früheren Version wurde dies trotzdem anerkannt. Jetzt wird jedoch verlangt, dass ein Leerzeichen zwischen "Smilie/Symbol" und dem darauffolgenden Zeichen/Zahl steht. dies würde aber dann bedeuten, dass wie erwähnt hunderte, wenn nicht tausende Beiträge bearbeitet werden müssten - nur wegen einem "Leerzeichen" was jetzt zwingend geworden ist.

Grüße

EDIT:
Alle Posts sind ja in der Datenbank hinterlegt - ist es denn nicht möglich (auch wenn etwas Arbeit für 38 Symbole die es betrifft) nach und nach einen Befehl in der Datenbank auszuführen und alle "Symbol1"-Einträge gegen "Symbol1 " (mit Leerzeichen dahinter) zu ersetzten?
...dies würde das Problem ja auf eine Weiße lösen...
Der Löwe und der Tiger sind vielleicht stärker...
aber der Wolf wird nie im Zirkus zu sehen sein. :D
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von chris1278 »

Aber smilies liegen in images/smilies nicht im Ordner files
Benutzeravatar
KWolf
Mitglied
Beiträge: 68
Registriert: 18.07.2020 11:57

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von KWolf »

hi chris,

gebe Dir vollkommen Recht - jedoch ändert das nichts. Auch der Ordner "images" wurde Original übernommen (so wie nach Anleitung vorgeschrieben). Sie werden ja in der ACP alle angezeigt...das ist nicht das Problem.
Der Löwe und der Tiger sind vielleicht stärker...
aber der Wolf wird nie im Zirkus zu sehen sein. :D
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von BNa »

Hallo Wolf,

Über die Datenbank scheint mir das weniger trivial, dennoch eine Quick-Lösung hier:

https://www.phpbb.com/community/viewtop ... #p11669815

Für phpbb 3.3.* ist das hier:

Öffne

includes/message_parser.php

Finde (ab Zeile 104)

Code: Alles auswählen

	/**
	* Prepare some bbcodes for better parsing
	*/
	function prepare_bbcodes()
	{
		// Ok, seems like users instead want the no-parsing of urls, smilies, etc. after and before and within quote tags being tagged as "not a bug".
		// Fine by me ;) Will ease our live... but do not come back and cry at us, we won't hear you.

		/* Add newline at the end and in front of each quote block to prevent parsing errors (urls, smilies, etc.)
		if (strpos($this->message, '[quote') !== false && strpos($this->message, '[/quote]') !== false)
		{
			$this->message = str_replace("\r\n", "\n", $this->message);

			// We strip newlines and spaces after and before quotes in quotes (trimming) and then add exactly one newline
			$this->message = preg_replace('#\[quote(=&quot;.*?&quot;)?\]\s*(.*?)\s*\[/quote\]#siu', '[quote\1]' . "\n" . '\2' ."\n[/quote]", $this->message);
		}
		*/

		// Add other checks which needs to be placed before actually parsing anything (be it bbcodes, smilies, urls...)
	}
Ersetze mit

Code: Alles auswählen

	/**
	* Prepare some bbcodes for better parsing
	*/
	function prepare_bbcodes()
	{
		// Ok, seems like users instead want the no-parsing of urls, smilies, etc. after and before and within quote tags being tagged as "not a bug".
		// Fine by me ;) Will ease our live... but do not come back and cry at us, we won't hear you.

		/* Add newline at the end and in front of each quote block to prevent parsing errors (urls, smilies, etc.)
		if (strpos($this->message, '[quote') !== false && strpos($this->message, '[/quote]') !== false)
		{
			$this->message = str_replace("\r\n", "\n", $this->message);

			// We strip newlines and spaces after and before quotes in quotes (trimming) and then add exactly one newline
			$this->message = preg_replace('#\[quote(=&quot;.*?&quot;)?\]\s*(.*?)\s*\[/quote\]#siu', '[quote\1]' . "\n" . '\2' ."\n[/quote]", $this->message);
		}
		*/
		
		 // Mal schauen, ob es so geht?
		 $fin = array(":grin:", ":D"); // Hier den Smilie-Code ohne Leerzeichen
		 $rep = array(" :grin: ", " :D "); // Hier den Smilie-Code vorne und hinten mit Leerzeichen
		 $this->message = str_replace($fin, $rep, $this->message);
		  // Mal schauen, ob es so geht?

		// Add other checks which needs to be placed before actually parsing anything (be it bbcodes, smilies, urls...)
	}
Bei mehreren Ersetzungen also so schreiben**:

https://www.phpbb.com/community/viewtop ... #p13222906

**Um Deinem Beispiel zu folgen: :grin: / :D

Code: Alles auswählen

          $fin = array(":grin:", ":D"); // Hier den Smilie-Code ohne Leerzeichen
          $rep = array(" :grin: ", " :D "); // Hier den Smilie-Code vorne und hinten mit Leerzeichen
          $this->message = str_replace($fin, $rep, $this->message);
Code meint, wenn kein Leerzeichen vorhanden, dann mach einfach eins oder räum' überhaupt frei.

Falls Du das aber dennoch über die Datenbank schaffst, poste mal die Lösung.
Benutzeravatar
KWolf
Mitglied
Beiträge: 68
Registriert: 18.07.2020 11:57

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von KWolf »

Hallo Bna,

erstmal vielen Dank für den Lösungsansatz!

1. Ich habe den code angepasst, jedoch ergab dies leider keine Veränderung. Ich habe es auch direkt mit "neuen" Beiträgen getestet - das Ergebnis bleibt gleich.
2. Dann habe ich einfach mal Deinen Code Original gelassen und mir den Unterschied bei den angegebenen Smilies angesehen. also mal mit Leerzeichen geschrieben und mal ohne. Sobald kein Zeichen dazwischen - kein Smilie.

Mir ist jedoch dabei folgendes aufgefallen (auch hier im Forum genauso):
:D:D <<< (zwei Smilies aneinander ohne Leerzeichen)
:D :D <<< (zwei Smilies mit Leerzeichen)
:DWort (Smilies mit Buchstaben ohne Leerzeichen)
:D07 (Smilies mit Zahl ohne Leerzeichen)
:D,07 (Smilies mit Komma dazwischen, aber ohne Leerzeichen)
Jetzt sehr interessant:
:D::D (Smilies mit Doppelpunkt dazwischen)
Es geht also darum, dass "irgendein" Zeichen zwischen Smilie und dem darauffolgenden Wert folgt...jedoch funktioniert dies mit dem "Doppelpunkt" nicht. :roll:

Ich hoffe auf euer Wissen, um die Möglichkeit zu finden, ein Zeichen zu "ignorieren" oder zu "implemitieren"


Vielen Dank schon mal!

PS: die Hoffnung liegt in eurem brachialem Wissen :grin:
Zuletzt geändert von KWolf am 28.07.2020 10:13, insgesamt 1-mal geändert.
Der Löwe und der Tiger sind vielleicht stärker...
aber der Wolf wird nie im Zirkus zu sehen sein. :D
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7859
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von Kirk »

Wird ein Smilie gesetzt, wird automatisch ein Leerzeichen angefügt.
Der Code für diesen Smilie :D ist so :D ist zischen den 2 kein Leerzeichen oder man setzt den Code falsch wird dieser Smilie nicht angezeigt. Den Smiliecode kann man im ACP/Beiträge/Smilies ändern.
Benutzeravatar
KWolf
Mitglied
Beiträge: 68
Registriert: 18.07.2020 11:57

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von KWolf »

Kirk hat geschrieben: 28.07.2020 09:12 Wird ein Smilie gesetzt, wird automatisch ein Leerzeichen angefügt.
Der Code für diesen Smilie :D ist so :D ist zischen den 2 kein Leerzeichen oder man setzt den Code falsch wird dieser Smilie nicht angezeigt. Den Smiliecode kann man im ACP/Beiträge/Smilies ändern.
Hallo Kirk,

vielen Dank für Deine Antwort. Mir ist bewusst, dass nun ein Leerzeichen gesetzt wird/gesetzt werden muss - jedoch war dies nicht in 3.1.6 (daher kommt das Forum ursprünglich) und das macht jetzt Probleme, da viele Beiträge eben gewisse "Symbole" (Smilies) enthalten, welche jetzt nur noch mit Kürzel gezeigt werden. In diesem Fall ist es so, dass das Symbol (Smilie) mit der dahinter stehenden Zahl einen Sinn ergibt.
Dieses Leerzeichen ist jetzt aber "neu" und nun stehen haufenweise Beiträge (ich habe mal nachgeschaut: das Forum besitzt 2191 Beiträge und ich gehe davon aus das 40-50% betroffen sind) mit Kürzel und einer Zahl dahinter, anstatt das entsprechende Symbol angezeigt wird.

Ich kann ja jetzt schlecht hingehen und die Beiträge alle wegen einer Leerzeichenänderung manuell bearbeiten :roll:
Wird ein Smilie gesetzt, wird automatisch ein Leerzeichen angefügt.
Das stimmt nicht ganz, denn wenn man das Smilie anklickt ist das zwar korrekt, aber wenn man das "Kürzel" schreibt, dann muss man das logischerweiße händisch einkalkulieren, dass noch ein Leerzeichen dran muss --> und dann kommen wir wieder zur Version 3.1.6, bei der dies egal war.


Meine Frage ist nun, wie ich an den "Code" komme, welcher eben geändert wurde (es muss ja irgendwas verändert worden sein)

Viele Grüße
Der Löwe und der Tiger sind vielleicht stärker...
aber der Wolf wird nie im Zirkus zu sehen sein. :D
Benutzeravatar
KWolf
Mitglied
Beiträge: 68
Registriert: 18.07.2020 11:57

Re: [3.3] Symbole werden in bestimmten Konstellationen nicht mehr ausgegeben

Beitrag von KWolf »

So Zusammen...ich konnte es tatsächlich über die Datenbank lösen:
BNa hat geschrieben: 27.07.2020 16:22 Falls Du das aber dennoch über die Datenbank schaffst, poste mal die Lösung.

...aber natürlich
8) :


LÖSUNG:

1. In die Datenbank einloggen (...und Backup direkt erstellen)

2. über die Suche schaut man sich zunächst an, wo genau dieser zu ersetztende "Begriff/Zeichenfolge" vorhanden ist

3. man lokalisiert genau die Tabelle und Spalte und merkt sich den Namen ....oder schreibt ihn auf :grin: (bei mir war es unter Tabelle : "posts" die "posts_text" Spalte - hier drauf acht geben, dass ich auch das Prefix mit angebt, falls vorhanden: also bei mir wäre es dann "wp_posts" gewesen)

4. Wisst Ihr genau was Ihr austauschen möchtet und in welche Spalte es liegt, klickt auf eure Datenbank (zb. DB1234567) links oben (sodass alle Einträge markiert werden) und dann wählt den Haupt-Reiter "SQL".
Dort erscheint ein weises Feld, worin ihr folgenden Code einsetzt (BITTE CODE VORHER EDITIEREN)

Code: Alles auswählen

UPDATE tablename SET field = REPLACE(field, "findstring", "replacestring")
So sieht das dann mit euren Daten aus:
UPDATE Tabelle SET Spalte = REPLACE(Spalte, "alteZeichenfolge", "neueZeichenfolge")

5. Passe) den Code an ---> in meinem Fall: UPDATE posts SET posts_text = REPLACE(posts_text, "sKR", "<E>sKR</E>")

6. Führe den Code aus. (Runterscrollen und „OK“ drücken)

<<<<< GANZ WICHTIG: >>>>>
Falls es wie bei mir um die "Smilies"/ Symbole geht, dann müsst ihr dieses mit "<E></E>" einkreisen - nur mit einem Leerzeichen hat es nämlich nicht funktioniert und man bekommt dann einfach sein "Kürzel" geschrieben mit einem Leerzeichen.

Danke für eure Ideen! - ich hatte es nur mit einem Symbol versucht und es funktioniert einwandfrei (für dieses Symbol wurden direkt 596 Beiträge aktuallisiert). Werde also jetzt mehrere Zeilen (in meinem Fall 38) schreiben mit den jeweiligen Änderungen und diese alle auf einmal Ersetzen.

Vielen Dank!
Zuletzt geändert von KWolf am 29.07.2020 01:47, insgesamt 2-mal geändert.
Der Löwe und der Tiger sind vielleicht stärker...
aber der Wolf wird nie im Zirkus zu sehen sein. :D
Antworten

Zurück zu „Support-Forum“