Seite 1 von 1

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

Verfasst: 14.10.2008 14:08
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

Verfasst: 14.10.2008 14:40
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).

Verfasst: 14.10.2008 15:13
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

Verfasst: 14.10.2008 17:55
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}

Verfasst: 14.10.2008 18:14
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.

Verfasst: 14.10.2008 18:20
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'],

Verfasst: 14.10.2008 18:37
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. :-?

Verfasst: 14.10.2008 19:04
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.

Verfasst: 14.10.2008 19:33
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.