Seite 2 von 6

Verfasst: Di 17. Jul 2007, 13:52
von rethus
sorry wosch, da hatte ich wohl den falschen Quellcode im Auge... wollte dich keiner Geschlechtsumwandlung unterziehen :lol:

Template Version

Verfasst: Di 17. Jul 2007, 18:47
von wayfearer
Alsoooo, erst mal wieder Danke für das Feedback:

Zur kommenden Version:

- Wird komplett auf Templates basierend
- Eingebauter Downloadcounter mit Hottest Download Funktion
- Anpassbarer Iconpfad für individuelle Icons
- Autoupdate der DB für FTP-Uploads
- Allgemeine Bugfixe und Verbesserungen

Wer sonst noch Ideen und Anregungen hat bitte posten, Hilfe auch gerne gesehen. Also wosch, wenn du willst mach du schonmal ne Templateversion draus und poste mal hier, wäre echt cool.

Wie lange ich noch brauche kann ich nicht genau sagen, da ich zur Zeit voll im Bewerbungsstress bin muss mal sehen das ich endlich ein Job bekommen und wenn das alles in trockenen Tüchern ist dann wird das auch nicht mehr lange dauern.


Mfg,

Marcel

Verfasst: Mi 18. Jul 2007, 15:31
von rethus
Also ich bin auf dein Modul erst gestoßen, weil ich danach gesucht habe: http://contenido.org/forum/viewtopic.ph ... highlight=

Vielleicht findest du da ja noch ein paar Anreungen, was man mit aufnehmen kann.

Bei der Umsetzung in die Richtung unterstütze ich dich gerne, sobald ich wieder etwas Luft hab... momentan ist hier "Land unter" :D

Verfasst: Mi 18. Jul 2007, 15:47
von wayfearer
rethus hat geschrieben:... momentan ist hier "Land unter" :D
Ja das geht mir ähnlich :P , 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.

Marcel

Download-Verzeichnis auswählen

Verfasst: Do 19. Jul 2007, 10:39
von greenhorn2006
Kompliment - Super Modul - Vielen Dank!

Nun habe ich noch eine Frage zur Verzeichnisauswahl. Wenn ich das Drop-Down-Menü anklicke, dann zeigt es bei mir nur 14 Verzeichnisse an, obwohl ich über 20 habe. Wie kann ich eines der restlichen Verzeichnisse als Downloadverzeichnis festlegen?

Verfasst: Do 19. Jul 2007, 11:21
von Dalamar
Indem Du über die Dateiverwaltung das Verzeichnis anwählst und mind. eine Datei reinlegst. Dann sollten die Verzeichnisse auch auswählbar sein.

Verfasst: Do 19. Jul 2007, 11:28
von greenhorn2006
Perfekt! Vielen Dank.

Verfasst: Do 19. Jul 2007, 12:00
von rethus
Mit der Versionierung ist es folgendermaßen gemeint:

1. Möglichkeit:
Ideal wäre eine Versionierung natürlich direkt in der Dateiverwaltung.
Wenn man z.B. einen Zusatzlink bei der Dateiübersicht hat (hinter jeder Datei) - z-B- "neue Version". Wenn man darauf klickt, kann man von dieser Datei eine neue version hochladen... müsste halt irgendwie intern verknüpft werden.
Standardmäßig wird dann immer die neuste Version der Datei ausgegeben, und - über ne bestimmte Funktion (oder Modul) könnte man dann auf Wunsch auch die ältere Version einer Datei ausgeben.
Sowas müsste aber als so na Art AddOn zur Dateiverwaltung programmiert werden denke ich.

2. Möglichkeit:
Man wählt in einem Versionierungs-Modul mehrere Dateien aus der Dateiverwaltung aus, und kann diese in bestimmter Reihenfolge miteinander verknüpfen. Vielleicht noch entsprechende Hinweistexte zu jeder Version hinterlegen.

Verfasst: Di 24. Jul 2007, 15:32
von roverman
Hallo,

Erst mal, danke für dein Super Modul!

Ich habe aber noch eine kleine Frage:

mann kann ja für jede Datei in der Dateiverwaltung einen "Medienname" angeben. Ich würde gerne bei der ausgegeben liste nun diesen Medienname verwenden statt der Filename (sieht schöner aus..).
hat jemand einen Typ für mich wie ich dies anzeigen kann?
der meidienname ist ja in der con_properties abgelegt, doch wie komme ich da einfach ran?





danke

Remco

Verfasst: Mi 25. Jul 2007, 14:50
von wosch
So, hier eine Template-Version.

Diese Version basiert auf die 1. Version von wayfearer.
Obwohl ich am Input nichts verändert habe hier trotzdem (und sicherheitshalber) auch der Input.

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 
Modul Input:

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&auml;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.'">&nbsp;'.$dirname.'</option>'; 
   } else { 
      $selected = true; 
      echo '<option value="'.$dirname.'" selected="selected">&nbsp;'.$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>&nbsp;<input type="image" src="images/submit.gif">'; 
echo '</td></tr>'; 
echo '</table>'; 
?><?php
Modul Output:

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.'&nbsp;MB'; } 
else { $printsize = $size.'&nbsp;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(); 

?>
Das Modul-HTML-Template - Name: download.html

Code: Alles auswählen

<table border="1" width="400" cellspacing="0" cellpadding="5">
<tr>
<td>&nbsp;{utyp}&nbsp;</td>
<td>&nbsp;{uname}&nbsp;</td>
<td>&nbsp;{ubeschreibung}&nbsp;</td>
<td>&nbsp;{ugroesse}&nbsp;</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>
Zum Output noch ein Hinweis, ich habe die Grafik-Icon aus dem Contenido-Verzeichnis genommen, wer ein separates Verzeichnis möchte muß den Pfade entsprechend abändern.

Verfasst: Do 26. Jul 2007, 14:20
von wayfearer
Super sache, danke wosch !!!

Verfasst: Fr 27. Jul 2007, 12:32
von rok°!
Hallo!
Super Modul! Vielen Dank!
Ich hätte da noch einen Wunsch/Vorschlag:

Momentan werden alle Dateien auch aus den Untervereichnissen angezeigt. Könnte man das Modul nicht so bauen, dass man selbst durch die Verzeichnisse navigiert?

Verfasst: Do 2. Aug 2007, 14:49
von Jamest
Hallo zusammen,

erstmal tolles Modul, aber dann gleich dazu zwei Fragen:

1. Woher holt sich das Modul die Beschreibung, oder anders gesagt, wie kann ich die definieren.?

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?

Danke im voraus.

Grüße

Jamest

Verfasst: Do 2. Aug 2007, 14:55
von wosch
Jamest hat geschrieben:1. Woher holt sich das Modul die Beschreibung, oder anders gesagt, wie kann ich die definieren.?
Du mußt die Dateien über die Datenvewaltung hochladen,
Und dort gibt es eine Maske wo du alle Angaben, also auch die Beschreibung, eingeben kannst.
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?
Nein, das kann dieses Modul nicht.
Dann mußt du das Modul von tinof verwenden, das sollte es können:
http://www.contenido.de/forum/viewtopic.php?t=17769

Verfasst: Do 2. Aug 2007, 15:16
von tinof
Dann mußt du das Modul von tinof verwenden, das sollte es können
Vorsicht!
In der gegenwärtigen Version liest das Modul ausschließlich die Informationen (Dateinamen, Größe usw.) aus einem (beliebigen) Ordner iim Filesystem.
Eine Verknüpfung mit der Contenido - Dateiverwaltung ist derzeit nicht implementiert. Das Auslesen der Download - Beschreibung ist leider nicht möglich.

Grüße
Tino