Joah, genau daran habe ich gedacht, an diesen Vermerk vom Verschieben.
Ich wollte gerade schon fragen, wo ich die in der Datenbank finde, aber du sagst, da gibt es nur eine Kopie in selbiger Tabelle der Threads. Wie stellt er dann die Verbindung her zwischen der Kopie/Weiterleitung und dem eigentlichen Thread?
Kannst du mir da kurz mal einen Tipp geben?^^
Oder besser gefragt, wie komme ich von der Thread-ID zur ID des Vermerks? Wie finde ich die TID des Vermerks raus?
Meine Frage hat sich erledigt und war eh dumm.
Soweit ich aber verstehe, könnte ich in meinem Fall einfach den Bereich nehmen wo die Themen her kommen und die Verschoben-Vermerke nach Deletetime chronologisch auflisten, insofern sich die Moderation immer an eine feste Zeit hält (Edit: Dafür könnte ich ja ein Beitragstool erstellen).
Ich suche also nach der FID, liste alle "moved" nach "deletetime" desc auf und dann habe ich was ich brauche. Dazu könnte ich jedes Plugin anpassen, dass z.B. "most viewed" Threads auflistet (Overview, Prostats).
PS. Langsam werde ich zum Programmierer...
Mein Code bisher:
Code:
// Most replies
function overview_most_replies($overview_unviewwhere)
{
global $mybb, $settings, $db, $templates, $theme, $lang, $trow;
$trow = alt_trow();
$table_heading = $lang->overview_most_replies;
$column1_heading = $lang->overview_topic;
$column2_heading = $lang->overview_replies;
// Fetch data
$query = $db->query("SELECT subject, tid, replies, deletetime, icon, prefix
FROM ".TABLE_PREFIX."threads
WHERE visible = '1' {$overview_unviewwhere} AND closed LIKE 'moved|%'
AND fid IN (158)
ORDER BY deletetime ASC
LIMIT 0,{$settings['overview_max']};");
// Print data
while($threads = $db->fetch_array($query))
{
$val1 = overview_parsesubject($threads['subject'], $threads['icon'], $threads['prefix'], $threads['tid']);
$val2 = "<a href=\"javascript:MyBB.whoPosted({$threads['tid']});\">{$threads['replies']}</a>";
eval("\$table_content .= \"".$templates->get("overview_2_columns_row")."\";");
}
eval("\$output = \"".$templates->get("overview_2_columns")."\";");
return $output;
}
Jetzt gibt es natürlich noch das Problem, dass wenn man raufklickt "Das Thema existiert nicht" kommt.
Einer eine Idee wie ich die Weiterleitung zum "moved Thread" integriere? Die ID steht ja bei "closed" mit drin.
Ich denke mal ich kann hier irgendwas anpassen:
Code:
$val1 = overview_parsesubject($threads['subject'], $threads['icon'], $threads['prefix'], $threads['tid']);
$val2 = "<a href=\"javascript:MyBB.whoPosted({$threads['tid']});\">{$threads['replies']}</a>";
Statt $threads['tid'] die TID von closed rein, aber dabei bräuchte ich Hilfe, sonst zerschieße ich es bestimmt (bislang noch nicht passiert).
Also, ich benutze bislang die $val2 und blende $val1 im Template aus. Ich brauche das Template overview_2_columns_row nur dafür. Das ist nicht sonderlich professionell umgesetzt, aber es würde funktionieren. Hier mein bisheriger Code dafür.
Code:
$val2 = "<a href=\"thread-{$threads['closed']}\">{$threads['subject']}</a>";
Wenn mir jetzt noch jemand sagen kann, wie ich nur die ID des Feldes closed da einsetze und das moved weglasse, dann sollte es funktionieren.
Beispiel: moved|20170
Ergebnis soll sein: <a href="thread-{$threads['20170']}">
Und nicht: <a href="thread-{$threads['moved|20170']}">
Habe jetzt folgendes ergänzt:
Code:
$threadBits = explode('|', $threads['closed']);
$val2 = "<a href=\"showthread.php?tid={$threadBits[1]}\">{$threads['subject']}</a>";
Funktioniert soweit, aber könnte man sicher schöner machen. Falls sich jemand ranmachen möchte, nur zu! Ich bin noch blutiger Anfänger.
Hier nochmal die ganze Funktion aus dem Overview-Plugin die ich dafür manipuliert habe:
Code:
// Most replies
function overview_most_replies($overview_unviewwhere)
{
global $mybb, $settings, $db, $templates, $theme, $lang, $trow;
$trow = alt_trow();
$table_heading = $lang->overview_most_replies;
$column1_heading = $lang->overview_topic;
$column2_heading = $lang->overview_replies;
// Fetch data
$query = $db->query("SELECT subject, tid, replies, deletetime, closed, icon, prefix
FROM ".TABLE_PREFIX."threads
WHERE visible = '1' {$overview_unviewwhere} AND closed LIKE 'moved|%'
AND fid IN (158)
ORDER BY deletetime DESC
LIMIT 0,{$settings['overview_max']};");
// Print data
while($threads = $db->fetch_array($query))
{
$val1 = overview_parsesubject($threads['subject'], $threads['icon'], $threads['prefix'], $threads['tid']);
$threadBits = explode('|', $threads['closed']);
$val2 = "<a href=\"showthread.php?tid={$threadBits[1]}\">{$threads['subject']}</a>";
eval("\$table_content .= \"".$templates->get("overview_2_columns_row")."\";");
}
eval("\$output = \"".$templates->get("overview_2_columns")."\";");
return $output;
}