suche: con_blabla -> ersetze cms_blablakreativsteffi hat geschrieben:Wie wäre denn der genaue code? pls
Ansonsten frag doch Mario, der sollte es doch wissen, den der hat ja cms_ als Prefix genommen.
Mfg,Output Version 1.2:Code: Alles auswählen
<?php /************************************************************************ * CONTENIDO MODUL - OUTPUT * * Modulname : Download All v 1.2 * Author(s) : Marcel Bensch * Copyright : Marcel Bensch, www.marcelbensch.de * Created : 23.04.2007 *************************************************************************/ //Variablen werden festgelegt $dirname = "CMS_VALUE[1]"; $specificfolder = "CMS_VALUE[2]"; $fileicon = array( '*' => 'images/file.gif', 'bz2' => 'images/rarfile.gif', 'c' => 'images/cfile.gif', 'cpp' => 'images/cppfile.gif', 'doc' => 'images/docfile.gif', 'exe' => 'images/exefile.gif', 'h' => 'images/hfile.gif', 'htm' => 'images/htmfile.gif', 'html' => 'images/htmfile.gif', 'gif' => 'images/imgfile.gif', 'gz' => 'images/zipfile.gif', 'jpg' => 'images/imgfile.gif', 'js' => 'images/jsfile.gif', 'm' => 'images/mfile.gif', 'mp3' => 'images/mpgfile.gif', 'mpg' => 'images/mpgfile.gif', 'pdf' => 'images/pdffile.gif', 'png' => 'images/imgfile.gif', 'ppt' => 'images/pptfile.gif', 'rar' => 'images/rarfile.gif', 'swf' => 'images/swffile.gif', 'txt' => 'images/txtfile.gif', 'xls' => 'images/xlsfile.gif', 'zip' => 'images/zipfile.gif', ); // Abfrage ob ein spezielles Verzeichnis verwendet wird if ( $specificfolder == '1' ) { $dir = $dirname; } else { $dirname = '0';} // Datenbankabfrage generieren if ($dirname == "0") { $sql = "SELECT filename, description, filetype, size, dirname FROM ".$cfg["tab"]["upl"]." WHERE dirname = 'dbfs:/' OR dirname LIKE 'dbfs:/%' OR dirname = 'downloads/' OR dirname LIKE 'downloads/%' ORDER BY idupl"; } else { $sql = "SELECT filename, description, filetype, size, dirname FROM ".$cfg["tab"]["upl"]." WHERE dirname = '$dirname' ORDER BY idupl"; } //Datenbank abfragen $db->query($sql); //Tabelle und Überschriften generieren echo '<table width="600" cellspacing="5"><tr style="color:white; background-color:#00377d; font-face:verdana; size: 10pt; font-weight:bold;"> <td> Typ </td> <td> Name </td> <td> Beschreibung </td> <td> Größe </td> </tr>'; // Daten aus Datenbank auslesen while ($db->next_record()) { $filename = $db->f('filename'); //--> Dateiname wird ausgelesen $description = $db->f('description'); //--> Dateibeschreibung wird ausgelesen $description = urldecode($description); //--> Dateibeschreibung wird in HTML konvertiert $filetype = $db->f('filetype'); //--> Dateityp wird ausgelesen $size_ = $db->f('size'); //--> Dateigröße wird ausgelesen $dirs = $db->f('dirname'); //--> Es werden die Verzeichnisse des Querys ausgelesen für den Fall, das kein spezielles definiert wurde // Dateigröße wird gerundet und als kb oder MB ausgeben $size = round($size_/1000, 2); if ($size >= 1000) { $size = round($size/1000, 2); $printsize = $size.' MB'; } else { $printsize = $size.' kb';} // Es wird überprüft ob ein spezielles Verzeichnis angegeben wurde, // dann wird selektiert nach Dateien aus dem Datenbanksystem und Dateien // aus dem normalen Filesystem und dann werden die Links generiert if ($dirname == '0'){ if ($dirs == 'dbfs:/'){ $linktarget = 'dbfs.php?file=dbfs:/'; } else {$linktarget = 'upload/'.$dirs;} } else { if ($dir == 'dbfs:/'){ $linktarget = 'dbfs.php?file=dbfs:/';} else { $linktarget = 'upload/'.$dir;} } // Der Code für den letztendlichen download wird ausgegeben echo '<tr><td valign="top"><img src="'.$fileicon[$filetype].'"/></td> <!-- Icon wird ausgegeben --> <td valign="top"><a href="'.$linktarget.$filename.'">'.$filename.'</a></td> <!-- Dateiname mit Link wird ausgegeben --> <td valign="top">'.$description.'</td> <!-- Dateibeschreibung wird ausgegeben ---> <td valign="top">'.$printsize.'</td>',"\n"; //Dateigröße wird ausgegeben } // Die Tabelle wird abgeschlossen echo '</tr></table>'; // Der Query wird geleert und die Datenbankverbindung geschlossen $db->free(); ?>
Code: Alles auswählen
if ($dirname == '0'){
if ($dirs == 'dbfs:/'){
$linktarget = 'dbfs.php?file=dbfs:/';
} else {$linktarget = 'upload/'.$dirs;}
} else {
if ($dir == 'dbfs:/'){
$linktarget = 'dbfs.php?file=dbfs:/';}
else { $linktarget = 'upload/'.$dir;}
}
Code: Alles auswählen
if ($dirname == '0'){
if ($dirs == 'dbfs:/'){
$linktarget = 'dbfs.php?file=dbfs:/';
} else {$linktarget = 'dbfs.php?file='.$dirs;}
} else {
if ($dir == 'dbfs:/'){
$linktarget = 'dbfs.php?file=dbfs:/';}
else { $linktarget = 'dbfs.php?file='.$dir;}
}
Code: Alles auswählen
$regex = "/^dbfs:\//";
if ($dirname == '0'){
if (preg_match($regex, $dirs){
$linktarget = 'dbfs.php?file='.$dirs;
} else {$linktarget = 'upload/'.$dirs;}
} else {
if (preg_match($regex, $dir){
$linktarget = 'dbfs.php?file='.$dir;}
else { $linktarget = 'upload/'.$dir;}
}
Code: Alles auswählen
$regex = "/^dbfs:\//";
if ($dirname == '0'){
if (preg_match($regex, $dirs)){
$linktarget = 'dbfs.php?file='.$dirs;
} else {$linktarget = 'upload/'.$dirs;}
} else {
if (preg_match($regex, $dir)){
$linktarget = 'dbfs.php?file='.$dir;}
else { $linktarget = 'upload/'.$dir;}
}
rok°! hat geschrieben:Hallo!
Ich habe das Modul komplett umgeschrieben und auf meine Bedürfnisse angepasst (im Grunde hab ich nur noch das Icon-Set benutzt) + das Icon für einen Ordner.
Jetzt wird eine Liste der Dateien und Unterverzeichnisse eines ausgewählten Verzeichnisses direkt aus dem Dateisystem heraus generiert. Das Verzeichnis kann man frei wählen.
Die Unterverzeichnisse sind einzeln durchsuchbar. Damit man nicht verloren geht, gibt es noch eine Breadcrumb-Navi durch die Verzeichnisebene.
Da die Unterverzeichnisse mittels Parameter übergeben werden, sehe ich da noch ein Sicherheitsloch, welches auf jeden Fall noch gehärtet werden muss. Ich mach das momentan nur mittels Umwandlung in ein base64 kodierten String + Überprüfung auf Vorkommen von "..".
Wäre super, wenn da jemand noch eine Idee hat das sicherer zu gestalten.
Das Modul gibt es hier zum Download (XML).
Du bist hier im falschen Thread.flow hat geschrieben:Hi,
habe mir nun alles 10x durchgelesen und angeschaut, aber irgendwie stehe ich aufm Schlauch - bekomme immer "Falsche Parameterübergabe".
...
Irgendwo habe ich was grundsätzlich falsch verstanden? Danke für Eure Bemühungen.
Logisch.flow hat geschrieben:Wenn ich nun dem Baum als Template Artikel List Advanced 1.4 zuweise, wird nur Headline + Text gelistet - die Downloads sind nicht da.
...
Ich denke das ein grundsätzliches Verständnisproblem. Oder sollte ich mal beim Programmierer vom Artikel Listing Modul nachfragen?