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

[gelöst]Pflichtfeld vom User deaktivieren lassen

Eingetragen von schmittrich (213)
am 03.03.2021 - 08: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 - 09: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 (213)
am 03.03.2021 - 10: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 (9461)
am 03.03.2021 - 12: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 - 12: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 (213)
am 03.03.2021 - 12: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 (213)
am 03.03.2021 - 15: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

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 12 Stunden
  • Hey danke
    vor 2 Tagen 7 Stunden
  • Update: jetzt gibt's ein
    vor 3 Tagen 1 Stunde
  • Hallo, im Prinzip habe ich
    vor 1 Woche 11 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 14 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 20 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