Verfasst: Di 17. Jul 2007, 13:52
sorry wosch, da hatte ich wohl den falschen Quellcode im Auge... wollte dich keiner Geschlechtsumwandlung unterziehen
Das Diskussionsforum zum Open Source Content Management System
https://forum.contenido.org/
Ja das geht mir ähnlich , aber ich werde mir mal ein paar Gedanken machen. Erklär mir nur noch mal das mit der Versionierung genauer, wie du dir das genau vorstellst.rethus hat geschrieben:... momentan ist hier "Land unter"
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL
*
* Modulname : Download All v 1.0
* Author(s) : Marcel Bensch, info@marcelbensch.de
* Copyright : Marcel Bensch, www.marcelbensch.de
* http://www.contenido.de/forum/viewtopic.php?t=16786
* Created : 23.04.2007
* zur Templateversion umgebaut: 25.07.2007 von wosch
************************************************/
Modul um eine Downloadliste zu generieren, die unbegrenzt viele Files unterstützt und auf beide Dateisysteme zugreifen kann. Man kann einen speziellen Ordner auswählen oder den Inhalt aller Ordner anzeigen lassen die im Datenbankdateisystem liegen und im verzeichnis uploads/Downloads. Eingeblendet werden Symbol, Dateiname, Beschreibung und Größe. Für die richtige Funktionalität müssen alle Dateien über die Dateiverwaltung eingepflegt werden.
- Bug bei der Verlinkung gefixt
Code: Alles auswählen
?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : Download All v 1.0
* Author(s) : Marcel Bensch, info@marcelbensch.de
* Copyright : Marcel Bensch, www.marcelbensch.de
* Created : 23.04.2007
************************************************/
#Selected Download directory
$cms_dirname = "CMS_VALUE[1]";
$specificfolder = "CMS_VALUE[2]";
if ($cms_dirname == '' || $cms_dirname == '0') {
$cms_dirname = '--- Bitte wählen ---';
}
#Get paths
$sql = "SELECT
htmlpath, frontendpath
FROM
".$cfg["tab"]["clients"]."
WHERE
idclient = ".$client." ";
$db->query($sql);
if ($db->next_record()) {
$htmlpath = $db->f('htmlpath');
$frontendpath = $db->f('frontendpath');
}
#Choose image folder
echo '<table cellpadding="0" cellspacing="0" border="0">
<tr><td class="text_medium" style="padding:5px;"> <label>
<input name="CMS_VAR[2]" type="checkbox" value="1"';
if ( $specificfolder == "1") { echo 'checked';}
echo '/>Nur Dateien aus speziellem Verzeichnis anzeigen</label></td></tr>
<tr><td class="text_medium" style="padding:5px">';
echo '<select name="CMS_VAR[1]" style="width:200px">';
#Get upload directories
$sql = "SELECT DISTINCT
dirname
FROM
".$cfg["tab"]["upl"]."
WHERE
idclient='$client'
ORDER BY
dirname";
$db->query($sql);
$selected = false;
while ($db->next_record()) {
$dirname = $db->f('dirname');
if ($cms_dirname != $dirname) {
echo '<option value="'.$dirname.'"> '.$dirname.'</option>';
} else {
$selected = true;
echo '<option value="'.$dirname.'" selected="selected"> '.$dirname.'</option>';
}
}
if (!$selected) {
echo '<option value="0" selected="selected">'.i18n("Bitte wählen").'</option>';
} else {
echo '<option value="0">'.i18n("Bitte wählen").'</option>';
}
echo '</select> <input type="image" src="images/submit.gif">';
echo '</td></tr>';
echo '</table>';
?><?php
Code: Alles auswählen
<?php
/************************************************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Download All v 1.0
* Author(s) : Marcel Bensch, info@marcelbensch.de
* Copyright : Marcel Bensch, www.marcelbensch.de
* Created : 23.04.2007
* zur Templateversion umgebaut: 25.07.2007 von wosch
*************************************************************************/
// Überschriften im Template
$ugroesse = "Größe";
$uname = "Filename";
$utyp = "Typ";
$ubeschreibung = "Beschreibung";
// Template-Version
if (!is_object($tpl)) {
$tpl = new Template;
}
$tpl->reset();
$template = "download.html";
//Variablen werden festgelegt
$dirname = "CMS_VALUE[1]";
$specificfolder = "CMS_VALUE[2]";
$fileicon = array(
'*' => 'contenido/images/file.gif',
'bz2' => 'contenido/images/rarfile.gif',
'c' => 'contenido/images/cfile.gif',
'cpp' => 'contenido/images/cppfile.gif',
'doc' => 'contenido/images/docfile.gif',
'exe' => 'contenido/images/exefile.gif',
'h' => 'contenido/images/hfile.gif',
'htm' => 'contenido/images/htmfile.gif',
'html' => 'contenido/images/htmfile.gif',
'gif' => 'contenido/images/imgfile.gif',
'gz' => 'contenido/images/zipfile.gif',
'jpg' => 'contenido/images/imgfile.gif',
'js' => 'contenido/images/jsfile.gif',
'm' => 'contenido/images/mfile.gif',
'mp3' => 'contenido/images/mpgfile.gif',
'mpg' => 'contenido/images/mpgfile.gif',
'pdf' => 'contenido/images/filetypes/pdf.gif',
'png' => 'contenido/images/imgfile.gif',
'ppt' => 'contenido/images/pptfile.gif',
'rar' => 'contenido/images/rarfile.gif',
'swf' => 'contenido/images/swffile.gif',
'txt' => 'contenido/images/txtfile.gif',
'xls' => 'contenido/images/xlsfile.gif',
'zip' => 'contenido/images/filetypes/zip.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 con_upl WHERE dirname = 'dbfs:/' OR dirname LIKE 'dbfs:/%' OR dirname = 'downloads/' OR dirname LIKE 'downloads/%' ORDER BY filename";
} else {
$sql = "SELECT filename, description, filetype, size, dirname FROM con_upl WHERE dirname = '$dirname' ORDER BY filename";
}
//Datenbank abfragen
$db->query($sql);
//Tabelle und Überschriften generieren
$tpl->set('s', 'utyp', $utyp);
$tpl->set('s', 'uname', $uname);
$tpl->set('s', 'ubeschreibung', $ubeschreibung);
$tpl->set('s', 'ugroesse', $ugroesse);
// 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
$icon = '<img src="'.$fileicon[$filetype].'"/>';
$linktarget = "$linktarget$filename";
// $description wird direkt aus der Datenbank gelesen
// $printsize wird direkt aus der Datenbank gelesen
//Template mit Daten wird ausgegeben
$tpl->set('d', 'icon', $icon);
$tpl->set('d', 'beschreibung', $description);
$tpl->set('d', 'href', $linktarget);
$tpl->set('d', 'name', $filename);
$tpl->set('d', 'groesse', $printsize);
$tpl->next();
}
$tpl->generate('templates/'.$template);
// Der Query wird geleert und die Datenbankverbindung geschlossen
$db->free();
?>
Code: Alles auswählen
<table border="1" width="400" cellspacing="0" cellpadding="5">
<tr>
<td> {utyp} </td>
<td> {uname} </td>
<td> {ubeschreibung} </td>
<td> {ugroesse} </td>
</tr>
<!-- BEGIN:BLOCK -->
<tr>
<td valign="top">{icon}</td>
<td valign="top"><a href="{href}">{name}</a></td>
<td valign="top">{beschreibung}</td>
<td valign="top">{groesse}</td>
</tr>
<!-- END:BLOCK -->
</table>
Du mußt die Dateien über die Datenvewaltung hochladen,Jamest hat geschrieben:1. Woher holt sich das Modul die Beschreibung, oder anders gesagt, wie kann ich die definieren.?
Nein, das kann dieses Modul nicht.Jamest hat geschrieben:2. Kann ich das mit diesem Modul auch so handeln, das nur eingeloggte user die dateien herunterladen können? wenn ja, wie genau mach ich das?
Vorsicht!Dann mußt du das Modul von tinof verwenden, das sollte es können