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.