Modul: Download Liste 4.6.
äh du hast versucht einen ordner über das datenbanksystem aufzurufen. das geht natürlich nicht - das modul funktioniert nur mit physischen ordnern die also wirklich auf dem webspace im upload folder existieren. ordner und dateien die in der datenbank gespeichert sind funktionieren nicht mit dem modul
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
-
- Beiträge: 29
- Registriert: Do 2. Nov 2006, 14:44
- Kontaktdaten:
Hallo stese, ja, das habe ich nun ja mittlerweile herausgefunden. Trotzdem vielen Dank für den Hinweis! Das es mit dieser Variante nicht gleich funktioniert hat, liegt an meinem Provider. Dort bekommt ein über das Contenido-Backend angelegter Ordner einen falschen Besitzer zugeordnet.Nachdem ich das gerafft hatte, läuft auch alles wunderschön! Klasse Modul!stese hat geschrieben:das modul funktioniert nur mit physischen ordnern die also wirklich auf dem webspace im upload folder existieren
-
- Beiträge: 29
- Registriert: Do 2. Nov 2006, 14:44
- Kontaktdaten:
Noch zwei Fragen zu dem Download-Modul:
1.) Wie kann ich auf die Eigenschaften der Dateityp-Bilder Einfluss nehmen?
Die Bilder erhalten per default eine id (m1) sowie das Attribut border="0". Beide würde ich gerne entfernen. Begründung: Wenn ich mehrere Einträge in der Download-Liste habe, wird auch die ID mehrfach gesetzt. Dann ist diese nicht mehr eindeutig, so dass Validatoren eine Warnung ausspucken (Anker xyz "bereits definiert"). Und die Rahmen-Eigenschaft regele ich lieber über CSS.
Weiterhin würde ich für diese Bilder gern eein leeres alt-Attribut setzen (alt="").
2.) Wie kann ich den Container der Dateibeschreibung ändern?
Für jede Beschreibung wird ein div angelegt. Ich würde statt dessen einen Absatz (p-Element) bevorzugen. Kann ich das irgendwo umschreiben?
In diesem Container wird im Übrigen auch eine ID vergeben, die sich bei Mehrfacheinträgen wiederholt. Das würde ich auch gern vermeiden.
Über Anregungen/Hilfestellungen wäre ich sehr dankbar.
1.) Wie kann ich auf die Eigenschaften der Dateityp-Bilder Einfluss nehmen?
Die Bilder erhalten per default eine id (m1) sowie das Attribut border="0". Beide würde ich gerne entfernen. Begründung: Wenn ich mehrere Einträge in der Download-Liste habe, wird auch die ID mehrfach gesetzt. Dann ist diese nicht mehr eindeutig, so dass Validatoren eine Warnung ausspucken (Anker xyz "bereits definiert"). Und die Rahmen-Eigenschaft regele ich lieber über CSS.
Weiterhin würde ich für diese Bilder gern eein leeres alt-Attribut setzen (alt="").
2.) Wie kann ich den Container der Dateibeschreibung ändern?
Für jede Beschreibung wird ein div angelegt. Ich würde statt dessen einen Absatz (p-Element) bevorzugen. Kann ich das irgendwo umschreiben?
In diesem Container wird im Übrigen auch eine ID vergeben, die sich bei Mehrfacheinträgen wiederholt. Das würde ich auch gern vermeiden.
Über Anregungen/Hilfestellungen wäre ich sehr dankbar.
das filetype icon wird im modul download list output in folgender zeile gesetzt:
die ID ist immer einmalig, es sei denn, du nimmst die liste mehrmals auf die seite. eine border wird eigentlich bei mir nicht gesetzt.
der source wird über die cHTMLApi von contenido erzeugt.
setze dich bitte zur anwendung und manipulation mit der cHTMLapi auseinander (datei contenido/classes/class.htmlelements.php)
Code: Alles auswählen
// icon for file
$obj_icon->setSrc( uplGetFileIcon($dllist_item->get("filename")) );
$obj_icon->setID("dlIco".$image_id);
der source wird über die cHTMLApi von contenido erzeugt.
setze dich bitte zur anwendung und manipulation mit der cHTMLapi auseinander (datei contenido/classes/class.htmlelements.php)
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
-
- Beiträge: 29
- Registriert: Do 2. Nov 2006, 14:44
- Kontaktdaten:
Hm. Meines Erachtens erhält das Dateityp-Bild immer die ID m1 und die Beschreibung die ID m2. Auch in ein und derselben Tabelle. Das ist, was mich stört. Aber vielleicht finde ich dazu ja was cHTMLApi. Werde mich damit mal auseinandersetzen.stese hat geschrieben:die ID ist immer einmalig
Dann muss ich mal schauen, wo "border="0" in den Bildern herkommt.stese hat geschrieben:eine border wird eigentlich bei mir nicht gesetzt.
-
- Beiträge: 29
- Registriert: Do 2. Nov 2006, 14:44
- Kontaktdaten:
Aha! Die Zeilen 147stese hat geschrieben:das filetype icon wird im modul download list output in folgender zeile gesetzt:
Code: Alles auswählen
// icon for file $obj_icon->setSrc( uplGetFileIcon($dllist_item->get("filename")) ); $obj_icon->setID("dlIco".$image_id);
Code: Alles auswählen
$image_id = 0;
Code: Alles auswählen
$image_id++;
Nun noch mal zu Problem 2. Über
Code: Alles auswählen
$obj_description = new cHTMLDIV();
Code: Alles auswählen
<p>...hier soll die Beschreibung stehen...</p>
-
- Beiträge: 29
- Registriert: Do 2. Nov 2006, 14:44
- Kontaktdaten:
Jippie! Ich hab's gefunden!Christiane hat geschrieben:Trotzdem erhält das p-Element dann eine ID und eine Klasse.
"removeAttribute" war das entscheidende Stichwort (siehe http://contenido.org/forum/viewtopic.php?t=11862)
Dieser Problem-lösende Beitrag stammte auch von Dir, stese! Danke für Deine Ausdauer mit uns Anfängern!
Nachtrag:
Aufgabe war:
Bei der Beschreibung des Downloads sollten ID und Klasse entfernt werden.
Lösung:
Code: Alles auswählen
$obj_description->removeAttribute("id");
$obj_description->removeAttribute("class");
Bei dem Icon des Downloads sollte die ID entfernt und ein leeres alt-Attribut hinzugefügt werden.
Lösung:
Code: Alles auswählen
$obj_icon->removeAttribute("id");
$obj_icon->updateAttributes(array ("alt" => ""));
Dateiliste - kein-Download von Dateien
Hallo,
ich habe das Modul wie folgt eingebunden:
1. per FTP die HTML-Templates in den Template-Ordner meines Clienten und die Module eingefügt.
Ich habe in den Modulen alle Änderungen des Threads durchgeführt.
2. Leer-Layout , nur mit dem Text von Layer.txt, ohne Leerzechen vorher etc.!
3. Template mit dem Dateifile-Modul und diesem Leer-Layout erstellt
4. Von diesem Template ein Artikel erstellt und die idart notiert
5. Modul-dateilist in eines meiner Templates eingebunden
6. neuen Artikel mit diesen letzten Template erzeugt
7. Artikel konfiguriert, im letzten Input der Konfiguration die oben notierte idart eingetragen.
Jetzt wird mir die Dateiliste wie gewünscht angezeigt, aber der eigentlich Download schlägt fehl.
Es wird das weiße Fenster vom Leerartikel mit der eingetragenen idart aufgerufen, aber das
besagte Fenster von Windows für den Download (offnen/speichen unter) erscheint nicht.
Da hilft auch 777 für die Dateien nicht.
Im Browser kann ich die Dateien mit dem direkten Pfad aufrufen.
Ich habe gesucht, nichts gefunden und möchte ich das Modul nicht gern begraben.
Vielen Dank im Voraus
Wiebke
contenido 4.6.4
PHP 5.2.0
Mysql 4.1.15
Hosteurope
ich habe das Modul wie folgt eingebunden:
1. per FTP die HTML-Templates in den Template-Ordner meines Clienten und die Module eingefügt.
Ich habe in den Modulen alle Änderungen des Threads durchgeführt.
2. Leer-Layout , nur mit dem Text von Layer.txt, ohne Leerzechen vorher etc.!
3. Template mit dem Dateifile-Modul und diesem Leer-Layout erstellt
4. Von diesem Template ein Artikel erstellt und die idart notiert
5. Modul-dateilist in eines meiner Templates eingebunden
6. neuen Artikel mit diesen letzten Template erzeugt
7. Artikel konfiguriert, im letzten Input der Konfiguration die oben notierte idart eingetragen.
Jetzt wird mir die Dateiliste wie gewünscht angezeigt, aber der eigentlich Download schlägt fehl.
Es wird das weiße Fenster vom Leerartikel mit der eingetragenen idart aufgerufen, aber das
besagte Fenster von Windows für den Download (offnen/speichen unter) erscheint nicht.
Da hilft auch 777 für die Dateien nicht.
Im Browser kann ich die Dateien mit dem direkten Pfad aufrufen.
Ich habe gesucht, nichts gefunden und möchte ich das Modul nicht gern begraben.
Vielen Dank im Voraus
Wiebke
contenido 4.6.4
PHP 5.2.0
Mysql 4.1.15
Hosteurope
-
- Beiträge: 29
- Registriert: Do 2. Nov 2006, 14:44
- Kontaktdaten:
Ein paar Tage sind vergangen, aber mittlerweile habe ich verstanden, worauf du da hinaus wolltest. Habe jetzt in der Datei class.htmlelements.php in der Funktion toHTML() eine Zeile auskommentiert und dann ist auch dieses Attribut border="0" in den Icons weg! Genau das war's.stese hat geschrieben:eine border wird eigentlich bei mir nicht gesetzt.
der source wird über die cHTMLApi von contenido erzeugt.
setze dich bitte zur anwendung und manipulation mit der cHTMLapi auseinander (datei contenido/classes/class.htmlelements.php)
Code: Alles auswählen
/* $this->updateAttributes(array
("border" => $this->_border)); */
Sortierfunktion
Hi
Ich nutze schon seit geraumer Zeit dieses Modul und finde es echt toll.
Nur leider ist in der neuen Version keine Sortiermöglichkeit mehr vorhanden. Woran liegts?
Gruß
Volker
Ich nutze schon seit geraumer Zeit dieses Modul und finde es echt toll.
Nur leider ist in der neuen Version keine Sortiermöglichkeit mehr vorhanden. Woran liegts?
Gruß
Volker
äh neue version? in dem modul gab es noch nie eine sortiermöglichkeit - und wenn dann wurde die nicht durch mich und das standardmodul erzeugt.
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Hab ich das etwa eingebaut? schon lange her...
Dann hab ich hier ne Version mit Sortierfunktion:
Modul "Download List" INPUT:
Modul "Download List" OUTPUT:
Gruß
Volker
Dann hab ich hier ne Version mit Sortierfunktion:
Modul "Download List" INPUT:
Code: Alles auswählen
?>
<?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : Download List
* Author(s) : Stefan Seifarth <info@polycoder.de>
* Copyright : www.polycoder.de / www.htcm.de
* Created : 2006-01-07
* Modified : 2006-11-06
************************************************/
cInclude ("classes", "class.upload.php");
// get all directories from database
$dllist_collection = new UploadCollection ();
$dllist_collection->select("idclient='".$client."'","dirname","dirname ASC");
$arr_found_dirs = array();
$arr_dirs = array();
while ( $dllist_item = $dllist_collection->next() ) {
$arr_found_dirs[] = $dllist_item->get("dirname");
}
$i = 0;
foreach ($arr_found_dirs as $str_dir) {
$arr_current_dir = explode("/",$str_dir );
array_pop($arr_current_dir);
$depth = count($arr_current_dir);
if ( $depth == 0 ) {
$arr_dirs[$i]["name"] = str_replace("/", "", $cfgClient[$client]["upload"]);
} else {
$arr_dirs[$i]["name"] = $arr_current_dir[$depth-1];
}
$arr_dirs[$i]["depth"] = $depth;
$arr_dirs[$i]["path"] = $str_dir;
$arr_dirs[$i]["indent"] = "";
for ($z = 1; $z <= $depth; $z ++) {
# 3 blanks for every level
$arr_dirs[$i]["indent"] .= " ";
}
$i++;
}
// print out directory selectbox
$str_predefined = trim("CMS_VALUE[110]");
print mi18n("Verzeichnis für Downloads auswählen") . ":\n<br>";
print '<select name="CMS_VAR[110]">' . "\n";
// output of all found directories
foreach ( $arr_dirs as $arr_dir ) {
$str_selected = "";
if ( $str_predefined == $arr_dir["path"] ) $str_selected = ' selected="selected"';
print '<option value="' . $arr_dir["path"] . '"' . $str_selected . '>' . $arr_dir["indent"] . $arr_dir["name"] . '</option>' . "\n";
}
print '</select>' . "\n";
print '<br><br>' . "\n";
// print out fileextensions
print mi18n("sichtbare Dateiendungen<br>(leergelassen = alle Dateien, mehrere Dateitypen durch Komma abtrennen )") . ":\n<br>";
print '<input type="text" name="CMS_VAR[111]" value="CMS_VALUE[111]">' . "<br><br>\n";
// print out fileextensions
print mi18n("Dateifilter<br>(leergelassen = alle Dateien, Filter wie unter Windows nutzen: ?datei*.*, mehrere Filter durch ; abtrennen)") . ":\n<br>";
print '<input type="text" name="CMS_VAR[113]" value="CMS_VALUE[113]">' . "<br><br>\n";
// print out download article
print mi18n("Artikel idart für Downloadzähler<br>(leergelassen = Download ohne Zähler)") . ":\n<br>";
print '<input type="text" name="CMS_VAR[112]" value="CMS_VALUE[112]">' . "<br><br>\n";
// print out download order
print mi18n("Liste sortieren") . ":\n<br>";
if (CMS_VALUE[114] == 0){
print '<input type="radio" name="CMS_VAR[114]" value="0" checked> Aufsteigend' . "\n<br>";
print '<input type="radio" name="CMS_VAR[114]" value="1"> Absteigend' . "\n";
}else{
print '<input type="radio" name="CMS_VAR[114]" value="0"> Aufsteigend' . "\n<br>";
print '<input type="radio" name="CMS_VAR[114]" value="1" checked> Absteigend' . "\n";
}
?>
<?php
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 ();
if (CMS_VALUE[114] == 0){
$dllist_collection->select($str_where_filenamefilter . $str_where_filetype . " dirname = '" . $dllist_path . "'","","filename ASC");
}else{
$dllist_collection->select($str_where_filenamefilter . $str_where_filetype . " dirname = '" . $dllist_path . "'","","filename DESC");
}
// 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() . ' ');
$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);
?>
Volker
Zu guter Letzt hab ich auch noch ein Problemchen.
Ich habe ein 3MB großes PDF im Downloadverzeichnis das lässt sich im Backend prima laden. Im Frontent kommt ein Fehler:
Grüße
Volker
Ich habe ein 3MB großes PDF im Downloadverzeichnis das lässt sich im Backend prima laden. Im Frontent kommt ein Fehler:
Was kann das sein?[16-Mar-2007 16:18:40] PHP Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 5826987 bytes) in /var/apache/www.golfclub-mudau.de/htdocs/cms/front_content.php on line 947
Grüße
Volker
speicherlimit des servers errreicht - im frontend wird einiges mehr in den speicher geladen als im backend (statistik z.b.) und das kann schon ausreichend sein, wenn der download im backend nur ganz knapp am speicherlimit vorbeischlitterte
die lösung mit dem durchschleifen ist nur bei kleinen dateien gut - alle anderen sollten über einen header befehl runtergeladen werden - sprich man geht direkt von der seite weg und öffnet die datei, als ob sie direkt über die url aufgerufen würde.
die lösung mit dem durchschleifen ist nur bei kleinen dateien gut - alle anderen sollten über einen header befehl runtergeladen werden - sprich man geht direkt von der seite weg und öffnet die datei, als ob sie direkt über die url aufgerufen würde.
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel