[gelöst]Button neben View zur Bearbeitung des Status
am 11.03.2014 - 16:02 Uhr in
Hallo liebe Experten,
kann mir jemand einen Ansatz bzw. Tipps für folgende Aufgabe geben?:
Ich habe eine View. Der User soll neben jedem Eintrag einen Bereich mit Buttons zur Bearbeitung haben (kann, muss aber nicht direkt in eine Spalte der View integriert werden).
Hierbei kann er den "Status" des Eintrags bearbeiten. Falls der Status "offen" ist, kann er entweder den Status auf "abgelehnt" oder "angenommen" setzen usw...
Man kann es sich insgesamt so vorstellen wie die Status-Leiste eines ebay-Kaufs...so schick muss es nicht sein, aber im Grunde soll hier der Workflow so abgebildet werden und über jeden Eintrag der View der aktuelle Status und die Möglichkeiten der Bearbeitung im aktuellen Zustand angeboten werden.
Ich brauch aber erstmal nur die Möglichkeit hier Buttons zu platzieren neben der View, wie die Funktionalität der Buttons usw. in der Datenbank zu realisieren ist habe ich schon Ansätze, aber zuerst brauche ich die Möglichkeit überhaupt Buttons zu setzen ;-)
Bin für jeden Tipp und Ansatz dankbar! Vorab vielen Dank!
Viele Grüße,
Max
- Anmelden oder Registrieren um Kommentare zu schreiben
Moinsen, mal angenommen, du
am 11.03.2014 - 18:56 Uhr
Moinsen,
mal angenommen, du bildest den Status mit einem Field in einem Inhaltstypen wie z.Bsp. Taxonomy Term Auswahlliste oder einfach ein Textfeld. Dann kannst Du das Feld in der View entweder mit:
in Place editierbar machen.
Einen Link in der View bekommst du generell über Global --> Benutzerdefinierter Text / Link. Brauchst du im Falle der beiden genannten Module aber nicht, die werden generiert.
Hey glycid, schonmal vielen
am 12.03.2014 - 01:24 Uhr
Hey glycid,
schonmal vielen Dank!
editablefields funktioniert bei mir irgendwie nicht aber editableviews sieht schonmal gut aus wenn ich den zu editierenden Status als auswahlliste angebe.
Jetzt hab ich allerdings 2 Probleme:
-die auswahlliste soll im status "offen" nur die möglichkeiten "bewerben" oder "ablehnen" beinhalten, wenn der status bereits "beworben" ist, so soll es die bearbeitungsmöglichkeit "angenommen" geben und bei "angenommen" dann "abschließen" um die aktion als abgeschlossen in der datenbank festzuhalten: Ich müsste also die Selektionsmöglichkeiten je nach aktuellem Status anbieten. Gibt es da irgendeinen hook? :D
-ein Eintrag wird evtl. mehreren Usern angezeigt. Dabei soll jeder User die Möglichkeit haben sich zu bewerben (dafür muss ich wohl eine table anlegen, die die einzelnen Bewerbungen registriert). Erst wenn einer der User auf "angenommen" klickt, wird der status tatsächlich global geändert, weil nur ein User schließlich einen Auftrag annehmen kann.
Es sind wohl etwas strange Anforderungen aber wie gesagt, auch ein Lösungsansatz oder Tipp bringt mir schon was! Editableviews sieht aber zumindest schonmal optisch sehr ähnlich nach dem aus, was ich suche ;-) deshalb schon vielen Dank!
Hat jemand noch gute Vorschläge an sowas zu kommen?
Viele Grüße,
Max
Maximus schrieb Gibt es da
am 12.03.2014 - 08:52 Uhr
Gibt es da irgendeinen hook? :D
Ja, den wohl meist benutzten ;) hook_form_alter() . Darin fragst du den aktuellen Status ab und passt jeweils das #options Array für die select- Liste an.
2 Button Lösung mit Rules Link
am 12.03.2014 - 11:34 Uhr
Mit Rules-Link könnte man zwei Links erzeugen (die per CSS als Button aussehen lassen) und diese sehr umfangreich durch Rules steuern lassen. Das hat vor allem den Vorteil, daß man vermeiden kann, direkte Bearbeitungsrechte auf Felder im Content zu ermöglichen, was bei Editable Fields nötig ist. Und vor allem, man hat die vielen Möglichkeiten von Rules zur Verfügung z.B. das Nachladen von Content, um z.B. auf den Status bestimmter Felder zu reagieren:
https://drupal.org/project/rules_link
# DrupalCenter-Moderator # https://www.drupal.org/u/c-logemann
# CTO der Nodegard GmbH: Tech. Concepts | Security + Availability Operations / Wir unterstützen IT-Abteilungen, Agenturen, Freiberufler:innen
Hallo glycid,klingt ja
am 12.03.2014 - 13:12 Uhr
Hallo glycid,
klingt ja schonmal mega gut^^
ich hab das ding mal versucht anzusprechen, und kann auch die "allowed_values" anpassen (...allerdings ändert sich dabei aber nichts in der view selber...Es werden immer noch die alten Möglichkeiten angeboten, obwohl laut dsm($form) tatsächlich die Werte geändert wurden. Wird hook_form_alter erst nach anzeigen ausgeführt oder muss ich was anderes ändern?
<?php
$status_editable_object = $form['#field_handlers']['node']['field_status_editable'];
if($status_editable_object->last_render == 'offen'){
$status_editable_object->field_info['settings']['allowed_values'][1]="bewerben";
$status_editable_object->field_info['settings']['allowed_values'][2]="ablehnen";
}
?>
Vielen vielen Dank für die bisherige Hilfe!
Hallo Carsten, vielen Dank
am 12.03.2014 - 16:34 Uhr
Hallo Carsten,
vielen Dank für deine Antwort! Ja das klingt sehr interessant, ich hab mich bisschen mit den Links rumgespielt, bin aber leider nicht ganz draufgekommen wie ich diese in der view als Buttons integriere. Bei der google-Suche bin ich dann auf Views_Rules gestoßen und werd mit dem noch probieren ans Ziel zu kommen. Hauptsache ich kann irgendwo meinen eigenen php-Code auf einen bearbeitungsbutton oder ähnliches neben der view legen um dann mit eigenen Anweisungen in der Datenbank zu arbeiten...
Vielen vielen Dank für den Tipp!