Beiträge: 7.021
Themen: 4.708
Registriert seit: 06.12.2006
26.07.2009, 06:13
(Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2014, 09:53 von MyBB.de Bot.)
Eine neue Erweiterung wurde veröffentlicht: Close Thread at Reply Count
Zitat:Allows you to have threads automatically closed upon reaching a certain amount of replies (which can be set in the settings). Please note this plugin will only close a thread when it is posted in (any thread not posted in will remain open).
The setting for this is located at the bottom of the Posting setting group (setting group 13 by default).
UPDATING
(Please see the change log for what the updates fixes)
v1.0.x -> v2.0.1: Deactivate, upload new files and reactivate.
v2.0.x -> v2.0.1: Overwrite old files, no need to deactivate.
Beiträge: 317
Themen: 20
Registriert seit: 10.10.2011
MyBB-Version: 1.6.9
Hallo,
es geht um folgendes Plugin:
http://mods.mybb.com/view/close-thread-at-reply-count
Code:
PHP-Code: <?php /** * Close Thread At Reply Count * Copyright 2010 Starpaul20 */
// Disallow direct access to this file for security reasons if(!defined("IN_MYBB")) { die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined."); }
// Tell MyBB when to run the hooks $plugins->add_hook("newreply_do_newreply_end", "closethread_run");
// The information that shows up on the plugin manager function closethread_info() { return array( "name" => "Close Thread At Reply Count", "description" => "Allows you to have threads automatically closed upon reaching a certain amount of replies.", "website" => "http://galaxiesrealm.com/index.php", "author" => "Starpaul20", "authorsite" => "http://galaxiesrealm.com/index.php", "version" => "2.0.1", "guid" => "0bfbf011f50e1ce3607433bdb3b8e9a0", "compatibility" => "16*" ); }
// This function runs when the plugin is activated. function closethread_activate() { global $db; $query = $db->simple_select("settinggroups", "gid", "name='posting'"); $gid = intval($db->fetch_field($query, "gid"));
$insertarray = array( 'name' => 'maxreplycount', 'title' => 'Maximum Number of Replies', 'description' => 'The maximum amount of replies that can be added to a thread before it is closed. 0 for unlimited.', 'optionscode' => 'text', 'value' => 1500, 'disporder' => 26, 'gid' => $gid ); $db->insert_query("settings", $insertarray);
rebuild_settings(); }
// This function runs when the plugin is deactivated. function closethread_deactivate() { global $db; $db->delete_query("settings", "name IN('maxreplycount')");
rebuild_settings(); }
// Closes the thread if it has more replies than setting function closethread_run() { global $mybb, $db; if($mybb->settings['maxreplycount'] > 0) { $query = $db->simple_select("posts", "COUNT(*) AS max_replies", "tid='".intval($mybb->input['tid'])."'"); $reply_count = $db->fetch_field($query, "max_replies");
if($reply_count-1 >= intval($mybb->settings['maxreplycount'])) { $closethread = array( "closed" => 1, ); $db->update_query("threads", $closethread, "tid='".intval($mybb->input['tid'])."'"); } } }
?>
So weit so gut, aber ich brauche es für bestimmte Benutzergruppen und Foren. In meinem Fall soll das Plugin nur reagieren, wenn die Benutzergruppen 11 & 12 in den Foren 6 & 7 etwas posten. Mir reicht eine PHP-Änderung. Muss also nicht unbedingt per ACP einstellbar sein. Ich wäre sehr dankbar, wenn mir dabei jemand helfen könnte.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Ohne es ausgiebig geprüft zu haben. Ersetze mal die Funktion
PHP-Code: // Closes the thread if it has more replies than setting function closethread_run() { global $mybb, $db; if($mybb->settings['maxreplycount'] > 0) { $query = $db->simple_select("posts", "COUNT(*) AS max_replies", "tid='".intval($mybb->input['tid'])."'"); $reply_count = $db->fetch_field($query, "max_replies");
if($reply_count-1 >= intval($mybb->settings['maxreplycount'])) { $closethread = array( "closed" => 1, ); $db->update_query("threads", $closethread, "tid='".intval($mybb->input['tid'])."'"); } } }
durch
PHP-Code: // Closes the thread if it has more replies than setting function closethread_run() { global $mybb, $db; $my_usergroup = array(11,12); $my_fid = array(6,7); if($mybb->settings['maxreplycount'] > 0 && in_array($mybb->usergroup['gid'], $my_usergroup) && in_array($fid, $my_fid)) { $query = $db->simple_select("posts", "COUNT(*) AS max_replies", "tid='".intval($mybb->input['tid'])."'"); $reply_count = $db->fetch_field($query, "max_replies");
if($reply_count-1 >= intval($mybb->settings['maxreplycount'])) { $closethread = array( "closed" => 1, ); $db->update_query("threads", $closethread, "tid='".intval($mybb->input['tid'])."'"); } } }
Beiträge: 317
Themen: 20
Registriert seit: 10.10.2011
MyBB-Version: 1.6.9
Danke Jockl, aber klappt nicht. Ich muss leider auch zugestehen dass ich hier einen grossen Gedankenfehler gemacht habe, so dass selbst wenn es klappen würde, alles so nicht zu gebrauchen ist. Folgendes:
Mir geht es darum, dass wenn ein Thema aus insgesamt 5 Beiträgen (4 Antworten) besteht, dass die Benutzergruppen 6 & 7 in den Foren 11 & 12 nicht mehr antworten können. Allerdings sollte nach wie vor das bearbeiten von Beiträgen möglich sein, was ja dann bei Schliessung des Themas nicht mehr geht. Wahrscheinlich ist es einfacher anstelle dieses Plugins anderen Code zu nutzen. Doch ich kann sowas leider nicht. Gewisse PHP Grundkenntnisse oder allgemeines Verständnis habe ich, aber sowas zu coden ist bei meinem Wissenstand noch nicht möglich. Vielleicht kann man das Plugin ja doch irgendwie für meinen Zweck anpassen. Keine Ahnung was jetzt leichter wäre. Könntest Du dabei helfen? Häng hier gerade echt in den Seilen
btw: Dachgeschoss und 30° in der Hütte, da will das Gehirn wohl nicht so arbeiten wie sonst
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Beiträge: 7.021
Themen: 4.708
Registriert seit: 06.12.2006
Eine neue Version wurde veröffentlicht: Close Thread at Reply Count 2.0.1
|