Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modulsuche ›

[gelöst]Pflichtfeld vom User deaktivieren lassen

Eingetragen von schmittrich (215)
am 03.03.2021 - 09:06 Uhr in
  • Modulsuche
  • Drupal 8.x

Hi,

ich bin sozusagen auf der Suche nach der „Quadratur des Kreises“:

Ich habe in einer Media entity ein file field, das in bestimmten Fällen leer bleiben muss. Der User soll das bei der Einpflege selber von Fall zu Fall entscheiden können. Pflichtfeld deswegen, damit es bei der Einpflege von Inhalten grundsätzlich nicht vergessen wird (momentan ist es kein Pflichtfeld und die Praxis hat leider gezeigt, dass es immer wieder vergessen wird). Zunächst dachte ich an das Modul Conditional fields, mit dem man den "required" Status in Abhängigkeit vom value eines anderen Felds ändern könnte – wenn das denn zuverlässig funktionieren würde. Siehe diese Issue

Vielleicht hat jemand von euch schonmal so was Ähnliches gebaut und kann mir Tipps geben?

‹ Höher aufgelöste Bilder auf Klick vergrössern [gelöst]Pflichtfeld vom User deaktivieren lassen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würde das mit

Eingetragen von Ionit (1802)
am 03.03.2021 - 10:17 Uhr

Ich würde das mit hook_form_alter machen.

https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Form%21fo...

Beispiel:
https://drupal.stackexchange.com/a/229641

Du kannst in der Form vorher ein Boolean-Feld abfragen (ob 0 oder 1) und danach setzt Du den Required-Status des File-fields.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, den hook kannte ich natürlich

Eingetragen von schmittrich (215)
am 03.03.2021 - 11:53 Uhr

Mit hook_form_alter kann ich m. W. nur beim Rendern der edit form eingreifen. In meinem Fall existiert das media item in den meisten Fällen noch gar nicht. Somit gibt es auch kein Boolean Feld, das mit einem Wert gefüllt ist.

Ich suche eine Lösung, die vor dem finalen Speichern des media item schaut, ob ein Boolean Feld einen bestimmten Wert hat und danach entscheidet, ob das file field ausgefüllt sein muss oder nicht. Und dem User dann ggf. wieder die edit form präsentiert mit dem Hinweis, dass das file field in dieser Konstellation ein Pflichtfeld ist. Ich hatte schon an hook_entity_presave gedacht, jedoch ist mir kein Weg bekannt, wie ich von dort wieder in die edit form gelange unter Beibehaltung der Feldwerte.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst die Eigenschaften

Eingetragen von wla (9464)
am 03.03.2021 - 13:24 Uhr

Du kannst die Eigenschaften eines Feldes in hook_form_alter beeinflussen. Aber wahrscheinlich hilft Dir das Ändern auf "required" wegen des Core Bugs nicht. Du solltest daher zusätzlich für das Feld eine Validation Routine anbinden. Die mußt Du aber wohl selbst erstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schau Dir mal folgenden

Eingetragen von Ionit (1802)
am 03.03.2021 - 13:28 Uhr

Schau Dir mal folgenden Artikel an.

Dort wird anhand der Option "unpublished/published" überprüft ob ein image-field ausgefüllt sein muss oder nicht.

Das wird man sicherlich auf ein Boolean-Field (o.ä.) übertragen können.

Das musst Du mal austesten.

https://jigarius.com/blog/drupal-entity-validation-api

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ah, das sind wertvolle Hinweise

Eingetragen von schmittrich (215)
am 03.03.2021 - 13:40 Uhr

Danke @wla und @lonit das sind wertvolle Hinweise. Ich werde dem nachgehen und hier wieder Feedback geben, sobald es geklappt hat.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke das ist die Lösung

Eingetragen von schmittrich (215)
am 03.03.2021 - 16:41 Uhr

Vielen Dank @lonit für den Link zu dem hilfreichen Tutorial "Create Custom Entity Constraints"

Das darin gezeigte Beispiel enthielt bis auf eine Kleinigkeit die Lösung. Ich musste in dem Validator lediglich anstatt

$entity->isPublished()

diese Zeile einfügen:

$entity->get('field_media_file_activate')->value == '1'

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 2 Tagen 15 Stunden
  • Guckst du hier: step by step
    vor 2 Tagen 5 Stunden
  • Guckst du hier: step by step
    vor 2 Tagen 5 Stunden
  • Ich habe ja keine Angst vor
    vor 1 Woche 4 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 1 Woche 6 Tagen
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 1 Tag
  • Du hast die "Trusted host
    vor 2 Wochen 1 Tag
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 19 Stunden
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 4 Wochen 4 Tagen
  • Arrrrg. Nix Tabelle :-D /*
    vor 8 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250284
Registrierte User: 20498

Neue User:

  • Inga GuAph
  • Robertolix
  • DavidBit

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 21 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association