File Field: automatisch Kategorie / Taxonomy Term zuweisen
am 12.02.2015 - 21:44 Uhr in
Liebes Forum,
nach stundenlanger Suche fällt mir nichts anderes mehr ein, als hier nachzufragen. Ich kämpfe mal wieder mit dem Dateisystem von Drupal. Das ist doch alles sehr unübersichtlich.
Für einen Content Type habe ich ein File Field angelegt, mit dem Standard-Upload-Steuerelement. Die Dateien werden in ein festgelegtes Verzeichnis hochgeladen. Jetzt möchte ich aber zusätzlich erreichen, dass die Dateien auch einen festgelegten taxonomy term erhalten. Warum? Damit ich sie im Media Browser 2 filtern kann, sonst wird das irgendwann alles sehr unübersichtlich, wenn viele Benutzer viele Dateien hochladen.
Wie stelle ich das an? Eigenes Modul? Gibt es schon ein Modul dafür? Oder über Rules?
Für Hinweise aller Art bin ich dankbar!
Grom
- Anmelden oder Registrieren um Kommentare zu schreiben
was heißt automatisch?
am 13.02.2015 - 09:24 Uhr
Woran soll das Taxonomy erkennen, dass es eingetragen werden soll?
Oder geht es eher darum, dass der Anwender, der die Datei hoch lädt, eine Kategorie auswählen muss?
Das ist leicht zu lösen.
Du machst ein Taxonomy-Term-Field zum Mussfeld und bindest einen Taxonomy Katalog daran.
Diesen Katalog befüllst du mit deinen gewünschten Kategorien.
Grüße
Ronald
ronald schrieb Woran soll das
am 13.02.2015 - 12:56 Uhr
Woran soll das Taxonomy erkennen, dass es eingetragen werden soll?.
...ganz einfach daran, dass alle Dateien in einem Content Type immer den gleichen Term erhalten. Alle Benutzerbilder sollen mit "Benutzerbild" getaggt werden, alle Bilder in einfachen Seiten mit "Seitenbilder", alle Bilder in Praktikumsangeboten mit "Praktikumsbilder" oder so ähnlich.
Oder: Ich kann ja beim Steuerelement für den Dateiupload festlegen, in welchem Ordner im Dateisystem die Bilder landen. Ideal wäre, wenn die Dateien dann einfach auch ihren Ordnernamen als Tag bekommen.
Oder geht es eher darum, dass der Anwender, der die Datei hoch lädt, eine Kategorie auswählen muss?
Nein, es muss so einfach wie möglich sein. Nur ein Hochladen-Button, sonst nichts. Welche Kategorie zugeordnet wird, soll das System aufgrund des Content-Types oder Dateiverzeichnisses entscheiden.
Du machst ein Taxonomy-Term-Field zum Mussfeld und bindest einen Taxonomy Katalog daran.
Das bringt mich schon einmal ein Stück weiter. Ich sehe hier zwei Wege, beiden kommen aber noch nicht ganz am Ziel an ;-)
Dafür brauchst du kein Taxonomy
am 13.02.2015 - 13:56 Uhr
Du kannst für jeden content_type ein eigenes Bildfeld anlegen, und diesem einen eigenen Pfad geben.
Nach content_types kannst du immer selektieren.
Taxonomies brauchst du nur, wenn du innerhalb eines content_types weitere Kategorisierungen brauchst.
Insofern läuft eh' alles automatisch.
Dein User schreibt einen Prakatikumsbericht, dann landen diese Bilder unter praktika, er schreibt einen Urlaubsbericht, dann sind die Bilder unter urlaub, etc.
Grüße
Ronald
ronald schrieb Nach
am 13.02.2015 - 14:21 Uhr
Nach content_types kannst du immer selektieren.
Ich will in der Library im Media Browser 2 Ordnung halten. Heißt: wenn ich an anderer Stelle den Media Browser einsetze, sollen dort zum Beispiel keine Benutzerbilder angezeigt werden. Wie kann ich dort nach content_type selektieren? Das scheint mir irgendwie nicht zusammenzupassen, dazu müsste ja im entsprechenden View erst einmal ausgelesen werden, wo die Datei verwendet ist, oder?
wenn die File_Fields
am 13.02.2015 - 15:32 Uhr
deines content_types jeweils in ein anderes Verzeichnis schreiben, hast du die Ordnung automatisch.
Für den Mediabrowser nutzen Taxonomies absolut nichts.
Grüße
Ronald
ronald schrieb deines
am 13.02.2015 - 16:34 Uhr
deines content_types jeweils in ein anderes Verzeichnis schreiben, hast du die Ordnung automatisch.
Für den Mediabrowser nutzen Taxonomies absolut nichts.
Ich glaube fast, wir schreiben aneinander vorbei. Ich habe überhaupt keine Ordnung im Media Browser, selbst wenn ich Verzeichnisse benutze. Oder liegt das an den von mir eingesetzten Versionen? Ich benutze Media 7.x-2.0 und File entity 7.x-2.0.
Und klar nutzen mir Taxonomies. Mit Media 2 wird im Media Browser ein View verwendet, das ich nach Taxonomy Terms filtern kann.
Es geht mir ja nicht darum, dass ich als Administrator den Überblick behalte, das ist einfach. Auf der Seite werden potenziell 200 Nutzer in unterschiedlichen Rollen agieren. Und die müssen ohne Schulung den Überblick behalten, weshalb das User Interface möglichst selbst erklärend sein soll.
Also doch
am 13.02.2015 - 16:43 Uhr
für jeden Typ Bild einen content_type mit einem Feld für das Bild und einem eigenen Speicherpfad.
Da muss niemand denken, da braucht es keine Tricks und keinen doppelten Boden.
Wenn der richtige content_type verwendet wird, was man auch durch Rechte und mit entsprechenden Menüeinträgen erreichen kann, werden die Bilder entsprechend gespeichert, und sind gezielt selektierbar.
Willst du innerhalb der Typen weiter kategorisieren, kommen eventuell noch Taxonomies zum Zuge, die entsprechen im content_type wählbar sind.
Grüße
Ronald
ronald schriebfür jeden Typ
am 13.02.2015 - 16:53 Uhr
für jeden Typ Bild einen content_type mit einem Feld für das Bild und einem eigenen Speicherpfad.
Klar, das habe ich ja gemacht. Aber wenn ein anderer Benutzer in einer anderen Rolle bei einem anderen Inhaltstyp dann den Media Browser verwenden soll, werden einfach alle Dateien/Bilder angezeigt.
fWenn der richtige content_type verwendet wird [...] werden die Bilder entsprechend gespeichert, und sind gezielt selektierbar.
Das ist die Frage: wie kann ich in einem View gezielt die Bilder/Dateien eines bestimmten Speicherpfades selektieren? Und am besten den Filter exposed machen, wobei eine Liste der Speicherpfade zur Auswahl gegeben wird?
Ich werde mal mit dem Computed Field experimentieren, vielleicht hilft das weiter.
wenn du die Bilder nach content_type unterscheidest
am 13.02.2015 - 17:15 Uhr
kannst du gezielt nach diesem content_type selektieren.
Grüße
Ronald
Ahhh, danke, habe es
am 13.02.2015 - 17:33 Uhr
Ahhh, danke, habe es gefunden. Zum Beispiel "File Usage: Entity type". Damit kann ich immerhin die Nutzerbilder ausblenden. Eine Auswahlliste für die Endbenutzer bekomme ich damit zwar nicht hin, aber immerhin schon besser als gar nichts.
Und Filtern nach Content Type geht zumindest dann gut, wenn ich in allen Content Types das gleiche Feld verwende.
Danke!
Du kannst entscheiden
am 13.02.2015 - 21:11 Uhr
ob du nach content_type filtern, oder die content_types getrennt verarbeiten willst.
Wenn jeder content_type ein anderes Bildfeld hat, sind die Bilder klar voneinander getrennt, und die Bilder zu den content_types können automatisch in verschiedenen Verzeichnissen gespeichert werden.
Dann hast du deine physische Trennung, die du auch im media-Browser wieder findest.
Grüße
Ronald
ronald schrieb Dann hast du
am 13.02.2015 - 21:21 Uhr
Dann hast du deine physische Trennung, die du auch im media-Browser wieder findest.
In meinem Media Browser finde ich die physische Trennung nicht wieder. Auf welche Version beziehst Du Dich konkret?
wenn jede Bilderkategorie in einem anderen Verzeichnis liegt
am 13.02.2015 - 21:40 Uhr
findest du es wieder.
Es ist ein wenig mehr Planungs- und Konfigurationsarbeit vorneweg, weil jeder content_type ein eigenes Feld und dafür ein eigenes Uploadverzeichnis braucht.
Grüße
Ronald
Die content_types sind alle
am 13.02.2015 - 21:51 Uhr
Die content_types sind alle entsprechend eingerichtet. Wo genau finde ich das wieder? Kannst Du mal einen Screenshot davon machen, wie das aussehen müsste?
und dann
am 13.02.2015 - 22:15 Uhr
und dann
Grüße
Ronald
Vielen Dank für Deine Mühen.
am 13.02.2015 - 22:27 Uhr
Vielen Dank für Deine Mühen. Wir haben uns wohl missverstanden, diese Einstellungen habe ich wie gesagt vorgenommen. Ich meine: wo finde ich diese Struktur im Media Browser wieder?
ich habe gerade nirgends den Mediabrowser laufen
am 13.02.2015 - 23:20 Uhr
aber dieser zeigt doch die Unterstruktur des files-Verzeichnisses.
Wenn nun jeder content_type ein eigenes Verzeichnis hat, muss ich das doch sehen.
Grüße
Ronald
Das ist dann wohl genau das
am 13.02.2015 - 23:52 Uhr
Das ist dann wohl genau das Missverständnis. Der zeigt eben nicht die Unterstruktur des files-Verzeichnisses.
Ich baue mir jetzt ein eigenes Modul, um Dateien automatisch ihr Verzeichnis als taxonomy term zuzuweisen. Ein erster Versuch mit hook_file_presave sieht vielversprechend aus.
Erweitere die Filetypes mit
am 14.02.2015 - 13:45 Uhr
Erweitere die Filetypes mit einem Termfeld. Dann kannst du beim Upload im Media-Browser diesen Term auswählen. Automatisch diesen zu befüllen, basierend auf den Context, erfordert erhöhtest Know-How. ;-)
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Im Anhang die erste Version
am 14.02.2015 - 14:12 Uhr
Im Anhang die erste Version eines Moduls, das genau das macht. (Die Endung habe ich auf txt geändert, weil die Datei sonst im Forum nicht abrufbar war).
Falls noch jemand anderes das brauchen sollte. Tipps nehme ich gern entgegen!
Die zentrale Funktion ist file_taxonomy_file_presave. Alles andere sind nur Hilfsfunktionen oder Moduleinstellungen.