Fileauswahl für Modul
-
- Beiträge: 77
- Registriert: Sa 13. Feb 2010, 16:07
- Kontaktdaten:
Fileauswahl für Modul
Hallo,
für Bildergalerien muss in meinem Modul im Backend in der Konfiguration der Pfad zum Ordner vom Benutzer bestimmt werden.
Hier für gibt der User momentan in ein Inputfeld den Wert zum Zielordner manuell ein
upload/images/gallery/2013/januar/irgendwas
Je weiter das Ganze geschachtelt ist, desto fehlerhafter werden die Benutzereingaben, selbst wenn ich statische Teile (upload/images) vorbelege. Womit kann ich dem User eine bequemere Art der Dateiauswahl an die Hand geben, der mir dann den Pfad (innerhalb des Dateisystems) zurückgibt?
Da muss es irgendwas geben, was ich nicht kenne...
Gruß
Frank
für Bildergalerien muss in meinem Modul im Backend in der Konfiguration der Pfad zum Ordner vom Benutzer bestimmt werden.
Hier für gibt der User momentan in ein Inputfeld den Wert zum Zielordner manuell ein
upload/images/gallery/2013/januar/irgendwas
Je weiter das Ganze geschachtelt ist, desto fehlerhafter werden die Benutzereingaben, selbst wenn ich statische Teile (upload/images) vorbelege. Womit kann ich dem User eine bequemere Art der Dateiauswahl an die Hand geben, der mir dann den Pfad (innerhalb des Dateisystems) zurückgibt?
Da muss es irgendwas geben, was ich nicht kenne...
Gruß
Frank
-
- Beiträge: 4254
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Fileauswahl für Modul
Hallo Frank,
ein Select gefüllt mit den Pfaden ab deinem Vorgabe-Root-Ordner. Wird in diversen Modulen hier im Forum bereits für den Input-Bereich von Modulen genutzt. Contenido selbst bietet dafür nichts fertiges an. Aber du kannst dir mal die Klasse cms/includes/class.input.helper.php anschauen, da gibt es bereits Ähnliches für Artikel bzw. Kategorien.
Gruß aus Franken
Ortwin
ein Select gefüllt mit den Pfaden ab deinem Vorgabe-Root-Ordner. Wird in diversen Modulen hier im Forum bereits für den Input-Bereich von Modulen genutzt. Contenido selbst bietet dafür nichts fertiges an. Aber du kannst dir mal die Klasse cms/includes/class.input.helper.php anschauen, da gibt es bereits Ähnliches für Artikel bzw. Kategorien.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Fileauswahl für Modul
Hallo Frank,
hier mal der Input eines Moduls, über das Du ein Bild für die Ausgabe im Frontend auswählen kannst:
Den Part mit der Datei kannst Du ja rauswerfen oder auskommentieren. Du musst ja für Deine Zwecke nur den Inhalt von $cms_dirname = "CMS_VALUE[1]"; an den Output übergeben.
Grüße,
Markus
hier mal der Input eines Moduls, über das Du ein Bild für die Ausgabe im Frontend auswählen kannst:
Code: Alles auswählen
echo mi18n("Bilddatei auswählen:").'</br>';
#Selected img directory
$cms_dirname = "CMS_VALUE[1]";
#Selected img
$cms_filename = "CMS_VALUE[2]";
/*
if ($cms_dirname == '' || $cms_dirname == '0') {
$cms_dirname = 'bilder/';
}
*/
#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">'.mi18n("Verzeichnis wählen").': </td>
<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' AND
filetype IN ('jpeg','jpg','gif','png', 'swf')
ORDER BY
dirname";
$db->query($sql);
$selected = false;
while ($db->next_record()) {
$dirname = $db->f('dirname');
if ($cms_dirname != $dirname) {
echo '<option value="'.$dirname.'"> '.$dirname.'</option>';
} else {
$selected = true;
echo '<option value="'.$dirname.'" selected="selected"> '.$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>';
}
#Choose image file
echo '</select> <input type="image" src="images/submit.gif">
<tr><td class="text_medium" style="padding:5px">'.mi18n("Bild- oder Flashdatei wählen").': </td>
<td class="text_medium" style="padding:5px">';
echo '<select name="CMS_VAR[2]" style="width:200px">';
echo '<option value="0" selected="selected">'.i18n("Bitte wählen").'</option>';
if ($cms_dirname != '0') {
#Get uploaded files
$sql = "SELECT
filename
FROM
".$cfg["tab"]["upl"]."
WHERE
idclient = '$client' AND
filetype IN ('jpeg','jpg','gif','png','swf') AND
dirname = '$cms_dirname'
ORDER BY
filename";
$db->query($sql);
while ($db->next_record()) {
$img_name = $db->f('filename');
if ($cms_filename != $img_name) {
echo '<option value="'.$img_name.'"> '.$img_name.'</option>';
} else {
echo '<option selected="selected" value="'.$img_name.'"> '.$img_name.'</option>';
}
}
}
echo '</select> <input type="image" src="images/submit.gif">';
/*
echo '<tr><td valign="top"> '.mi18n("Beschreibung").':</td><td><textarea cols="40" rows="5" CMS_VALUE="100" name="CMS_VAR[100]" value="CMS_VALUE[100]">CMS_VALUE[100]</textarea></td></tr>';
*/
#Preview image
if ($cms_dirname != '0' AND $cms_filename != '0' AND strlen($cms_dirname) > 0 AND strlen($cms_filename) > 0) {
$img_path = $htmlpath.$cfgClient[$client]['upload'].$cms_dirname.$cms_filename;
$img_split = preg_split("/\./", $cms_filename);
$count = count($img_split);
$type = $img_split[$count -1];
echo '<tr><td></td><td style="padding:5px">';
if (substr($img_path,-3) != "swf") {
echo '<img style="width: 150px;" src="'.$img_path.'">';
} else {
$size = getimagesize ("$img_path");
echo '<object type="application/x-shockwave-flash" data="'.$img_path.'" id="Flash" '.$size[3].'>
<param name="movie" value="'.$img_path.'" />
<param name="bgcolor" value ="#FFFFFF" />
<param name="quality" value ="high" />
<param name="loop" value="false" />
<param name="menu" value="false" />
<param name="swliveconnect" value="true" />
</object>';
}
echo '</td></tr>';
}
echo '</td></tr>';
echo '</table>';
Grüße,
Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
-
- Beiträge: 77
- Registriert: Sa 13. Feb 2010, 16:07
- Kontaktdaten:
Re: Fileauswahl für Modul
Hallo Markus und Ortwin,
das ist schon eine Erleichterung! Auch die Option mit der Einzelauswahl und dem Thumb finde ich persönlich sehr charmant (für andere Zwecke kann ich das bestimmt noch nutzen).
Für mich reicht das erstmal. Grund genug, Euch in mein Nachtgebet einzuschließen...
Frank
das ist schon eine Erleichterung! Auch die Option mit der Einzelauswahl und dem Thumb finde ich persönlich sehr charmant (für andere Zwecke kann ich das bestimmt noch nutzen).
Für mich reicht das erstmal. Grund genug, Euch in mein Nachtgebet einzuschließen...
Frank
-
- Beiträge: 77
- Registriert: Sa 13. Feb 2010, 16:07
- Kontaktdaten:
Re: Fileauswahl für Modul
Hallo Markus (und alle anderen)
wenn jetzt aus dem Dateisystem ein Ordner gelöscht wurde und nicht mehr existiert, hält er sich aber hartnäckig in der DB-Tabelle (trotz Systembereinigung mit allen Optionen).
Kann mir jemand sagen, wie ich das umgehen kann (ohne den Eintrag händisch zu löschen)?
Gruß
Frank
wenn jetzt aus dem Dateisystem ein Ordner gelöscht wurde und nicht mehr existiert, hält er sich aber hartnäckig in der DB-Tabelle (trotz Systembereinigung mit allen Optionen).
Kann mir jemand sagen, wie ich das umgehen kann (ohne den Eintrag händisch zu löschen)?
Gruß
Frank
Re: Fileauswahl für Modul
Hallo Frank,
du darfst das Verzeichnis nicht per FTP löschen, dann kriegt Contenido das so nicht mit.
Stattdessen musst du die Dateiverwaltung dafür nutzen.
Um den Fehler jetzt zu korrigieren musst du in der Dateiverwaltung das (gleichnamige) Verzeichnis wieder anlegen, dann da rein gehen (dann löscht Contenido die Einträge für nicht vorhandenen Dateien darin), und es dann wieder löschen.
Gruß
René
du darfst das Verzeichnis nicht per FTP löschen, dann kriegt Contenido das so nicht mit.
Stattdessen musst du die Dateiverwaltung dafür nutzen.
Um den Fehler jetzt zu korrigieren musst du in der Dateiverwaltung das (gleichnamige) Verzeichnis wieder anlegen, dann da rein gehen (dann löscht Contenido die Einträge für nicht vorhandenen Dateien darin), und es dann wieder löschen.
Gruß
René
-
- Beiträge: 77
- Registriert: Sa 13. Feb 2010, 16:07
- Kontaktdaten:
Re: Fileauswahl für Modul
Hallo René,
dank Dir, ja so klappt es. Schön geht allerdings anders...
In anderen CMSen gibt es so ewas wie Verzeichnisscan. Da werden DB-Einträge mit dem Filesystem synchronisiert. Das könnte man vielleicht bei der Systembereinigung mit einbauen.
Ich hab das auch schon mal ein einen anderen Thread geschrieben, die Auswahl von Verzeichnissen und Dateien aus den CMS-Typen finde ich insgesamt nicht mehr sonderlich kundenfreundlich. Ist da für die 4.9 was geplant?
Gruß
Frank
dank Dir, ja so klappt es. Schön geht allerdings anders...
In anderen CMSen gibt es so ewas wie Verzeichnisscan. Da werden DB-Einträge mit dem Filesystem synchronisiert. Das könnte man vielleicht bei der Systembereinigung mit einbauen.
Ich hab das auch schon mal ein einen anderen Thread geschrieben, die Auswahl von Verzeichnissen und Dateien aus den CMS-Typen finde ich insgesamt nicht mehr sonderlich kundenfreundlich. Ist da für die 4.9 was geplant?
Gruß
Frank
Re: Fileauswahl für Modul
Hallo Frank,
Ein paar meiner Kunden haben Webseiten mit über 1000 MB, einer sogar über 1200 MB (da ist sogar die Datenbank über 900 MB groß).
Wenn da solch eine Synchronisierung laufen würde, würde das den Server doch arg belasten.
Gruß
René
ich habe mir dazu mal Gedanken gemacht.CharlyBrown hat geschrieben:In anderen CMSen gibt es so ewas wie Verzeichnisscan. Da werden DB-Einträge mit dem Filesystem synchronisiert. Das könnte man vielleicht bei der Systembereinigung mit einbauen.
Ein paar meiner Kunden haben Webseiten mit über 1000 MB, einer sogar über 1200 MB (da ist sogar die Datenbank über 900 MB groß).
Wenn da solch eine Synchronisierung laufen würde, würde das den Server doch arg belasten.
Gruß
René
-
- Beiträge: 77
- Registriert: Sa 13. Feb 2010, 16:07
- Kontaktdaten:
Re: Fileauswahl für Modul
Vielleicht eine blöde Frage aber: Was ist denn der Hauptgrund dafür, dass die Verzeichnisse überhaupt in der Datenbank gespeichert werden? Oder anders herum, was spricht dagegen die Verzeichnisse z. B. unterhalb von "upload" so aufzurufen, wie sie auch beim Zeitpunkt des Abrufs auf dem Server liegen? Performance?
Gruß
Frank
Gruß
Frank
Re: Fileauswahl für Modul
Die Größe der DB ist erstmal irrelevant, viel wichtiger ist die Anzahl der Einträge in den Upload-Tabellen.Spider IT hat geschrieben:...Ein paar meiner Kunden haben Webseiten mit über 1000 MB, einer sogar über 1200 MB (da ist sogar die Datenbank über 900 MB groß)...
Man kann bei sehr vielen Upload-Verzeichnissen nicht jedes Mal die ganze Verzeichnisstruktur mit der Datenbank abgleichen, das würde bei sehr vielen Dateien/Verzeichnissen zu Performanceproblemen führen.
Zur jeder Datei kann es Metainformationen wie Beschreibung, Titel, usw. geben und das pro Sprache. Diese Informationen werden meist gebraucht, um sie beim Generieren von Galerien mit auszugeben.CharlyBrown hat geschrieben:...as ist denn der Hauptgrund dafür, dass die Verzeichnisse überhaupt in der Datenbank gespeichert werden? ...
Wenn du die Dateiverwaltung oder die Metainformationen nicht brauchst, kannt du immer noch alles per FTP machen. Du must nur in deinem Galeriemodul dafür sorgen, dass diese nicht zuerst über die DB geht, sondern direkt das Verzeichnis scannt. Hast du einmal alle Dateien, kanst du immer noch bei Bedarf prüfen, ob dazu Informationen in der DB vorhanden sind...
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
-
- Beiträge: 77
- Registriert: Sa 13. Feb 2010, 16:07
- Kontaktdaten:
Re: Fileauswahl für Modul
Ich hab das mal bei "Der-Dirigent" gesehen. Ist glaube ich ein alter Contenido-Fork. Dort konnte man jedenfalls in der Verzeichnisstruktur jeweils punktuell für Überordner oder einzelne Unterordner diesen Scan laufen lassen. Aber gut, man kann halt nicht alles habenxmurrix hat geschrieben:Man kann bei sehr vielen Upload-Verzeichnissen nicht jedes Mal die ganze Verzeichnisstruktur mit der Datenbank abgleichen, das würde bei sehr vielen Dateien/Verzeichnissen zu Performanceproblemen führen.
Gruß
Frank
Re: Fileauswahl für Modul
Danke, ist ein guter Hinweis. Verbesserungen und Optimierungen sind immer willkommen.CharlyBrown hat geschrieben:...Dort konnte man jedenfalls in der Verzeichnisstruktur jeweils punktuell für Überordner oder einzelne Unterordner diesen Scan laufen lassen. Aber gut, man kann halt nicht alles haben...
In 4.9 wurde in Sachen Optimierung des Abgleichs zwischen DB und Verzeichnisstruktur was gemacht, allerdings weis ich aus dem Stegreif nicht, ob man das selber festlegen kann oder ob das System entscheidet, wann und wie tief der Scan gehen soll. Ich glaube mich zu erinnern, dass wir nun ein Button für die Synchronisation des aktuellen Ordners inkl. Ordner der nächsten Ebebe haben.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: Fileauswahl für Modul
Über diesen Scan-Button würde ich mich auch freuen, den haben vermutlich schon viele vermisst.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Fileauswahl für Modul
Habe mir das gerade in 4.9 angesehen. Es gibt keinen Button zum Synchronisieren der Verzeichnisse, das geschieht automatisch. Immer, wenn man ein Verzeichnis auswählt wird dieses Verzeichnis und eine Ebene tiefer mit der DB abgeglichen.Faar hat geschrieben:Über diesen Scan-Button würde ich mich auch freuen, den haben vermutlich schon viele vermisst.
Ich denke, da braucht man nicht zusätzlich einen Button dafür.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: Fileauswahl für Modul
Könnte das auch bei der Version 4.8 der Fall sein?
Ich hatte mal den Eindruck, als wären nach einer Aktion die Dateien die per FTP hochgeladen wurden, in der Auswahlliste aufgetaucht.
Irgendwie scheint sich das nach und nach zu aktualisieren, vielleicht wenn man etwas hochlädt oder bearbeitet?
Ich könnte mich auch täuschen, weil als ich es mal ausprobieren wollte, ging es nicht.
Ich hatte mal den Eindruck, als wären nach einer Aktion die Dateien die per FTP hochgeladen wurden, in der Auswahlliste aufgetaucht.
Irgendwie scheint sich das nach und nach zu aktualisieren, vielleicht wenn man etwas hochlädt oder bearbeitet?
Ich könnte mich auch täuschen, weil als ich es mal ausprobieren wollte, ging es nicht.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.