Seite 5 von 10

Verfasst: Mo 6. Nov 2006, 19:15
von stese
äh hast du dir im input auch den text dazu durchgelesen?
Dateifilter<br>(leergelassen = alle Dateien, Filter wie unter Windows nutzen: ?datei*)

Verfasst: Di 7. Nov 2006, 10:04
von falkirk
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.

Verfasst: Di 7. Nov 2006, 10:11
von stese
probiers mal mit

Code: Alles auswählen

datei?.pdf

Verfasst: Di 7. Nov 2006, 10:19
von falkirk
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.

Verfasst: Di 7. Nov 2006, 10:35
von stese
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.

Verfasst: Di 7. Nov 2006, 14:40
von stese
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);

?>

Verfasst: Mi 8. Nov 2006, 10:55
von falkirk
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

Verfasst: Do 16. Nov 2006, 20:56
von makemyday
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

Verfasst: Do 21. Dez 2006, 14:16
von stony
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

Verfasst: Do 21. Dez 2006, 16:00
von stese
danke, hab's geändert

Verfasst: Do 21. Dez 2006, 22:08
von Freddy
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.

Verfasst: Do 21. Dez 2006, 22:49
von stese
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

Verfasst: Do 28. Dez 2006, 11:59
von so2
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.

Download-Dateien sind irgendwie futsch

Verfasst: Sa 20. Jan 2007, 00:09
von Christiane
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.

Re: Download-Dateien sind irgendwie futsch

Verfasst: Sa 20. Jan 2007, 00:52
von Christiane
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.