MODUL :: Typ: Content :: Name: Download All v 1.1

wosch

Beitrag von wosch » So 4. Nov 2007, 15:04

kreativsteffi hat geschrieben:Wie wäre denn der genaue code? pls
suche: con_blabla -> ersetze cms_blabla
Ansonsten frag doch Mario, der sollte es doch wissen, den der hat ja cms_ als Prefix genommen.

kreativsteffi
Beiträge: 40
Registriert: Di 13. Mär 2007, 14:21
Wohnort: Jena
Kontaktdaten:

Beitrag von kreativsteffi » So 4. Nov 2007, 15:53

ich soll das einfach in der DB umschreiben? was ist, wenn das noch gebraucht wird? oder nicht? heißt ja bei mir alles cms_blabla und nicht con_blabla?

weil im code finde ich wirklich nur:
$cms_dirname = "CMS_VALUE[1]";
$specificfolder = "CMS_VALUE[2]";

if ($cms_dirname == '' || $cms_dirname == '0') {
$cms_dirname = '--- Bitte wählen ---';
}

hätte gedacht das wäre richtig, aber ist es ja nicht.
warum heißt das bei euch con_blabla und nicht bei mir? ahhh :(

wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer » Mo 5. Nov 2007, 11:12

ich schreib dir das grade um gib mir ein wenig zeit ...


mfg, way

das problem liegt daran dass du ein anderes prefix in der mysql verwendest und ich hier noch nicht mit contenido platzhaltern sondern mit fixen abfragen gearbeitet habe.
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer » Mo 5. Nov 2007, 11:18

So hier der neue Output Code, bitte ersetzen, sollte so funktionieren:
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>&nbsp;Typ&nbsp;</td>
<td>&nbsp;Name&nbsp;</td>
<td>&nbsp;Beschreibung&nbsp;</td>
<td>&nbsp;Gr&ouml;&szlig;e&nbsp;</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.'&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

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();

?>
Mfg,

Way
Zuletzt geändert von wayfearer am Mi 13. Feb 2008, 12:35, insgesamt 1-mal geändert.
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

kreativsteffi
Beiträge: 40
Registriert: Di 13. Mär 2007, 14:21
Wohnort: Jena
Kontaktdaten:

Beitrag von kreativsteffi » Mo 5. Nov 2007, 11:57

jaaa es geht! super. danke vielmals :D :D :D
wie kann ich das vermeiden, dass das nächste mal wieder passiert?

wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer » Mo 5. Nov 2007, 12:34

Am besten bei der installation den prefix auf con_ lassen ... Aber das ist egal, das ist ein fehler von uns programmierern, da wir wenn möglich die entsprechenden variablen von contenido benutzen sollten und nicht wie ich es anfangs hatte festgelegte werte...


mfg,

way
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Beitrag von Jamest » Mo 5. Nov 2007, 21:54

Hi Leute,

ich hab gerade mal die Template Variante von Wosch getestet, nur haben die Links nicht funktioniert.

Die links sahen immer so aus:
http://www.bla.de/cms/upload/dbfs:/Down ... g_Ver3.pdf

müssen aber damit es funktioniert so aussehen:
http://www.bla.de/cms/dbfs.php?file=dbf ... g_Ver3.pdf


Diese Stelle:

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;}
      }
hab ich einfach so abgeändert:

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;}
      }
Jetzt funktioniert es, aber die Frage ist, ist es so überhaupt richtig abgeändert? Weil ich denke jetzt ist die schleife doch unsinnig oder?

Grüße

Jamest[/code]

wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer » Di 6. Nov 2007, 12:07

So sollte es gehen:

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;}
      } 
Mfg,

way
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Beitrag von Jamest » Di 6. Nov 2007, 21:31

Damit bekomme ich jetzt nene Fehler

Parse error: syntax error, unexpected '{'

Grüße

Jamest

wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer » Mi 7. Nov 2007, 10:07

Sorry, Tippfehler im Code:

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;}
      } 
Sollte jetzt gehen,hatte 2 mal ne ')' vergessen...

Mfg,

Way
Zuletzt geändert von wayfearer am Mi 16. Jan 2008, 09:12, insgesamt 1-mal geändert.
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey » Do 8. Nov 2007, 12:06

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).

Hallo,

mit dem Download-Modul von rok°! werden in einem geschützten Bereich die Links ungeschützt aufgelöst, d.h. wer den Link hat kann rann!

Bei dem Download Modul von Stese http://www.contenido.org/forum/viewtopic.php?t=11165
ist das anders gelöst. Da gehts nur wenn man drin ist!

Ist es aufwendig das zu ändern und gibt es jemand der Zeit hat und mal reinschaut? Ich kanns leider nicht :(

Das wäre echt gut!

Grüße
stefkey

flow
Beiträge: 10
Registriert: Di 13. Nov 2007, 18:02
Kontaktdaten:

Beitrag von flow » Mi 14. Nov 2007, 14:12

Hi,

habe mir nun alles 10x durchgelesen und angeschaut, aber irgendwie stehe ich aufm Schlauch - bekomme immer "Falsche Parameterübergabe".

Ich habe ein paar Screenshots von meiner Konfiguration gemacht - hoffentlich findet einer von euch meinen Fehler.

Zunächst die beiden erstellten Module:
http://stuff.flowtec.net/images/1.gif
http://stuff.flowtec.net/images/2.gif

Mein neues Template, wo ich das Modul "Download List" eingebunden habe:
http://stuff.flowtec.net/images/3.gif

Meine Kategorie, die dieses Template zugewiesen bekommt:
http://stuff.flowtec.net/images/4.gif

Das neue, leere Layout, welches nur diesen einen Container bekommt:
http://stuff.flowtec.net/images/5.gif

Mein Template, welches das Layout des Leer-Containers und das Modul Download File bekommt:
http://stuff.flowtec.net/images/6.gif

Mein Artikel, der dieses Leer-Layout zugewiesen bekommt:
http://stuff.flowtec.net/images/7.gif


Irgendwo habe ich was grundsätzlich falsch verstanden? Danke für Eure Bemühungen.

wosch

Beitrag von wosch » Mi 14. Nov 2007, 14:42

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.
Du bist hier im falschen Thread.
Du nutzt das Download-Modul von Stese, da kann dir diese Beschreibung auch nicht helfen.

Du mußt im richtigen Thread lesen ...
http://www.contenido.de/forum/viewtopic.php?t=11165

flow
Beiträge: 10
Registriert: Di 13. Nov 2007, 18:02
Kontaktdaten:

Beitrag von flow » Mi 14. Nov 2007, 15:02

Du hast Recht, tut mir leid. Bin aus Versehen im Thread verrutscht :(

Dein Modul nutze ich aber auch (bin noch am testen) und habe auch dazu eine Frage:

Ich wollte über die Artikel Liste Advanced 1.4 eine Art "Download Kategorien" anlegen. Und da ich teilweise noch Beschreibungen und weiterführende Infos benötige, dachte ich mir:

Ich lege in einem Baum für jede Download-Kategorie einen Artikel an, wo ich jeweils über dein Modul die Dateien in einem Verzeichnis listen lasse. Das klappt auch wunderbar, wenn ich mir die Artikel einzeln anschaue habe ich Beschreibung und Filelisting.

Wenn ich nun dem Baum als Template Artikel List Advanced 1.4 zuweise, wird nur Headline + Text gelistet - die Downloads sind nicht da. Und ich stehe auch gerade ziemlich auf dem Schlauch, wie ich die auch noch immer dazu bekomme. Kann bei den "Elementen" nämlich auch nur Headline und Text (HTML) auswählen. Habe schon versucht was in den Templates zu machen, aber bekomme es nicht hin.
Zur besseren Erklärung habe ich mal 3 Screenshots angehängt:

http://stuff.flowtec.net/images/22.gif
http://stuff.flowtec.net/images/23.gif
http://stuff.flowtec.net/images/24.gif

Ich denke das ein grundsätzliches Verständnisproblem. Oder sollte ich mal beim Programmierer vom Artikel Listing Modul nachfragen?

Vielen Dank.

wosch

Beitrag von wosch » Mi 14. Nov 2007, 15:16

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?
Logisch.
Die Beschreibung wird aus dem File-System (Tabelle ???) ausgelesen.
Die ArtList holt sich den Text aus CMS_-Containern und hat keinen Zugriff auf die Beschreibung.

Ich wage zu bezweifeln das das mit einfachen Mittel möglich ist das die ArtList auch die Beschreibung auslesen kann, sie weiß ja nicht was in dem Download-Modul ausgewählt ist (Verzeichnis).

Aber du kannst ja mal HerrB im ArtList advanced-Thread fragen.

Übrigens, es ist nicht mein Modul, sondern das von wayfearer, auch wenn du die Template-Version von mir verwendest, die Technik/Idee/... ist trotzdem von wayfearer.

Gesperrt