CMS_FILELIST - Sortierung der Dateien auf dem manuellen Tab

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
ncf
Beiträge: 17
Registriert: Di 15. Aug 2006, 07:57
Wohnort: Magdeburg
Kontaktdaten:

CMS_FILELIST - Sortierung der Dateien auf dem manuellen Tab

Beitrag von ncf » Mi 5. Nov 2014, 15:26

Ich habe in den letzten Tage zahlreiche Artikel mit schicken kleinen Bildergalerien versehen und dabei das Modul content_picture_gallery aus dem Beispielmandanten eingesetzt - eine echte Bereicherung!
Allerdings habe ich mit einem kleinen Schönheitsfehler gekämpft und da ich im Forum keine Lösung dazu gefunden habe, mir selbst eine gezimmert. Im Backend bietet die Konfiguration auf dem Tab "Manuell" nach Aktivierung und Auswahl des gewünschten Verzeichnisses eine SELECT-Liste mit allen gefundenen Dateien. Diese ist leider nicht sortiert. Nun habe ich ca. 100 Dateien in dem Ordner und es war recht mühselig, immer die ganze Liste nach meinen Treffern zu durchsuchen.
Also habe ich mir die Datei /contenido/classes/content_types/class.content.type.filelist.php vorgenommen und an der Funktion generateFileSelect() geschraubt.

Ich habe den Teil

Code: Alles auswählen

        if ($directoryPath != '') {
            $handle = opendir($this->_uploadPath . $directoryPath);
            while (($entry = readdir($handle)) !== false) {
                if (is_file($this->_uploadPath . $directoryPath . '/' . $entry)) {
                    $htmlSelectOption = new cHTMLOptionElement($entry, $directoryPath . '/' . $entry);
                    $htmlSelect->addOptionElement($i, $htmlSelectOption);
                    $i++;
                }
            }
            closedir($handle);
        }
umgebaut in

Code: Alles auswählen

	if ($directoryPath != '') {
		$handle = opendir($this->_uploadPath . $directoryPath);
		while (($entry = readdir($handle)) !== false) {
			if (is_file($this->_uploadPath . $directoryPath . '/' . $entry)) {
				$files[] = $entry;
			}
		}
		if(is_array($files)) {
			sort($files);
			foreach ($files as $file) {
				$htmlSelectOption = new cHTMLOptionElement($file, $directoryPath . '/' . $file);
				$htmlSelect->addOptionElement($i, $htmlSelectOption);
				$i++;
			}
		}
		closedir($handle);
	}
.
Damit bin ich zumindest zufrieden. Sollte der Ansatz in einer Folgeversion mal Anwendung finden, würde ich mich freuen - dann könnte ich den Punkt aus meiner Customizing-Liste schmeißen :wink:

Antworten