Subject: Umgang mit Attachments
Hallo zusammen,
ich habe die letzten Tage wieder mehr mit der Entwicklung an UNB2 verbracht, nachdem ich jetzt ein neues Projekt plane, in dem ich das neue System einsetzen will. Seit dem letzten öffentlichen Release gibt es einige kleinere Neuerungen, zuletzt habe ich einige Änderungen am Datenbankschema und dem Datenbankzugriff vorgenommen. Auch die Demo-Anwendung hat einiges dazugelernt, u.a. die Darstellung mehrerer Mitteilungen in einer Diskussion, wie man es von Foren eben kennt (und nicht so umständlich wie bei heise.de).
Bevor ich dann mit der Textsuche anfange, möchte ich jetzt aber noch die Attachment-Verarbeitung klären und evtl. auch fertig implementieren. Bei einfachen Webforen (wie auch im UNB1) kann man an jede Mitteilung genau eine Datei anhängen. Die wird dann ggf. unter dem Text angezeigt. Das soll in UNB2 ja aber besser werden. Hier ist es vorgesehen, mehrere Dateien an beliebigen Stellen des Texts einzufügen, vergleichbar mit einem Wikipedia-Artikel.
Dazu müssen natürlich die Dateien irgendwie hochgeladen werden, um sie dann im Mitteilungstext an der gewünschten Stelle einzufügen. Soweit ist noch alles klar. Man öffnet ein Datei-Upload-Formular, am besten in einem 2. Tab oder Popup-Fenster, und erhält einen Textschnipsel, den man im Text einfügen kann, oder so ähnlich. Vom Prinzip her ist jede Datei auch nur eine Mitteilung, nur eben eine mit angehängten Daten, und bei der kein Betreff verwendet wird und der Mitteilungstext höchstens als Dateibeschreibung verwendet wird, wenn überhaupt. Dateien und Text-Mitteilungen sind in der Datenbank also das gleiche und werden auch von den gleichen Klassen behandelt.
Naja, was passiert dann mit für eine Mitteilung hochgeladenen Dateien, wenn die Mitteilung nie erstellt wird? Bleiben die im System liegen oder räumt sie bald jemand auf? Wer findet solche Dateien überhaupt nochmal? Weiß ich noch nicht. Referenzen, an denen sich die Nutzung einer Datei in anderen Texten erkennen ließe, sind momentan nicht vorgesehen.
Nun fängt es aber mit den Unterschieden an: Eine Datei sollte z.B. nicht der Beginn einer Diskussion (DEP) sein. Auf Dateien sollte man auch nicht mit anderen Mitteilungen antworten können, demnach erübrigt sich auch ein Teil der Berechtigungen und Moderationseinschränkungen. Um die Unterscheidung zu verstärken würde ich dafür sorgen, dass eine Mitteilung, die als Datei entstanden ist, auch immer eine Datei bleibt, und Textmitteilungen nie eine Datei werden. Natürlich sind Dateien ja genauso versionierbar, der Dateiinhalt kann also später verändert werden, aber gelöscht werden soll er halt nicht können. (Das Datenbankfeld "HasData" wandert dabei auch von der Tabelle "message_revision" nach "message".)
Noch haariger wird das ganze mit der Moderation: Mitteilungen von unbekannten Benutzern müssen zuerst von einem Moderator genehmigt werden, bevor andere sie lesen können. Solche Mitteilungen erscheinen also in den Listen, aber noch ohne Inhalt und mit dem Vermerk "unapproved". Der nächste Moderator sieht das und klickt einfach auf "genehmigen".
Was passiert aber mit den Dateien in einer Mitteilung? Die müssen ja auch erstmal genehmigt werden, bevor sie jemand sehen kann. (Nur Moderatoren sehen automatisch alle noch ungenehmigten Inhalte.) Die erscheinen aber natürlich nicht in einer Diskussionsliste, wo man sie einzeln abhaken könnte. Hier würde ich beim Genehmigen einer Mitteilung einfach alle enthaltenen Dateien gleich mit genehmigen, damit die komplette Mitteilung gleich an einem Stück erscheint.
Wird eine Mitteilung dann vom Autor geändert, muss auch die neue Revision erst wieder genehmigt werden, bevor sie die alte öffentlich ablöst. Wenn dabei auch wieder Dateien überarbeitet wurden, werden die gleich mit genehmigt.
Aber was passiert, wenn nur eine Datei überarbeitet wurde, aber nicht die Mitteilung, die sie verwendet? Hier erscheint ja kein offensichtlicher Hinweis, dass etwas genehmigt werden müsste, weil keine Textmitteilung betroffen ist. Mir würde im Moment nur einfallen, dass beim Anzeigen jeder einzelnen Mitteilung eben geprüft werden müsste, ob sie noch ungenehmigte Dateiversionen verwendet, um die sich der Moderator dann kümmern kann. Das könnte in der Implementierung aber recht ineffizient enden...
Das ist so mein aktueller Gedankenstand zum Thema Attachments/Dateien. Ich hoffe, ich konnte mich für interessierte Leser verständlich ausdrücken. Als Grundlagenlektüre empfehle ich die Dokumentation aus dem letzten Release. Anregungen, Hinweise und Lösungsvorschläge nehme ich gerne an.
ich habe die letzten Tage wieder mehr mit der Entwicklung an UNB2 verbracht, nachdem ich jetzt ein neues Projekt plane, in dem ich das neue System einsetzen will. Seit dem letzten öffentlichen Release gibt es einige kleinere Neuerungen, zuletzt habe ich einige Änderungen am Datenbankschema und dem Datenbankzugriff vorgenommen. Auch die Demo-Anwendung hat einiges dazugelernt, u.a. die Darstellung mehrerer Mitteilungen in einer Diskussion, wie man es von Foren eben kennt (und nicht so umständlich wie bei heise.de).
Bevor ich dann mit der Textsuche anfange, möchte ich jetzt aber noch die Attachment-Verarbeitung klären und evtl. auch fertig implementieren. Bei einfachen Webforen (wie auch im UNB1) kann man an jede Mitteilung genau eine Datei anhängen. Die wird dann ggf. unter dem Text angezeigt. Das soll in UNB2 ja aber besser werden. Hier ist es vorgesehen, mehrere Dateien an beliebigen Stellen des Texts einzufügen, vergleichbar mit einem Wikipedia-Artikel.
Dazu müssen natürlich die Dateien irgendwie hochgeladen werden, um sie dann im Mitteilungstext an der gewünschten Stelle einzufügen. Soweit ist noch alles klar. Man öffnet ein Datei-Upload-Formular, am besten in einem 2. Tab oder Popup-Fenster, und erhält einen Textschnipsel, den man im Text einfügen kann, oder so ähnlich. Vom Prinzip her ist jede Datei auch nur eine Mitteilung, nur eben eine mit angehängten Daten, und bei der kein Betreff verwendet wird und der Mitteilungstext höchstens als Dateibeschreibung verwendet wird, wenn überhaupt. Dateien und Text-Mitteilungen sind in der Datenbank also das gleiche und werden auch von den gleichen Klassen behandelt.
Naja, was passiert dann mit für eine Mitteilung hochgeladenen Dateien, wenn die Mitteilung nie erstellt wird? Bleiben die im System liegen oder räumt sie bald jemand auf? Wer findet solche Dateien überhaupt nochmal? Weiß ich noch nicht. Referenzen, an denen sich die Nutzung einer Datei in anderen Texten erkennen ließe, sind momentan nicht vorgesehen.
Nun fängt es aber mit den Unterschieden an: Eine Datei sollte z.B. nicht der Beginn einer Diskussion (DEP) sein. Auf Dateien sollte man auch nicht mit anderen Mitteilungen antworten können, demnach erübrigt sich auch ein Teil der Berechtigungen und Moderationseinschränkungen. Um die Unterscheidung zu verstärken würde ich dafür sorgen, dass eine Mitteilung, die als Datei entstanden ist, auch immer eine Datei bleibt, und Textmitteilungen nie eine Datei werden. Natürlich sind Dateien ja genauso versionierbar, der Dateiinhalt kann also später verändert werden, aber gelöscht werden soll er halt nicht können. (Das Datenbankfeld "HasData" wandert dabei auch von der Tabelle "message_revision" nach "message".)
Noch haariger wird das ganze mit der Moderation: Mitteilungen von unbekannten Benutzern müssen zuerst von einem Moderator genehmigt werden, bevor andere sie lesen können. Solche Mitteilungen erscheinen also in den Listen, aber noch ohne Inhalt und mit dem Vermerk "unapproved". Der nächste Moderator sieht das und klickt einfach auf "genehmigen".
Was passiert aber mit den Dateien in einer Mitteilung? Die müssen ja auch erstmal genehmigt werden, bevor sie jemand sehen kann. (Nur Moderatoren sehen automatisch alle noch ungenehmigten Inhalte.) Die erscheinen aber natürlich nicht in einer Diskussionsliste, wo man sie einzeln abhaken könnte. Hier würde ich beim Genehmigen einer Mitteilung einfach alle enthaltenen Dateien gleich mit genehmigen, damit die komplette Mitteilung gleich an einem Stück erscheint.
Wird eine Mitteilung dann vom Autor geändert, muss auch die neue Revision erst wieder genehmigt werden, bevor sie die alte öffentlich ablöst. Wenn dabei auch wieder Dateien überarbeitet wurden, werden die gleich mit genehmigt.
Aber was passiert, wenn nur eine Datei überarbeitet wurde, aber nicht die Mitteilung, die sie verwendet? Hier erscheint ja kein offensichtlicher Hinweis, dass etwas genehmigt werden müsste, weil keine Textmitteilung betroffen ist. Mir würde im Moment nur einfallen, dass beim Anzeigen jeder einzelnen Mitteilung eben geprüft werden müsste, ob sie noch ungenehmigte Dateiversionen verwendet, um die sich der Moderator dann kümmern kann. Das könnte in der Implementierung aber recht ineffizient enden...
Das ist so mein aktueller Gedankenstand zum Thema Attachments/Dateien. Ich hoffe, ich konnte mich für interessierte Leser verständlich ausdrücken. Als Grundlagenlektüre empfehle ich die Dokumentation aus dem letzten Release. Anregungen, Hinweise und Lösungsvorschläge nehme ich gerne an.
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬

Yves
Show profile
Link to this post