Seite 1 von 1
Integration kitDirList?
Verfasst: Fr 15. Dez 2017, 13:11
von shadowcat
kitDirList war/ist eine WB-Erweiterung des verstorbenen Ralf H., mit dem sich kennwortgeschützte Downloads realisieren lassen.
http://www.phpmanufaktur.info/de/addons/kitdirlist.php
Das könnte man eigentlich auch prima in die Medienverwaltung integrieren, oder? Oder als eigenes Admin-Tool?
Re: Integration kitDirList?
Verfasst: So 17. Dez 2017, 10:47
von creativecat
Ich habe tatsächlich gerade Bedarf an einer solchen Lösung... Grundsätzlich fände ich es aber besser, wenn unser Medienbereich einfach mächtiger wird. Denn der "einfache" User wird wohl darüber die Dateien hochladen wollen. Einbinden kann man es dann mit Droplets.
Man könnte im Media-Bereich "Ordneroptionen" hinzufügen mit einer Option "Ordner schützen". Das erstellte Passwort braucht man ja theoretisch gar nicht, weil ich ja mit PHP die Dateien einfach "rausziehen" kann, richtig?
Grundsätzlich könnte man dann aber auch eine *_media in der Datenbank erstellen und damit die zusätzlichen Optionen die in Ralfs Textdatei gespeichert wurden in der DB speichern und bequem administrieren.
Also die Idee finde ich super!!!
Re: Integration kitDirList?
Verfasst: Mo 18. Dez 2017, 16:55
von Morpheus
Ja, das finde ich auch eine super Idee

Re: Integration kitDirList?
Verfasst: Mi 20. Dez 2017, 11:11
von shadowcat
Ja, genau so!
Re: Integration kitDirList?
Verfasst: Mi 20. Dez 2017, 11:13
von shadowcat
Es gibt zumindest schon eine Tabelle mit den Dateinamen und Checksummen, um die Dateien vor Manipulation zu schützen. Die ließe sich problemlos erweitern. Den Verzeichnisschutz macht man per .htaccess, weiß nicht ob man dafür auch eine Tabelle braucht.
Re: Integration kitDirList?
Verfasst: Mi 3. Jan 2018, 19:12
von shadowcat
Neue Tabelle für Verzeichnisse:
Code: Alles auswählen
CREATE TABLE `cat_media_dirs` (
`dir_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`site_id` INT(11) UNSIGNED NOT NULL,
`path` TEXT NOT NULL,
`deleted` CHAR(1) NULL DEFAULT NULL,
`protected` CHAR(1) NULL DEFAULT NULL,
PRIMARY KEY (`dir_id`),
INDEX `FK_cat_media_dirs_cat_sites` (`site_id`),
CONSTRAINT `FK_cat_media_dirs_cat_sites` FOREIGN KEY (`site_id`) REFERENCES `cat_sites` (`site_id`) ON UPDATE CASCADE ON DELETE CASCADE
);
Änderung Tabelle cat_media (jetzt cat_media_files):
Code: Alles auswählen
CREATE TABLE `cat_media_files` (
`media_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`site_id` INT(11) UNSIGNED NOT NULL,
`dir_id` INT(11) UNSIGNED NOT NULL,
`filename` TEXT NULL,
`checksum` TEXT NULL,
PRIMARY KEY (`media_id`),
INDEX `FK_cat_media_cat_sites` (`site_id`),
INDEX `FK_cat_media_files_cat_media_dirs` (`dir_id`),
CONSTRAINT `FK_cat_media_files_cat_media_dirs` FOREIGN KEY (`dir_id`) REFERENCES `cat_media_dirs` (`dir_id`) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT `FK_cat_media_cat_sites` FOREIGN KEY (`site_id`) REFERENCES `cat_sites` (`site_id`) ON UPDATE CASCADE ON DELETE CASCADE
);
Re: Integration kitDirList?
Verfasst: Mo 8. Jan 2018, 17:17
von shadowcat
Mal ein erster Wurf für die Verzeichnisansicht. Derzeit stimmt die Sortierung noch nicht, [root] sollte natürlich ganz oben stehen. Die Informationen kommen aus der Datenbank.
Re: Integration kitDirList?
Verfasst: Di 9. Jan 2018, 06:19
von creativecat
Das sieht schon mal sehr gut aus!
Re: Integration kitDirList?
Verfasst: Di 9. Jan 2018, 10:56
von shadowcat
Es werden jetzt auch schon .htaccess und .htpasswd generiert und auch wieder entfernt, wenn man die Sperre aufhebt. Für beide Dateien gibt es Templates, die man sich ggfs. anpassen kann. (Aber ohne GUI.)
Re: Integration kitDirList?
Verfasst: Di 9. Jan 2018, 11:16
von shadowcat
Achso, ein Recover (Rettungsring-Symbol) würde natürlich nur das Verzeichnis anlegen, aber nicht den Inhalt wiederherstellen. Woher denn auch.
Hier mal die Tabellen:
Verzeichnisse
Code: Alles auswählen
CREATE TABLE `cat_media_dirs` (
`dir_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`site_id` INT(11) UNSIGNED NOT NULL,
`path` TEXT NOT NULL,
`deleted` CHAR(1) NULL DEFAULT NULL,
`protected` CHAR(1) NULL DEFAULT NULL,
PRIMARY KEY (`dir_id`),
INDEX `FK_cat_media_dirs_cat_sites` (`site_id`),
CONSTRAINT `FK_cat_media_dirs_cat_sites` FOREIGN KEY (`site_id`) REFERENCES `cat_sites` (`site_id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
Dateien
Code: Alles auswählen
CREATE TABLE `cat_media_files` (
`media_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`site_id` INT(11) UNSIGNED NOT NULL,
`dir_id` INT(11) UNSIGNED NOT NULL,
`filename` TEXT NULL,
`checksum` TEXT NULL,
`deleted` CHAR(1) NULL DEFAULT NULL,
PRIMARY KEY (`media_id`),
INDEX `FK_cat_media_cat_sites` (`site_id`),
INDEX `FK_cat_media_files_cat_media_dirs` (`dir_id`),
CONSTRAINT `FK_cat_media_cat_sites` FOREIGN KEY (`site_id`) REFERENCES `cat_sites` (`site_id`) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT `FK_cat_media_files_cat_media_dirs` FOREIGN KEY (`dir_id`) REFERENCES `cat_media_dirs` (`dir_id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
Erweiterte Informationen zu Dateien
Code: Alles auswählen
CREATE TABLE `cat_media_data` (
`media_id` INT(11) UNSIGNED NOT NULL,
`attribute` VARCHAR(50) NOT NULL,
`value` TEXT NOT NULL,
INDEX `FK_cat_media_data_cat_media` (`media_id`),
CONSTRAINT `FK_cat_media_data_cat_media` FOREIGN KEY (`media_id`) REFERENCES `cat_media_files` (`media_id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
In letztere werden derzeit die Eigenschaften eingetragen, die getID3 aus dem ID3-Header ermitteln kann. Welche das sind, hängt unter anderem vom Dateityp ab. Bei Bildern können das z.B. die Auflösung und Informationen zum Kameramodell sein. Dateigröße und MIME-Typ werden immer ermittelt. Diese Tabelle könnte dann auch weitere Informationen zur Datei aufnehmen, z.B. eine Beschreibung.