Formularfelder anzeigen, aber nicht bearbeiten
Eingetragen von Micha1111 (290)
am 02.02.2010 - 23:24 Uhr in
am 02.02.2010 - 23:24 Uhr in
Kennt jemand ein Modul, mit dem man festlegen kann, dass bestimmte selbst angelegte cck-Felder für bestimmte Rollen / User im edit_Formular angezeigt werden (ich meine sichtbar, aber ausgegraut), diese Felder aber nicht bearbeitet werden dürfen ?
Folgende Module habe ich mir bereits angesehen:
Field Permissions:
Felder, die auf nicht bearbeitbar gesetzt sind, werden leider auch nicht angezeigt.
Workflow Fields in Verbindung mit Workflow:
Felder, die auf nicht bearbeitbar gesetzt sind, werden leider nicht ausgegraut angezeigt, sondern z.B. als Link (nodereference_fields)
Gibt es noch andere Möglichkeiten ? Wenn ja, welche ?
- Anmelden oder Registrieren um Kommentare zu schreiben
Was Du willst ist das Feld
am 03.02.2010 - 08:58 Uhr
Was Du willst ist das Feld auf "readonly" setzen. Dazu mußt Du wohl ein kleines Modul schreiben. Darin verwendest Du den hook_form_alter und setzt für diese Form die Felder, die Du nicht ändern lassen willst, mit einem '#value'. Diese Values sind nicht zu ändern (nur '#default_value' wäre änderbar). Genaueresin der Forms API von Drupal.
Beste Grüße
Werner
Screenshot der Felder einblenden
am 03.02.2010 - 10:39 Uhr
Felder, die auf nicht bearbeitbar gesetzt sind, werden leider auch nicht angezeigt.
Naja, Du kannst ja auch ein Screenshot der Felder einblenden. :-))
------------------------
Quiptime Group
zu wla: Die Felder auf
am 03.02.2010 - 11:35 Uhr
zu wla:
Die Felder auf #value setzen geht vielleicht.
Aber ich möchte die Funktionsweise der Permissionmodule nicht beieinträchtigen.
Woher wissen die Module, dass deren eigene Darstellungsfunktion durch mein Modul außer Kraft gesetzt ist ?
Mir würde es helfen, wenn ich wüsste, an welcher Stelle ich in den Modulen deren Darstellungsfunktion vielleicht ändern kann. (Ich meine workflow_fields benutzt irgendwo die normale cck-Darstellung 'view' und field_permissions löscht das Feld irgendwo komplett)
zu quiptime:
Ich glaube, der Vorschlag scheitert, weil sich die Feldinhalte ja ständig ändern.
Vielleicht zur Erklärung mein Szenario:
Ein Spielleiter legt Spielpaarungen fest, z.B.
Spieler A : Spieler B = Ergebnis
User melden das Ergebnis, dürfen dabei aber natürlich nur das Feld Ergebnis ändern, nicht jedoch Spieler A und Spieler B
Die User müssen im Formular noch erkennen können, um welche Spielpaarung es geht, weshalb die Spieler in grau zu sehen sein sollen. (nicht als Link, weil dann die Gefahr besteht, dass die User ungewollt das Formular verlassen)
Es gibt noch weitere Felder, die nicht geändert werden dürfen, sonst könnte ich das über den Node-Titel und Token mit automatic-nodetitle lösen.
Das war ein
am 03.02.2010 - 11:45 Uhr
Das war ein Scherz.
------------------------
Quiptime Group
Danke, hilft mir wirklich
am 03.02.2010 - 18:04 Uhr
Danke, hilft mir wirklich weiter !
Auszug aus der Forms
am 06.02.2010 - 19:16 Uhr
Auszug aus der Forms API:
#disabled
Used by: button, checkbox, checkboxes, date, file, image_button, password, password_confirm, radio, radios, select, submit, textarea, textfield, weight
Description: Disables (greys out) a form input element. Note that disabling a form field doesn't necessarily prevent someone from submitting a value through DOM manipulation. It just tells the browser not to accept input.
Values: TRUE or FALSE
Usage example (system.module):
<?php
if (isset($disabled[$name])) {
$form['theme_settings'][$name]['#disabled'] = TRUE;
}
?>