MyBB.de Forum

Normale Version: Zuletzt verschobene Themen auf dem Index
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey,

zuletzt verschobene Themen auf dem Index - ist das möglich?

Vielleicht einfach durch Anpassung eines Plugins?

Hat jemand eine Empfehlung/Idee?

Viele Grüße
Das wird schwierig.
Verschobene Themen hinterlassen keinen wirksamen Indikator, der das Verschieben markiert,s o dass man es weiterverarbeiten könnte. Es sei denn es wird ein Thema kopiert oder mit Vermerk verschoben (x Tage Verlinkung; dann gibt es eine Kopie in der Tabelle *_threads). Nicht einmal im Adminlog etc. wir derartiges verzechniet.

Es ist eigener Code (Plugin oder PHP-Manipulation) nötig, das ein Verschieben separat protokolliert.

[ExiTuS]
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). Big Grin
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;
}