Bei den Beiträgen aus vBulletin 4 wird die Description des Forums als Meta-Description für den Thread genommen, was natürlich unfug ist. Keine Ahnung warum, aber bei dem Update wurden die entsprechenden Felder in der DB nicht befüllt. Dies passiert nur bei neuen Beiträgen oder bei alten, die editiert werden. Bei neuen Posts wird, auch wenn es mehrere Antworten und oder Seiten sind, immer die Beschreibung vom ersten Post verwendet.
Gedankengänge und Stichwortsammlung:
- Die Meta-Description wird aus der node.description bezogen
- Bei alten Beiträgen ist der Wert jeweils NULL
- Post müssten sich anhand der "node.contenttypeid = 20" identifizieren lassen.
- Da immer das erste Post als Quelle dient, ist eigentlich nur dort ein Update erforderlich.
- Erkennung von "erster Post". Dies müsste der Fall sein, wenn node.nodeid == node.starter ist. Folgeposts haben jeweils eine eigene Nodeid und als "starter" weiterhin die vom "ersten Post".
Als Datenquelle müsste dann text.rawtext dienen, denn nur dort steht der eigentlich Inhalt des Posts.
Das Update müsste also erfolgen, wenn "node.contenttypeid = 20 UND node.nodeid == node.starter UND node.description NULL ist"
Eine Limitierung scheint nicht erforderlich zu sein, der Core selbst schreibt auch ohne Limit. Limit ist nur das Zellenlimit von varchar(200).
Gedanken 2:
Direktes kopieren per SQL ist nicht möglich. node.description und text.rawtext sind nicht identisch. In node.description werden BB-Tags und womöglich auch noch andere Elemente entfernt. In text.rawtext ist alles vorhanden.
-> 'message_plain' => strip_bbcode(strip_tags($node['content']['rawtext'])),
/core/includes/functions.php
-> function strip_bbcode($message, $stripquotes = false, $fast_and_dirty = false, $showlinks = true, $stripimg = false, $keepquotetags = false)
/core/includes/functions_newpost.php
-> $effective_string = preg_replace('#[^a-z0-9\s]#i', '\2', strip_bbcode($text, true, false));
Gedanken 3:
- BB-Code muss entfernt und enthaltener Text um ein Leerzeichen ergänzt werden.
- Bei enthaltenen Bildern wird es kompliziert und unlogisch. text.rawtext:
ergibt node.description
. Darauf könnte man wohl notfalls verzichten. Der Temp-Filename macht in der Meta-Description ja ohnehin keinen Sinn.
- Smilies werden unverändert übernommen.
- URLs als Text werden unverändert übernommen
- Quotes werden komplett (inkl. Inhalt) gelöscht ($stripquotes == true ?)
- Hm, wie kam ich da oben auf varchar(200)?. Das war die alte Tabelle aus VB4 (dieser Mist). node.description ist varchar(1024).