Attachment Mod: erlaubte max. Dateigröße auslesen/anzeigen

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Attachment Mod: erlaubte max. Dateigröße auslesen/anzeigen

Beitrag von Dungeonwatcher »

Hi! 8)

In der php.ini wird ja mit max_upload_size global festgelegt wie groß ein Datei UL max. sein darf. Wie kann ich diesen Wert auslesen und im ACP (Attachment Einstellungen) unter Attachment Dateigrößen Einstellungen -> Dateigröße anzeigen lassen.

In diesen Einstellungen kann ich für Attachments nun aber einen anderen/kleineren Wert festlegen. Wie kann ich diesen Wert beim hinzufügen eines Attechments in eine Nachricht (posting.php) an diesen Text hinzufügen:
Wenn du auf "Attachment hinzufügen" klickst, dann siehst du eine Box zum Hinzufügen von Attachments.
Wenn du auf "gepostete Attachments" klickst, dann siehst du eine Liste der bereits hinzugefügten Attachments, du kannst sie dann nach Belieben editieren.
Wenn du ein Attachment ersetzen (Neue Version hochladen) möchtest, dann musst du beide Links anklicken. Füge das Attachment so hinzu wie du es normalerweise tun würdest, klicke aber nicht auf "Attachment hinzufügen", sondern klicke bei dem Attachment das du austauschen möchtest auf "Neue Version hochladen".
Es soll z.B. folgende Zeile hinzukommen:
Die Datei darf max. XXX MB groß sein.
Wobei XXX der im ACP eingestellte Wert im MB ist.

Bye
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag von StarWolf3000 »

PHP-Handbuch: ini_get()
Mittels dieser Funktion kannst du den Wert der Einstellung "max_upload_size" auslesen. Da dieser Befehl aber evtl. auf einigen Servern deaktiviert ist, musst du die Fehlerausgabe mit @ini_get() unterdrücken. Hinweis: Der Wert von ini_get("max_upload_size") wird als String zurückgegeben (bspw. "8M" für 8 MByte).
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Beitrag von Dungeonwatcher »

Hi! 8)

THNX, das habe ich so umgesetzt:

suche in der admin_attachments.php:

Code: Alles auswählen

'MAX_FILESIZE' => $new_attach['max_filesize'],[/b]
und füge danach ein:

Code: Alles auswählen

'MAX_UPLOAD_SIZE' => @ini_get('post_max_size') . b,
suche in der attach_manage_body.tpl:

Code: Alles auswählen

  <tr>
    <td class="row1" width="80%"><span class="explaintitle">{L_MAX_FILESIZE}</span><br /><span class="gensmall">{L_MAX_FILESIZE_EXPLAIN} </span></td>
    <td class="row2"><input type="text" size="8" maxlength="15" name="max_filesize" class="post" value="{MAX_FILESIZE}" /> {S_FILESIZE}</td>
  </tr>
und ersetze mit:

Code: Alles auswählen

  <tr>
    <td class="row1" width="80%"><span class="explaintitle">{L_MAX_FILESIZE}</span><br /><span class="gensmall">{L_MAX_FILESIZE_EXPLAIN} <b>{MAX_UPLOAD_SIZE}</b></span></td>
    <td class="row2"><input type="text" size="8" maxlength="15" name="max_filesize" class="post" value="{MAX_FILESIZE}" /> {S_FILESIZE}</td>
  </tr>
und zu guter Letzt suche in der lang_admin_attach.php:

Code: Alles auswählen

$lang['Max_filesize_attach_explain'] = 'Maximale Dateigr&ouml;&szlig;e f&uuml;r Attachments. Ein Wert von 0 bedeutet \'unbegrenzt\'. Diese Einstellung ist begrenzt durch die Server Konfiguration. Wenn z.B. in der PHP Konfiguration nur eine maximale Upload Gr&ouml;&szlig;e von 2 MB defniert ist, dann kann dieser Wert auch nicht vom Attachment Mod &uuml;berschritten werden.';
und ersetze mit:

Code: Alles auswählen

$lang['Max_filesize_attach_explain'] = 'Maximale Dateigr&ouml;&szlig;e f&uuml;r Attachments. Ein Wert von 0 bedeutet \'unbegrenzt\'. Diese Einstellung ist begrenzt durch die Server Konfiguration. Wenn z.B. in der PHP Konfiguration nur eine maximale Upload Gr&ouml;&szlig;e von 2 MB defniert ist, dann kann dieser Wert auch nicht vom Attachment Mod &uuml;berschritten werden.<br />Die max. Dateigr&ouml;&szlig;e auf diesem Server betr&auml;gt: ';
Das sieht dann bei meinem Server so aus:
Maximale Dateigröße für Attachments. Ein Wert von 0 bedeutet 'unbegrenzt'. Diese Einstellung ist begrenzt durch die Server Konfiguration. Wenn z.B. in der PHP Konfiguration nur eine maximale Upload Größe von 2 MB defniert ist, dann kann dieser Wert auch nicht vom Attachment Mod überschritten werden.
Die max. Dateigröße auf diesem Server beträgt: 500Mb
Bliebe jetzt noch Frage 2. :roll:

Bye
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag von StarWolf3000 »

Davon mal abgesehen, dass es so heißen muss:

Code: Alles auswählen

'MAX_UPLOAD_SIZE' => @ini_get('post_max_size') . 'b',
muss noch folgendes gemacht werden:

Öffne attach_mod/posting_attachments.php

Suche:

Code: Alles auswählen

'L_ATTACH_POSTING_CP_EXPLAIN'	=> $lang['Attach_posting_cp_explain'],
Füge danach ein:

Code: Alles auswählen

'L_ATTACH_MAX_FILESIZE'	=> sprintf($lang['Attach_max_filesize'], @ini_get('post_max_size')),
Öffne language/lang_german/lang_main_attach.php

Suche:
Füge davor ein:

Code: Alles auswählen

$lang['Attach_max_filesize'] = 'Die Datei darf max. %sB groß sein.';
Öffne templates/dein_template/posting_attach_body.tpl

Suche:

Code: Alles auswählen

{L_ATTACH_POSTING_CP_EXPLAIN}
Füge danach ein:

Code: Alles auswählen

<br />{L_ATTACH_MAX_FILESIZE}
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Beitrag von Dungeonwatcher »

StarWolf3000 hat geschrieben:Davon mal abgesehen, dass es so heißen muss:

Code: Alles auswählen

'MAX_UPLOAD_SIZE' => @ini_get('post_max_size') . 'b',
Aaaaahja. THNX. Es hat aber auch ohne die Hochkommas funktioniert. :roll:
muss noch folgendes gemacht werden:
Jupp, das funktioniert. Es ist aber nicht ganz das Gewünschte. Damit wird der Wert aus der PHP.INI angezeigt. Besser wäre es wenn der eingestellte Wert des Attachment Mods angezeigt wird, denn der ist ja nicht immer identisch.
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag von StarWolf3000 »

Dungeonwatcher hat geschrieben:Jupp, das funktioniert. Es ist aber nicht ganz das Gewünschte. Damit wird der Wert aus der PHP.INI angezeigt. Besser wäre es wenn der eingestellte Wert des Attachment Mods angezeigt wird, denn der ist ja nicht immer identisch.
Achso, na dann mach folgendes:

Öffne attach_mod/posting_attachments.php

Suche:

Code: Alles auswählen

'MAX_UPLOAD_SIZE' => @ini_get('post_max_size') . 'b',
Ersetze es damit:

Code: Alles auswählen

'MAX_UPLOAD_SIZE' => $attach_config['max_filesize'],
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Beitrag von Dungeonwatcher »

StarWolf3000 hat geschrieben:Achso, na dann mach folgendes:

Öffne attach_mod/posting_attachments.php

Ähm, nicht eher so?

Code: Alles auswählen

'L_ATTACH_MAX_FILESIZE' => sprintf($lang['Attach_max_filesize'], @ini_get('post_max_size')),
durch

Code: Alles auswählen

'L_ATTACH_MAX_FILESIZE' => sprintf($lang['Attach_max_filesize'], $attach_config['max_filesize']),
Damit wird der richtige Wert angezeigt. Jetzt fehlt nur noch die richtige Formatierung dieses Wertes, da er als Byte angezeigt wird?
Die Datei darf max. 524288000b groß sein!!!
Das müsste doch mit number_format zu machen sein, oder. Aber irgendwie stelle ich mich zu dämlich an. :-?
Zuletzt geändert von Dungeonwatcher am 14.10.2008 19:08, insgesamt 1-mal geändert.
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag von StarWolf3000 »

Ja klar. Wird aber komplizierter, da zusätzliche Zeilen darüber gesetzt werden müssen.

Über $template->assign_vars(array( einfügen:

Code: Alles auswählen

$max_file_size_string = "";
$max_file_size = $attach_config['max_filesize'];

$size_strings = array("Byte","KByte","MByte","GByte");
$size_counter = 0;
while ($max_file_size >= 1024)
{
	$size_counter++;
	$max_file_size = $max_file_size / 1024;
}
$max_file_size_string = number_format($max_file_size,($size_counter ? 2 : 0),",",".")." ".$size_strings[$size_counter];
Suche:

Code: Alles auswählen

'L_ATTACH_MAX_FILESIZE' => sprintf($lang['Attach_max_filesize'], $attach_config['max_filesize']),
Ersetze durch:

Code: Alles auswählen

'L_ATTACH_MAX_FILESIZE' => sprintf($lang['Attach_max_filesize'], $max_file_size_string),
Öffne language/lang_german/lang_main_attach.php
Suche:

Code: Alles auswählen

$lang['Attach_max_filesize'] = 'Die Datei darf max. %sB groß sein.';
Ersetze durch:

Code: Alles auswählen

$lang['Attach_max_filesize'] = 'Die Datei darf max. %s groß sein.';
Edit: hatte Tippfehler des $attach_config Arrays drin.
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Beitrag von Dungeonwatcher »

StarWolf3000 hat geschrieben:Ja klar. Wird aber komplizierter, da zusätzliche Zeilen darüber gesetzt werden müssen.
Oha, so kompliziert hatte ich mir das nicht vorgestellt. :o

Jetzt ist es perfekt. :)

RIESEN GROßES DANKESCHÖN.
Antworten

Zurück zu „phpBB 2.0: Mod Support“