Beiträge: 448
Themen: 86
Registriert seit: 07.04.2014
Hallöchen,
ich habe mit Attachments im ersten Beitrag eines neuen Threads in einem moderierten Forum ein Problem. Trotz Freigabe sehe ich die nur als Admin ...
Vor längerem hatte ich bisschen experimentiert und resultierend vermutet, dass es an der Reihenfolge von Freigabe des Beitrags und des Anhangs liegen könnte. Wenn beide Mod-Meldungen angezeigt werden, kann es schon vorkommen, dass man es mal so, und mal anders rum macht.
Auf jeden Fall ist das nervig. Macht man es in falscher Reihenfolge, muss man den Beitrag bearbeiten, den Anhang löschen und erst mal speichern und freigeben. Dann ändert man nochmal, fügt den Anhang wieder ein, ... und wenn man beim Freigeben Pech hat, macht man es nochmal.
So, nun habe ich die Hoffnung, dass das irgendwo in einer Tabelle hinterlegt ist und ich es einfach dort ändern kann. Finde allerdings nicht die betreffende Stelle.
Meine erste Anlaufstelle waren die xxx_attachments. Visible sind dort alle, ... aid gibt's auch bei awaitingactivation, aber da ist "meine" aid nicht dabei. Bei den Posts gibt's nix mit aid, ...
PHP Version 8.2.22 (Test: 8.2.22)
MySQLi Version 5.7.42 (Test: 8.0.36)
Mybb Version 1.8.38 (Test: 1.8.38)
(Stand 09/2024)
Grüße, André
Beiträge: 448
Themen: 86
Registriert seit: 07.04.2014
Hallöchen,
das Problem existiert nach wie vor und ist auch nicht neu, siehe dort
https://www.mybb.de/forum/thread-37497-p...#pid246524
Ist mir gerade wieder passiert. Da muss man erst aus dem Beitrag die Anhänge sichern und entfernen, speichern, freigeben, und dann den Beitrag nochmal bearbeiten, die Anhänge einfügen, und dann warten bis die Meldungen zur Moderation des Beitrags und der Anhänge erscheinen ...
Mal eine dumme? Frage.
Wenn ich als Admin einen Beitrag eines users bearbeite, warum muss der dann nochmal moderiert werden?
PHP Version 8.2.22 (Test: 8.2.22)
MySQLi Version 5.7.42 (Test: 8.0.36)
Mybb Version 1.8.38 (Test: 1.8.38)
(Stand 09/2024)
Grüße, André
Beiträge: 2.039
Themen: 10
Registriert seit: 28.06.2007
MyBB-Version: 1.8.x
30.03.2023, 22:11
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2023, 08:58 von doylecc.)
Das Problem besteht darin, dass bei der Freigabe des Attachments im Mod-CP der "attachmentcount" in der "_threads" Tabelle nicht hochgezählt wird. Wenn es noch keine anderen Attachments im jeweiligen Thread gibt, bleibt der Zähler auf 0 und damit wird es Benutzern ohne Mod-Berechtigung nicht angezeigt.
Suche mal in der modcp.php nach den Zeilen 2063-2092:
PHP-Code:
else if(!empty($mybb->input['attachments']))
{
$attachments = array_map("intval", array_keys($mybb->input['attachments']));
$query = $db->query("
SELECT a.pid, a.aid
FROM ".TABLE_PREFIX."attachments a
LEFT JOIN ".TABLE_PREFIX."posts p ON (a.pid=p.pid)
LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=p.tid)
WHERE aid IN (".implode(",", $attachments)."){$tflist_queue_attach}
");
while($attachment = $db->fetch_array($query))
{
if(!isset($mybb->input['attachments'][$attachment['aid']]))
{
continue;
}
$action = $mybb->input['attachments'][$attachment['aid']];
if($action == "approve")
{
$db->update_query("attachments", array("visible" => 1), "aid='{$attachment['aid']}'");
}
else if($action == "delete")
{
remove_attachment($attachment['pid'], '', $attachment['aid']);
}
}
$plugins->run_hooks("modcp_do_modqueue_end");
redirect("modcp.php?action=modqueue&type=attachments", $lang->redirect_attachmentsmoderated);
}
und ersetze sie durch:
PHP-Code:
else if(!empty($mybb->input['attachments']))
{
$attachments = array_map("intval", array_keys($mybb->input['attachments']));
$query = $db->query("
SELECT a.pid, a.aid, t.tid
FROM ".TABLE_PREFIX."attachments a
LEFT JOIN ".TABLE_PREFIX."posts p ON (a.pid=p.pid)
LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=p.tid)
WHERE aid IN (".implode(",", $attachments)."){$tflist_queue_attach}
");
while($attachment = $db->fetch_array($query))
{
if(!isset($mybb->input['attachments'][$attachment['aid']]))
{
continue;
}
$action = $mybb->input['attachments'][$attachment['aid']];
if($action == "approve")
{
$db->update_query("attachments", array("visible" => 1), "aid='{$attachment['aid']}'");
if(isset($attachment['tid']))
{
update_thread_counters((int)$attachment['tid'], array("attachmentcount" => "+1"));
}
}
else if($action == "delete")
{
remove_attachment($attachment['pid'], '', $attachment['aid']);
if(isset($attachment['tid']))
{
update_thread_counters((int)$attachment['tid'], array("attachmentcount" => "-1"));
}
}
}
$plugins->run_hooks("modcp_do_modqueue_end");
redirect("modcp.php?action=modqueue&type=attachments", $lang->redirect_attachmentsmoderated);
}
Beiträge: 448
Themen: 86
Registriert seit: 07.04.2014
03.04.2023, 09:16
(Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2023, 09:18 von schauan.)
Hallöchen,
danke, hab's im Testforum eingearbeitet. Ich muss nur mal schauen, was ich eventuell bei den Einstellungen verdreht habe :-( Mein "registrierter" Testuser kann momentan im moderierten Forum Beiträge einstellen, ohne dass sie moderiert werden müssen. Seltsamerweise geht das im produktiven und im Testforum so, obwohl ich nur im produktiven Forum an den Einstellungen war.
PHP Version 8.2.22 (Test: 8.2.22)
MySQLi Version 5.7.42 (Test: 8.0.36)
Mybb Version 1.8.38 (Test: 1.8.38)
(Stand 09/2024)
Grüße, André