Seite 1 von 1
Attachment Mod: erlaubte max. Dateigröße auslesen/anzeigen
Verfasst: 14.10.2008 14:08
von Dungeonwatcher
Hi!
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!
THNX, das habe ich so umgesetzt:
suche in der
admin_attachments.php:
und füge danach ein:
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öß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.';
und ersetze mit:
Code: Alles auswählen
$lang['Max_filesize_attach_explain'] = '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.<br />Die max. Dateigröße auf diesem Server beträ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.
Bye
Verfasst: 14.10.2008 17:55
von StarWolf3000
Davon mal abgesehen, dass es so heißen muss:
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:
Füge danach ein:
Verfasst: 14.10.2008 18:14
von Dungeonwatcher
StarWolf3000 hat geschrieben:Davon mal abgesehen, dass es so heißen muss:
Aaaaahja. THNX. Es hat aber auch ohne die Hochkommas funktioniert.
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:
Ersetze es damit:
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.
Jetzt ist es perfekt.
RIESEN GROßES DANKESCHÖN.