Seite 1 von 2
Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 14:43
von poenn
Hallo zusammen,
ich habe nach dem Update auf phpBB 3.1.1 mal die Smiley-Codes eingedeutscht. Das bedeutet, daß ich im ACP/Beiträge/Smilies Code und Beschreibung geändert habe, hier ein Beispiel:
VORHER
:thumbup:
Thumb Up
NACHHER
:daumenhoch:
Daumen hoch
Für neue Beiträge klappt das wunderbar, ältere zeigen jetzt aber ein Fragezeichen statt des Smileys. Wenn ich im ACP wieder zusätzlich den alten Code anlege, ändert sich daran leider auch nichts.
Alternativ habe ich es mit einer SQL-Abfrage probiert, die einfach alle Vorkomnisse ersetzen soll:
update phpbb3_posts set post_text = replace(post_text, ':thumbup:', ':daumenhoch:')
Aber selbst das bringt keine Änderung. Es sei denn, ich editiere einen Beitrag. Dann wird der Smiley plötzlich angezeigt. Aber das kann ich ja nicht für tausende bestehende Beiträge machen…
Kann mir jemand helfen?
Danke!
poenn
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 15:05
von HabNurNeFrage
Hi,
sind denn nach dem SQL auch alle Stellen angepasst worden?
Wenn ja, sollten die Smilies dann eigeentlich wieder angezeigt werden.
RegEx-Pattern zu ändern, wenn bereits tausende Stellen diese Pattern nutzen, ist immer etwas tricky
LG
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 15:09
von poenn
Ja, ich habe testweise in ein paar Posts geschaut. Die enthielten nach SQL :daumenhoch: anstelle von :thumbup:
Aber leider wurde mir immer noch kein Smiley angezeigt. Selbst nach Cache leeren im ACP und nach Neustart des kompletten Servers, auf dem phpBB läuft. Habe auch meinen Browser zurückgesetzt. Hab mal irgendwann was von reparse all posts gelesen, aber keine Ahnung, ob das hier notwendig ist. Eigtl. müsste es doch so klappen, dachte ich mir…
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 15:27
von HabNurNeFrage
Hi,
keine Ahnung. Habe mir noch nicht angeschaut, wie Smilies in der Bank gespeichert werden und wie die Auslieferung erfolgt.
Das
STK bietet zumindest diese Funktion an. (dauert ziemlich lange bei vielen Beiträgen)
Einen Versuch ist es wert oder halt die originalen Smiley-Codes wieder herstellen...
LG
PS: Es wird wohl an den (anscheinend nicht unwichtigen) HTML-Kommentaren liegen, die um die <img /> Tags erzeugt werden.
:D ergibt hier

und so sieht die HTML-Ausgabe aus:
<!-- s:D --><img src="..." /><!-- s:D -->
Vielleicht kannst Du die auch mit SQL anpassen. Nach dem s im Kommentar werden oft nicht alle Zeichen der Smiley-Codes verwendet.
In Tabelle
_posts steht bei mir
<!-- s8 --><img /><!-- s8 --> und der Smileycode ist
8-) 
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 15:56
von regazer
Die ursprüngliche Festlegung der Smileynamen erfolgt bereits bei der Installation des Boards. Um bei meinen neuesten Tests völlig andere Smilies benutzen zu können, habe ich die Sektion "# -- Smilies" in der Datei "schema_data.sql" (Verzeichnis "install\schemas") bearbeitet und entsprechend in den Sprachdateien (install.php) alles, was mit "SMILIES_" beginnt.
Alleiniges Ändern des darzustellenden Textes kann keine Probleme verursachen. Die Fehlerquelle liegt im hier geschilderten Fall darin, den eigentlichen Identifier umbenannt zu haben. Es kann gar kein :daumenhoch:
gefunden werden, wenn in älteren Beiträgen LOGISCHERWEISE noch :thumbup:
steht (stehen muß, weil das ja beim Erstellen der Beiträge der gültige Identifier war) ...
Folglich liegt ein Denkfehler zugrunde.
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 17:15
von poenn
Hallo regazer,
das ist mir ja bewusst. Aber wieso werden die Smilies dann nicht wieder angezeigt, wenn ich den ursprünglichen Identifier :thumbup: wiederhergestellt habe? Das wundert mich am meisten, daß es eben kein Zurück mehr zu geben scheint.
Ich habe einen Snapshot meiner phpBB-VM gemacht, um besser testen zu können. Dabei ist mir soeben noch etwas aufgefallen:
Habe zum Test den o.g. SQL-Befehl durchgeführt. Er meldet 116 betroffene Datensätze von :thumbup: und beim 2. Durchlauf null, scheint also geklappt zu haben. Gehe ich dann aber zu einem Post, der ursprünglich :thumbup: enthielt, so zeigt ein Mouseover auch immer noch Thumbup neben dem Fragezeichen-Platzhalter. (Der Browser wurde vorher komplett zurückgesetzt, alle Caches und Cookies gelöscht) Gehe ich dann bei diesem Beitrag auf Bearbeiten, so steht im Text aber :daumenhoch: an dieser Stelle. Wenn ich dann, ohne etwas am Beitrag zu verändern, nochmal auf Absenden klicke, wird der Smiley richtig angezeigt.

Aber ich kann ja schlecht bei über 7000 Beiträgen auf Bearbeiten/Absenden klicken…
Hilft mir hier das STK? Ist dieses überhaupt schon 3.1.1-kompatibel?
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 17:35
von HabNurNeFrage
Hi.
Nö, dazu müsstest Du Deine hoffentlich gesicherte 3.0.12er Bank hernehmen und danach updaten.
Die Title-Tag-Attribute der <img /> Tags hast Du durch Dein SQL nicht geändert. Daher kommt die "alte" Hover-Info.
Dafür müsstest Du eine ähnliche Query zusätzlich laufen lassen.
Schau mal ins PS meines vorigen Posts.
Wenn Du einen Beitrag mit allen Smilies schreibst und diesen in der Bank betrachtest, kannst Du für die Kommentar-Tags und title="..." auch SQL-Queries erstellen.
Teste das doch einfach mal mit einem Beitrag, in den Du "alte" und "neue" Smilies packst.
Sowie es dort funktioniert, lässt Du das SQL für alle Beiträge durchlaufen.
LG
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 17:42
von poenn
Danke euch beiden für die raschen Antworten. Ich war gerade dabei, noch neue Infos hier zu posten, aber HabNurNeFrage war schneller.
Nochmal ein Update:
Ich hab gerade festgestellt, daß es am Umbenennen der GIFs liegt. Hintergrund ist folgender: Ich habe ein paar alte Smileys aus phpBB 2.x-Zeiten. Damit diese in alten Posts nicht verlorengehen, habe ich deren GIFs in images/smilies behalten. Ich wollte aber auch die neueren haben. Da diese aber tlw. den gleichen Dateinamen haben, habe ich alle neueren Smileys umbenannt in name_new.gif
Im Zuge dessen hab ich mich an die Lokalisierung der Smiley-Codes im ACP gemacht. Hab jetzt gemerkt, daß es somit wohl gar nicht am Smiley-Code liegt, sondern daran, daß z.B. die Datei icon_thumbup.gif nicht mehr existiert hat, sondern nur noch icon_thumbup_new.gif
Wenn ich dafür sorge, daß icon_thumbup.gif wieder images/smilies liegt, wird der Beitrag mit korrektem Smiley angezeigt. Das Problem ist nun nur folgendes: Manche meiner alten Smilies tragen genau den Namen, den nun die neuen Smilies haben, z.B. gab es auch früher schon ein icon_cool.gif (Sonnenbrille).
Was sollte ich eurer Meinung hier nun am besten machen?
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 17.11.2014 19:38
von regazer
Schön, daß Du den Hauptfehler gefunden hast. Darauf wäre ich jetzt auch nicht gekommen.
Was Smileys mit identischen Namen betrifft, so hilft nur umbenennen.
Dabei gibt es aber ein paar üble Fallen, die ich aus eigener Erfahrung nicht unerwähnt lasse:
Unbedingt auf die Größen achten ! Vor allem animierte Smilies sind oft größer als die Standardvorgaben. Das kann sich rein optisch negativ auf den Text auswirken, wenn dann bei längeren Textblöcken die Zeilen unterschiedlich hoch sind. Vor allem darf man aber nicht vergessen, auch die Größenangaben im ACP zu ändern. Besonders tückisch ist es, wenn bei animierten Smileys Einzelbilder größer sind als das Startbild.
Damit meine ich: Wenn z.B. Irfanview eine bestimmte Größe für ein animiertes Smiley zeigt, ist es mitunter sinnvoll, die Sequenz entpacken zu lassen und anhand der Einzelbilder zu prüfen, welches tatsächlich das größte ist.
Nachtrag: Das STK funktioniert nur mit den "alten" phpBB-Versionen.
Re: Smileys in Beiträgen werden nicht dargestellt
Verfasst: 18.11.2014 23:42
von poenn
Danke für die Tipps. Ich hab jetzt nochmal aufgeräumt und die GIF-Dateien einfach doppelt im entsprechenden Verzeichnis gelassen. Die von mir eingedeutschten, neuen Smileys haben allesamt einen anderen Dateinamen und andere Codes erhalten, so daß sie sich mit den englischen nicht in die Quere kommen. Damit beim Verfassen eines Beitrags nicht alle doppelt angezeigt werden, habe ich im ACP nur die neuen,
deutschen Smileys eingestellt. Solange die englischen mit dem ursprünglichen Namen im Verzeichnis images/smilies liegen, werden auch sie in den Beiträgen angezeigt.
Also alles in Butter nun.
