Fremde Uploads ermöglichen
am 01.12.2011 - 18:17 Uhr in
Servus,
ich habe auf meiner Seite einen Inhaltstyp "Sendung" mit einem Filefield, wo mp3s reinkommen. Die mp3s (kommen von extern, von vielen unterschiedlichen Leuten) werden von Redakteuren hochgeladen, das läuft grundsätzlich alles ganz ok, könnte aber verbessert werden: Die Redakteure bekommen die mp3s per Dropbox & Co oder sogar per CD mit der Post, das ist nicht sehr optimal, da das Handling den mp3s zeitraubend ist (ca. 30MB/mp3).
Jetzt ist der Wunsch da, die Sache zu vereinfachen, ich hab bereits ein zwei Vorstellungen, weiß aber nicht, ob bzw. wie ich das umsetzen kann:
1. Möglichkeit: Es wird eine neuer Inhalt vom Typ "Sendung" angelegt, der Redakteur alles aus und kann einen Zufallslink generieren, über den ein externer Upload (ohne Drupal-Account) für die Sendung möglich ist (d.h. der mp3-Uploader bekommt den Zufallslink per Mail, kann das mp3 hochladen und auf "fertig" klicken, dann wird der Uploadlink ungültig). Der Redakteur bekommt ein Mail und kann die Sendung fertigstellen.
2. Möglichkeit: Ein anoymer Uploadlink der per Mail versendet wird (der wieder nach Upload und "fertig"-Knopferl ungültig wird), um irgendwo ins Dateisystem hochladen zu können. Der Redakteur legt dann eine neue Sendung an und kann die mp3-Datei lokal aus dem Dateisystem verknüpfen.
Hättet ihr eine Idee, wie man soetwas realisieren kann? Oder eine ganz andere Möglichkeit?
Danke!
Grüße, Stefan
- Anmelden oder Registrieren um Kommentare zu schreiben
Du könntest da was mit Token
am 01.12.2011 - 23:00 Uhr
Du könntest da was mit Token (Zum Erstellen der Zufalls-URL) und mit Rules (Workflows abbilden) zusammen basteln.
Token kann Zufallswerte erstellen, den Wert kannst du mit einer URL verwenden und als Titel des Nodes festlegen (evtl mit dem prepopulate oder auto node titles). Mit Rules kannst du festlegen, dass dem angelegten node Bearbeitunsgrechte entzogen werden, der Redakteur benachrichtigt wird und all so was.
Oder der Redakteur legt den Node an, der bekommt die geheime URL, die an eine im Node eingegebene email verschickt wird und zur einmaligen Bearbeitung zur Verfügung steht. Ich denke mal, dass du da noch nach den verschiedenen Access-Modulen schauen solltest, die da noch weitere Möglichkeiten zur Verfügung stellen.
Viele Grüße
Roger
Drupalentwickler München
CMS Frameworker Drupal @ Reinblau
Servus, danke für den Tipp,
am 12.01.2012 - 18:34 Uhr
Servus,
danke für den Tipp, ich komme leider jetzt erst dazu... So ganz geht die Sache aber noch nicht.
Also... Rules schaut ja seehr gut aus.
Soweit hab ichs geschafft: Ich hab 3 weitere Felder angelegt: Checkbox "Erlaube externen Upload", Textfelder "email" und "randomid". Beim Speichern eines neuen Nodes wird die randomid automatisch angelegt. Ein als Redakteur angemeldeter User bekommt im Artikel den Edit-Link angezeigt und kann ihn weiterschicken.
Jetzt gibt's eine Rule, die folgendes macht:
Wenn
-) Node-Typ = Sendung
-) Erlaube externen Upload = 1
-) Am Ende des Pfads steht "/upload"
dann
+) erstelle neuen User anhand der Mailadresse
+) stecke ihn in die Gruppe "uploader" (darf gewisse felder von eigenen Inhalten bearbeiten, aber auch mit Administrator getestet)
+) stelle den Node-Autor auf den neuen User um
-) lade Benutzerkonto des neuen Users
+) gehe zu /node//edit
(Alle mit + markierten Punkte funktionieren.)
Da bekomme ich jedoch immer ein "Zugriff verweigert". Selbst wenn ich den den neuen User per Regel in die Gruppe "Administrator" stecke. Gebe ich dem User ein Passwort und logge mich manuell ein, darf ich den Node editieren. Also kein Rechteproblem.
Habe ich "Lade Benutzerkonto des neuen Users" falsch verstanden? Werde ich damit nicht als der gewünschte User angemeldet?
Zum Schluss hätte ich noch eine Regel angelegt, die den Useraccount wieder löscht, wenn der neue User den Artikel abspeichert.
Hat jemand eine Anregung?
Danke!
Grüße, Stefan
Anbei das Rules-Log. Bei der ersten Aufzählung schaut alles gut aus (True), warum hier mehrere Aufzählungen drinnen sind, verstehe ich nicht.
0 ms "Inhalt soll angezeigt werden" has been invoked.
6.074 ms Executing the rule "External upload" on rule set "Inhalt soll angezeigt werden"
6.328 ms Condition "Angezeigter Inhalt hat den Typ Sendung" evaluated to TRUE.
66.329 ms Condition "Check path" evaluated to TRUE.
66.524 ms Condition "Das Feld ‚field_enable_upload‘ von angezeigter Inhalt enthät einen Wert" evaluated to TRUE.
68.38 ms Action execution: "Benutzer erstellen"
92.76 ms Successfully added the new variable "Neuer Benutzer"
92.832 ms Successfully added the new variable "Passwort des neuen Benutzers"
92.965 ms Action execution: "Benutzerrolle hinzufügen"
127.392 ms Action execution: "Benutzerkonto laden"
129.703 ms Successfully added the new variable "Geladener Benutzer"
130.49 ms Action execution: "Seiten-Weiterleitung"
130.602 ms Variable angezeigter Inhalt vom Typ node gespeichert.
218.034 ms Evaluation of "Inhalt soll angezeigt werden" has been finished.
------------------------------------------------------------------------------------------
0 ms "Inhalt soll angezeigt werden" has been invoked.
7.195 ms Executing the rule "External upload" on rule set "Inhalt soll angezeigt werden"
7.385 ms Condition "Angezeigter Inhalt hat den Typ Sendung" evaluated to FALSE.
7.516 ms Evaluation of "Inhalt soll angezeigt werden" has been finished.
------------------------------------------------------------------------------------------
0 ms "Inhalt soll angezeigt werden" has been invoked.
0.108 ms Executing the rule "External upload" on rule set "Inhalt soll angezeigt werden"
0.38 ms Condition "Angezeigter Inhalt hat den Typ Sendung" evaluated to FALSE.
0.437 ms Evaluation of "Inhalt soll angezeigt werden" has been finished.
------------------------------------------------------------------------------------------
0 ms "Inhalt soll angezeigt werden" has been invoked.
0.093 ms Executing the rule "External upload" on rule set "Inhalt soll angezeigt werden"
0.399 ms Condition "Angezeigter Inhalt hat den Typ Sendung" evaluated to FALSE.
0.464 ms Evaluation of "Inhalt soll angezeigt werden" has been finished.
------------------------------------------------------------------------------------------
0 ms "Inhalt soll angezeigt werden" has been invoked.
0.204 ms Executing the rule "External upload" on rule set "Inhalt soll angezeigt werden"
0.453 ms Condition "Angezeigter Inhalt hat den Typ Sendung" evaluated to FALSE.
0.51 ms Evaluation of "Inhalt soll angezeigt werden" has been finished.