Modul: Download Liste 4.6.

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Mo 6. Nov 2006, 19:15

äh hast du dir im input auch den text dazu durchgelesen?
Dateifilter<br>(leergelassen = alle Dateien, Filter wie unter Windows nutzen: ?datei*)

falkirk
Beiträge: 17
Registriert: So 12. Feb 2006, 19:47
Kontaktdaten:

Beitrag von falkirk » Di 7. Nov 2006, 10:04

Den Input habe ich selbstverständlich gelesen, aber anscheinend versteh ich diesen nicht richtig. (sorry)

Ich habe z.B. 3 Dateien: Datei1.pdf / Datei2.pdf / Datei3.pdf
Kannst du mir bitte sagen wie ich dies korrekt eingeben muss wenn ich nur die Datei 1+2 in der Liste haben möchten

In der Windows Suche kann ich dies wie folgt eingeben:
datei1.pdf;datei2.pdf oder datei1*;datei2* (jeweils mit StrichPunkt getrennt)

Das führt aber im Contenido zu keinem ergebnis.

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Di 7. Nov 2006, 10:11

probiers mal mit

Code: Alles auswählen

datei?.pdf

falkirk
Beiträge: 17
Registriert: So 12. Feb 2006, 19:47
Kontaktdaten:

Beitrag von falkirk » Di 7. Nov 2006, 10:19

datei*pdf oder datei*
funktioniert einwandfrei. Aber dann erhalte ich alle drei Dateien.

Ich möchte aber explizit nur die datei 1+2!!

Ich muss also mind. zwei angaben im Feld eingeben.
Aber mit welchem Trennzeichen trenne ich die beiden Eingaben??

Komma oder StrichPunkt funktionieren nicht.

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Di 7. Nov 2006, 10:35

das geht momentan gar nicht. aber das kannst du selbst ändern, indem du dir anschaust wie der output bei den extensions funktioniert und dahingehend umschreibst. , is übrigens kein guter trenner, weil das ein gültiges zeichen für einen namensbestandteil ist.

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Di 7. Nov 2006, 14:40

so sollte er verschiedene phrasen durch semikolon getrennt erkennen:

Modul "Download List" Output:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :    Download List
* Author(s)  :    Stefan Seifarth <info@polycoder.de>
* Copyright  :    www.polycoder.de / www.htcm.de
* Created    :    2006-01-07
* Modified   :    2006-11-07
************************************************/
cInclude ("classes", "class.upload.php");
cInclude ("classes", "class.properties.php");
cInclude ("classes", "class.htmlelements.php");
cInclude ("includes", "functions.upl.php");


// template defined vars
$dllist_path = "CMS_VALUE[110]";
$dllist_extensions = trim("CMS_VALUE[111]");
$dllist_idart = trim("CMS_VALUE[112]");
$dllist_filenamefilter = trim("CMS_VALUE[113]");

// add filetype condition
$str_where_filetype = "";
if ( strlen ($dllist_extensions) > 0) {
   $arr_extensions = explode (",",$dllist_extensions);
   
   $arr_where = array();
   foreach ($arr_extensions as $str_extension) {
      $arr_where[] = "filetype ='" . trim($str_extension) . "'";
   }
   
   $str_where_filetype = ' ( ' . implode( " OR ", $arr_where ) . ' ) AND ';
}

// add filename filter condition
$str_where_filenamefilter = "";
if ( strlen ($dllist_filenamefilter) > 0) {
   
   $arr_filenamefilter = explode(";", $dllist_filenamefilter);
   $arr_where = array();
   
   foreach ($arr_filenamefilter as $str_filenamefilter) {
      $str_filenamefilter = trim($str_filenamefilter);
      // replace special chars for wildcards
      $str_filenamefilter = str_replace("%","\%", $str_filenamefilter);
      $str_filenamefilter = str_replace("_","\_", $str_filenamefilter);
      $str_filenamefilter = str_replace("*","%", $str_filenamefilter);
      $str_filenamefilter = str_replace("?","_", $str_filenamefilter);
      $arr_where[] = ' filename LIKE "' . mysql_escape_string($str_filenamefilter) . '"';
   }
   $str_where_filenamefilter = ' ( ' . implode( " OR ", $arr_where ) . ' ) AND ';
}

// get list of all files
$dllist_collection = new UploadCollection ();
$dllist_collection->select($str_where_filenamefilter . $str_where_filetype . " dirname = '" . $dllist_path . "'","","filename ASC");

// initialize needed objects
$obj_file_properties = new PropertyCollection();
$obj_icon = new cHTMLImage();
$obj_description = new cHTMLDIV();

// reset template
$tpl = new Template();
$tpl->reset();

// add head description
$tpl->set("s","HEAD_NAME", mi18n("Dateiname") );
$tpl->set("s","HEAD_FILETYPE", mi18n("Dateityp") );
$tpl->set("s","HEAD_FILESIZE", mi18n("Größe") );
$tpl->set("s","HEAD_COUNTER", mi18n("Downloads") );

// run file list
$image_id = 0;
while ($dllist_item = $dllist_collection->next() ) {
   $image_id++;
   
   // icon for file
   $obj_icon->setSrc( uplGetFileIcon($dllist_item->get("filename")) );
   $obj_icon->setID("dlIco".$image_id);
   
   // file description
   $str_file_description = "";
   if (strlen($dllist_item->get("description"))> 0) {
      $obj_description->setContent($dllist_item->get("description"));
      $obj_description->setClass("fileDescription");
      $str_file_description = $obj_description->toHTML();
   }
   
   // filename
   $str_file_name = $dllist_item->get("filename");
   $str_file_name_property = $obj_file_properties->getValue("upload", $dllist_item->get("dirname").$dllist_item->get("filename"), "file", "medianame");
   if (strlen($str_file_name_property) > 0) {
      $str_file_name = $str_file_name_property;
   }
   
   // filecounter
   $str_file_counter = "0";
   $str_file_counter_property = $obj_file_properties->getValue("upload", $dllist_item->get("dirname").$dllist_item->get("filename"), "file", "counter");
   if ( strlen ($str_file_counter_property) > 0 ) {
      $str_file_counter = $str_file_counter_property;
   }
   
   // file url
   $str_file_url = $cfgClient[$client]["upl"]["htmlpath"] . $dllist_item->get("dirname") . $dllist_item->get("filename");
   if ( isset($dllist_idart) && !empty($dllist_idart) && (int)$dllist_idart > 0 ) {
      $str_file_url = $sess->url("front_content.php?idart=" . $dllist_idart . "&changelang=" . $lang .  "&client=" . $client . "&sse_idupl=" . $dllist_item->get("idupl") );
   }
   
   // fill template
   $tpl->set("d", "FILE_ICON", $obj_icon->toHTML() . '&nbsp;');
   $tpl->set("d", "FILE_NAME", $str_file_name );
   $tpl->set("d", "FILE_TYPE", $dllist_item->get("filetype") );
   $tpl->set("d", "FILE_SIZE", human_readable_size($dllist_item->get("size")) );
   $tpl->set("d", "FILE_COUNTER", $str_file_counter );
   $tpl->set("d", "FILE_DESCRIPTION", $str_file_description );
   $tpl->set("d", "FILE_URL", $str_file_url );
   
   $tpl->next();
}

// set template
$str_template_name = "download_list.html";
if ( isset($dllist_idart) && !empty($dllist_idart) && (int)$dllist_idart > 0 ) {
   $str_template_name = "download_list_counter.html";
}

// print template
print $tpl->generate($cfgClient[$client]["tpl"]["path"] . $str_template_name, 1, 0);

?>

falkirk
Beiträge: 17
Registriert: So 12. Feb 2006, 19:47
Kontaktdaten:

Beitrag von falkirk » Mi 8. Nov 2006, 10:55

Leider kam ich erst jetzt dazu deinen Code zu testen.

Ich kann nur sagen du bist einfach super!!!!! :D

Die Filterung funktioniert genau so wie ich diese haben wollte.

VIELEN DANK

makemyday
Beiträge: 53
Registriert: Fr 11. Jul 2003, 09:49
Wohnort: Gießen
Kontaktdaten:

Beitrag von makemyday » Do 16. Nov 2006, 20:56

Wer die Downloads in einem geschützen Bereich hat und den Zugriff über das Dateisystem ebenfalls sperren will, einfach folgenden Code in einer .htaccess Datei des download Verzeichnisses eingeben:

Code: Alles auswählen

<FilesMatch "\.(pdf|doc|xls|gif|jpeg|jpg|png)$">
Order allow,deny
deny from all
</FilesMatch>
Die Dateiendungen können noch angepasst werden. Vorraussetzung ist, dass der Downloadcounter benutzt wird.

Viel Spaß
makemyday

stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony » Do 21. Dez 2006, 14:16

Hallo Jungs,

wollte gerade das Modul in einen 2. Mandanten einpflegen, leider wurde mir die Uploadliste des 1. Mandanten angezeigt.

Habe dafür mal den Quelltext angepasst!

im Modul "Download List" (INPUT)

aus:

Code: Alles auswählen

$dllist_collection->select(" ","dirname","dirname ASC");
wird:

Code: Alles auswählen

$dllist_collection->select("idclient='".$client."'","dirname","dirname ASC");
gruß cym & stony

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Do 21. Dez 2006, 16:00

danke, hab's geändert

Freddy
Beiträge: 251
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Beitrag von Freddy » Do 21. Dez 2006, 22:08

Hab ein kleines Problem mit diesem Modul. Es funktioniert soweit nur bei einem PDF kommt dann die Fehlermeldung:
INTERNER SERVER FEHLER
Ein interner Fehler ist aufgetreten!
Bitte versuchen Sie es zu einem späteren Zeitpunkt.

Die PDF ist 3,4MB groß. Liegt es an der größe? Mit anderen PDFs funktioniert es einwandtfrei. Namen habe ich auch schon mehrere versucht.
Ohne Zähler funktioniert es, aber mit Zähler wäre es natürlich viel schöner.
Danke schonmal im vorraus für eure Unterstützung.

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Do 21. Dez 2006, 22:49

jo wird dann an den servereinstellungen liegen, dass php nicht genügend speicher zugewiesen bekommt um große dateien durchzuschleifen. viele große provider riegeln bei 3mb ab, was ich durchaus auch verstehen kann, da sich dieser hohe speicherverbrauch auch durch falsch programmierte scripte erzeugen lässt

so2
Beiträge: 34
Registriert: Sa 7. Jan 2006, 07:16
Wohnort: Kloten
Kontaktdaten:

Beitrag von so2 » Do 28. Dez 2006, 11:59

Gratulation. Tolles Modul!
Hat alles auf Anhieb funktioniert: Liste und Counter, und dass der Dateibeschrieb ebenfalls mit ausgegeben wird ist genau wie ich es brauche.

Christiane
Beiträge: 29
Registriert: Do 2. Nov 2006, 14:44
Kontaktdaten:

Download-Dateien sind irgendwie futsch

Beitrag von Christiane » Sa 20. Jan 2007, 00:09

Habe das super Download-Modul mit allem drumherum installiert. Aber irgendwie sind die Dateien (die ich in dem Download-Verzeichnis gespeichert habe) kaputt, wenn ich sie als potentieller Nutzer der Website runterlade.

Beispielsweise eine Textdatei. In der steht nach Download:

Code: Alles auswählen

<br />
<b>Warning</b>:  readfile(): Unable to access /[pfad_aus_datenschutzgruenden_ausgeblendet]/contenido-4.6.15/cms/upload/dbfs:/downloads/test.txt in <b>/[pfad_aus_datenschutzgruenden_ausgeblendet]l/contenido-4.6.15/cms/front_content.php(890) : eval()'d code</b> on line <b>44</b><br />
<br />
<b>Warning</b>:  readfile(/[pfad_aus_datenschutzgruenden_ausgeblendet]/contenido-4.6.15/cms/upload/dbfs:/downloads/test.txt): failed to open stream: No such file or directory in <b>/[pfad_aus_datenschutzgruenden_ausgeblendet]/contenido-4.6.15/cms/front_content.php(890) : eval()'d code</b> on line <b>44</b><br />
In der Download-Ausgabe-Datei (die leere mit dem 1 Container) steht auch immer noch "Falsche Parameterübergabe". Vielleicht ist ja auch da schon irgendwo der Wurm drin.

Weiß da jemand Abhilfe? Ich habe schon gesucht wie ein Weltmeister, aber das passende scheint nicht dabeizusein. Hilfe?!

PS: Wenn ich den Standard Contenido upload-Ordner als Verzeichnis für die Dateien angebe (statt ein Verzeichnis im Datenbank-Dateisystem, was zu obiger txt-Datei führte), kann ich die Dateien problemlos öffnen. Allerdings werde ich dann nicht mehr gefragt, ob ich die Datei speichern möchte, sondern sie wird direkt im Browser ausgeführt.

Christiane
Beiträge: 29
Registriert: Do 2. Nov 2006, 14:44
Kontaktdaten:

Re: Download-Dateien sind irgendwie futsch

Beitrag von Christiane » Sa 20. Jan 2007, 00:52

Christiane hat geschrieben:Hilfe?!
Unglaublich, aber wahr: Jetzt funktioniert's. Schön, drüber gesprochen zu haben!

hm... was habe ich getan? Nichts - haha. Also ich habe es wie oben unter "PS :..." steht noch mal mit einem anderen Ordner versucht. Und jetzt geht es so, wie's soll - glaube ich. Mit einem Dateisystem-Ordner funktioniert's nicht, mit einem in Contenido von vornherein vorhandenen funzt's.

Gesperrt