Seite 2 von 2
Re: Dateianhänge in Abhängigkeit von erstellten Beiträgen
Verfasst: 16.03.2014 16:29
von Miriam
Irgendwie sehe ich keinen Widerspruch zwischen der anfänglich dargelegten Anforderung und der später hinzugefügten beispielhaften Umsetzungsidee für die Staffelung der Einstellungsmöglichkeiten in Abhängigkeit von der Beitragszahl.
Re: Dateianhänge in Abhängigkeit von erstellten Beiträgen
Verfasst: 16.03.2014 16:38
von Elsensee
Es gibt schon einen Unterschied wenn man zwei Dateien pro Tag oder pro Beitrag hochladen darf.

Es sei denn man erstellt generell nur einen Beitrag pro Tag.

Re: Dateianhänge in Abhängigkeit von erstellten Beiträgen
Verfasst: 16.03.2014 16:40
von redbull254
Hallo Elsensee,
die unterschiedlichen Angaben kommen dadurch zustande, dass ich die Möglichkeiten für die Entwickler nicht zu eng stecken wollte und ich auf eine Frage geantwortet habe. Es geht mir darum, dass ich die Anzahl Bilder, die jemand hoch laden kann, begrenzen kann. Der, der fleißig Beiträge erstellt, darf mehr Bilder in Themen einstellen als der, der wenig Beiträge erstellt. Es gibt Leute, die setzen 8-9 Bilder in ein Thema rein, schreiben aber außer eigenen Themen nichts mehr. Das will ich unterbinden. Schreibt jemand viele Beiträge in Fremdthemen, darf er auch viele Bilder hoch laden. Ich glaube aber langsam, dass dies alles viel zu kompliziert wird, wenn mn dass für einzelne Mitglieder regeln will. Das wäre wohl sinnvoller mit Gruppenrechten.
Re: Dateianhänge in Abhängigkeit von erstellten Beiträgen
Verfasst: 16.03.2014 19:04
von Elsensee
Hm okay.. nach kurzer Lektüre des Codes ist es ganz einfach, die Anzahl der Dateianhänge pro User auf die jeweilige Beitragsanzahl pro Beitrag zu begrenzen.
Heißt:
Hat User x 30 Beiträge geschrieben, so darf er maximal 30 Beiträge im Beitrag verwenden:
Öffne: includes/message_parser.php
Finde:Code: Alles auswählen
$cfg['max_attachments'] = ($is_message) ? $config['max_attachments_pm'] : $config['max_attachments'];
Ersetze mit:Code: Alles auswählen
$cfg['max_attachments'] = ($is_message) ? $config['max_attachments_pm'] : min($config['max_attachments'], $user->data['user_posts']);
Ja, es ist echt nur diese Zeile.

Die Beschränkung findet nur in Beiträgen (nicht in PMs) statt. Sie bewirkt, dass der User maximal so viele Dateianhänge pro Beitrag posten darf, wie er Beiträge geschrieben hat, aber nie mehr als die maximal erlaubte Anzahl an Dateianhängen pro Beitrag.
Beispiele:
Boardweite Einstellung für die maximale Anzahl an Dateianhängen : 30
Beiträge geschrieben : 15
Dateianhänge pro Beitrag erlaubt für den User : 15
Boardweite Einstellung für die maximale Anzahl an Dateianhängen : 10
Beiträge geschrieben : 2000
Dateianhänge pro Beitrag erlaubt für den User : 10
Alles andere wäre ja auch zu absurd.
Wenn du es anders haben möchtest, sag Bescheid.

Re: Dateianhänge in Abhängigkeit von erstellten Beiträgen
Verfasst: 16.03.2014 20:26
von redbull254
Es geht mir nicht darum, wie viel Dateianhänge ein Mitglied in ein Thema/Beitrag als solches rein laden darf, sondern wie viele Dateianhänge (Bilder) er/sie in Abhängigkeit seiner/ihrer Anzahl Beiträge im gesamten Board /Forum) einstellen darf.
Wer 100 Beiträge erstellt hat, darf in
X Themen mit
X Beiträgen maximal 50 Bilder einstellen. Die Zahlenwerte können natürlich variieren. Idealerweise würde es über die Gruppenzugehörigkeit geregelt, auch die selbst erstellten Gruppen berücksichtigend. Die jetzigen Einstellungen besagen ja nur, wie viel Bilder in ein Beitrag eingestellt werden dürfen. Manche Mitglieder laden auch ihre Bilder in Fremd-Themen rein und nicht nur in ihre eigenen Themen. Aus diesem Grund wäre es gut, wenn man die Gesamtanzahl von Bildern je Gruppe einstellen könnte, unabhängig davon, wer das Startthema erstellt hat. Jede Gruppe hat ein bestimmtes Hochlade-Kontingent an Bildern. Will man mehr Bilder hoch laden, als die aktuelle Gruppe hergibt, muss man durch das Mehrerstellen von Beiträgen dafür sorgen, dass man in die nächste Gruppe kommt. Ich habe glaube, dass man die Mod "Auto-Groups 1.0.2
https://www.phpbb.com/community/viewtopic.php?t=770205 gut als Basis für die neue Mod nutzen könnte. Man muss ja nicht immer das Rad neu erfinden.
Ich hoffe, ich konnte mich verständlich machen. Es ist immer schwer, durch Beiträge seine Ideen zu vermitteln.

Re: Dateianhänge in Abhängigkeit von erstellten Beiträgen
Verfasst: 16.03.2014 21:22
von HabNurNeFrage
Hi,
als Basis könnte auch diese Mod dienen:
https://www.phpbb.com/community/viewtop ... 0&t=574960
Die kann den Upload-Speicherplatz pro Gruppe limitieren.
Wahrscheinlich ist es nicht sehr aufwendig, die so umzumodeln, dass anstelle des maximalen Speicherplatzes eine maximale Anzahl eingestellt werden kann.
LG
Re: Dateianhänge in Abhängigkeit von erstellten Beiträgen
Verfasst: 30.03.2014 17:41
von Elsensee
Okay... mal sehen... Sollte ja eigentlich nicht so schwer sein...
Probieren wir's noch einmal:
Öffne: includes/message_parser.php
Finde:
Davor einfügen:Code: Alles auswählen
$sql = 'SELECT COUNT(poster_id) AS num_attachments
FROM ' . ATTACHMENTS_TABLE . '
WHERE poster_id = ' . (int) $user->data['user_id'];
$result = $db->sql_query($sql);
$posted_attachments = $db->sql_fetchfield('num_attachments');
$db->sql_freeresult($result);
Finde:Code: Alles auswählen
$cfg['max_attachments'] = ($is_message) ? $config['max_attachments_pm'] : $config['max_attachments'];
Ersetze mit:Code: Alles auswählen
$cfg['max_attachments'] = ($is_message) ? $config['max_attachments_pm'] : min($config['max_attachments'], $user->data['user_posts']);
Finde:Code: Alles auswählen
if ($num_attachments < $cfg['max_attachments'] || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
Ersetze mit:Code: Alles auswählen
if (($posted_attachments + $num_attachments) < $cfg['max_attachments'] || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
Das sollte es gewesen sein. So ist es nun nicht mehr möglich mehr Dateianhänge hochzuladen, als es die User-Beiträge ODER die Board-Einstellung erlaubt. (Für das Beispiel siehe den oberen Post:
viewtopic.php?p=1319971#p1319971)
Ich sage lieber nochmal:
Ungetestet! aber von der Logik her sollte es passen.
Ich hoffe, es passt nun so.

Re: Dateianhänge in Abhängigkeit von erstellten Beiträgen
Verfasst: 06.04.2014 15:21
von Elsensee
Okay.. mist..
Hatte nen kleinen Fehler in meiner Logik... Oder auch zwei...
Die hinzugefügte SQL-Abfrage samt dem anderen Zeugs
Code: Alles auswählen
$sql = 'SELECT COUNT(poster_id) AS num_attachments
FROM ' . ATTACHMENTS_TABLE . '
WHERE poster_id = ' . (int) $user->data['user_id'];
$result = $db->sql_query($sql);
$posted_attachments = $db->sql_fetchfield('num_attachments');
$db->sql_freeresult($result);
muss folgendermaßen verändert werden:
Code: Alles auswählen
$posted_attachments = 0;
if (!$is_message)
{
$sql = 'SELECT COUNT(poster_id) AS num_attachments
FROM ' . ATTACHMENTS_TABLE . '
WHERE in_message = 0
AND poster_id = ' . (int) $user->data['user_id'];
$result = $db->sql_query($sql);
$posted_attachments = $db->sql_fetchfield('num_attachments');
$db->sql_freeresult($result);
]
Dies bewirkt, dass nur Anhänge aus Beiträgen - nicht aus PNs - gezählt werden.
Außerdem muss die Zeile:
Code: Alles auswählen
$cfg['max_attachments'] = ($is_message) ? $config['max_attachments_pm'] : $config['max_attachments'];
wieder so hergestellt werden.
Dafür muss dann diese
Original-Zeile:
Code: Alles auswählen
if ($num_attachments < $cfg['max_attachments'] || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
mit folgendem ersetzt werden:
Code: Alles auswählen
$may_post_attachments = $num_attachments < $cfg['max_attachments'] && ((!$is_message) ? ($posted_attachments + $num_attachments) < $user->data['user_posts'] : true);
if ($may_post_attachments || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
Und nun sollte endlich alles gehen!
