@ p190
So also das Script ist jetzt fertig.
Um den ungewollten Abbruch beim FTP-Upload bei zu großen Bildern zu verhindern, musst du folgende Zeilen (794-796) in der Datei admin.ponygallery.php suchen:
PHP-Code:
case 'ftpuploadhandler':
global $create_special_gif;
require_once($mosConfig_absolute_path.'/administrator/components/com_ponygallery/config.ponygallery.php');
und dahinter diesen Code einfügen:
PHP-Code:
$max_byte = '1000000';// in Byte
$max_breite = '2000'; // in px # nur wirksam, wenn $max_byte = ''
$max_hoehe = '2000'; // in px # nur wirksam, wenn $max_byte = ''
$sonst_weiter = '1'; // '0' oder '1' # sollen die nicht zu grossen Bilder bearbeitet werden?
$bild_zu_gross = array();
$mitteilung = array();
$ftpfiles_new = array();
$i = 0;
foreach($ftpfiles as $screenshot_name)
{
$screenshot = $mosConfig_absolute_path. $ag_pathftpupload . $subdirectory . screenshot_name;
$bilddaten = getimagesize($screenshot);
$bild_byte = filesize($screenshot);
$zwischen_ausgabe = $screenshot_name.'<br />Breite: '.$bilddaten[0].'px<br />Höhe: '.$bilddaten[1].'px<br />';
$zwischen_ausgabe .= 'Dateigröße: '.$bild_byte.' Byte<br /><br />';
echo $zwischen_ausgabe; // nur bei PHP-Fehlermeldung und Abbruch des Scripts sichtbar
if($max_byte == '')
{
if($bilddaten[0]>$max_breite OR $bilddaten[1]>$max_hoehe)
{
$bild_zu_gross[] = true;
$mitteilung[] = 'Das Bild '.$screenshot_name.' ist zu groß.';
}
else
{
$bild_zu_gross[] = false;
$ftpfiles_new[] = $screenshot_name;
if($sonst_weiter == '1')
{
$mitteilung[] = 'Das Bild '.$screenshot_name.' wurde bearbeitet.';
}
}
}
else
{
if($bild_byte>$max_byte)
{
$bild_zu_gross[] = true;
$mitteilung[] = 'Das Bild '.$screenshot_name.' ist zu groß.';
}
else
{
$bild_zu_gross[] = false;
$ftpfiles_new[] = $screenshot_name;
if($sonst_weiter == '1')
{
$mitteilung[] = 'Das Bild '.$screenshot_name.' wurde bearbeitet.';
}
}
}
}
$mosmsg = implode('</li><li>',$mitteilung);
if(in_array(true,$bild_zu_gross) AND $sonst_weiter != '1')
{
pony_mosRedirect("index2.php?option=com_ponygallery&act=ftpupload", $mosmsg);
}
$ftpfiles = $ftpfiles_new;
Dabei musst du die ersten vier Zeilen mit deinen persönlichen Wünschen und Werten deiner Erfahrung nach anpassen. In der ersten Zeile wird die maximale Dateigröße eines Bildes festgesetzt, bei der der Upload noch nicht unterbrochen werden soll. Alternativ kannst du das auch mit der Auflösung eines Bildes festlegen. Dazu musst du dann aber der Variablen $max_byte einen leeren String zuweisen. Die Variable $sonst_weiter legt fest, ob bei einem gefundenen, zu großen Bild die restlichen Bilder trotzdem bearbeitet werden sollen ('1') oder nicht ('0'). In beiden Fällen wird das zu große Bild nicht aus dem Upload-Ordner gelöscht und dir mitgeteilt wie es heißt.
Das Ganze funktioniert auch bei mehreren zu großen Bildern.
Außerdem fehlt dann noch eine kleine Änderung in Zeile 968:
PHP-Code:
if($bugtest!=1) {
pony_mosRedirect("index2.php?option=com_ponygallery&act=ftpupload");
}
break;
nach der Weiterleitung soll nämlich noch eine kleine Nachricht angezeigt werden:
PHP-Code:
if($bugtest!=1) {
pony_mosRedirect("index2.php?option=com_ponygallery&act=ftpupload", $mosmsg);
}
break;
EDIT: Falls das Einfügen dieses Codes zu Problemen führt, habe ich die überarbeitete admin.ponygallery.php Datei zum Überschreiben an diesen Beitrag noch angehängt.
@ JesterRAD
das liegt wahrscheinlich an einem klitzkleinen Fehler im Code.
Bitte such mal in der Datei common.ponygallery.php in /administrator/components/com_ponygallery/
die Funktion copyFile:
PHP-Code:
function copyFile($srcFile, $destPath, $destName) {
$srcFileCopy = $destPath . '' . $destName;
if (copy($srcFile, $srcFileCopy)) {
return true;
} else {
return false;
}
}
dort fehlt ein Slash zwischen den Anführungszeichen:
PHP-Code:
function copyFile($srcFile, $destPath, $destName) {
$srcFileCopy = $destPath . '/' . $destName;
if (copy($srcFile, $srcFileCopy)) {
return true;
} else {
return false;
}
}
EDIT: seit dem 1.07.08 ist dieser Fehler auch im Zip des ersten Beitrags behoben.
@ stoni81
da es keine offizielle (also von den Enwicklern der Pony programmierte ) Version der PonyGallery ML für Joomla 1.5 gibt, gibt es leider auch noch kein Modul, speziell für die Pony für die neue Joomla Version, aber ich hatte sowieso vor das Modul "PonyImages Version 1.0.4" zu portieren. Ich hoffe es dauert nicht mehr allzu lange.
Gruß
Chraneco
Lesezeichen