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

Boolsches Feld an-/abhaken wenn Bild in media library hochgeladen wird

Eingetragen von pidru (53)
am 27.11.2020 - 18:57 Uhr in
  • Modul-Entwicklung
  • Drupal 8.x

Da ich keine Lösung finde, vielleicht kann jemand einen Hinweis geben?

Ich habe ein Formular eines Inhaltstyps, in das die Nutzer Daten eingeben und Bilder hochladen können (Typ: Media Library -> image, Entitäts-Referenzierung).
Zusätzlich habe ich ein Boolesches Feld (Bilder hochgeladen: ja/nein), dass ich an andere Stelle nutzen möchte.

(Wie) ist es möglich das das Boolsche Feld (BF) automatisch angehakt wird, sobald der Nutzer ein Bild hochlädt?

Ich habe verschiedenen Dinge ausprobiert:

  • states (wenn ein Bild in die media-library hochgeladen wird erscheint ein input mit dem Wert "Entfernen")
  •  
    $form['field_bilder_hochgeladen']['#states'] = [
      'checked' => [
        ':input[name="field_bilder-0-media-library-remove-button"]'=> ['value' => "Entfernen"]
      ]
    ];

  • hook_entity_presave, um vor dem Speichern das BF auszufüllen aber das scheint nicht mit Formularen zu funktionieren
  • #ajax callback auf ['media_library_update_widget']['#ajax'], allerdings bin ich da zu unerfahren
  • und diverse andere Varianten

Das ändern des BF funktioniert zwar grundsätzlich z.B. mit:

function MODULNAME_form_node_INHALTSTYP_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
if (....) {
$form['field_bilder_hochgeladen']['widget']['value']['#default_value'] = 0;
   }
else{
$form['field_bilder_hochgeladen']['widget']['value']['#default_value'] = 1;
};
}

aber es ändert sich natürlich nichts, da am Anfang kein Bild vorhanden ist und das hochladen nur per #ajax passiert....

‹ Body-Feld sollte bereits beim Anlegen der Node gefüllt sein Boolsches Feld an-/abhaken wenn Bild in media library hochgeladen wird ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

node_builder callback

Eingetragen von glycid (921)
am 29.11.2020 - 17:51 Uhr

Moinsen,

dafür bräuchtest du eine node_builder callback() function:

1. Im Form alter hook die Funktion registrieren:

$form['#entity_builders'][] = 'image_upload_node_builder';

2. Die eigentliche callback function:

<?php
function image_upload_node_builder($entity_type, NodeInterface $node, $form, FormStateInterface $form_state) {

  if( ...
prüfen, ob Image upload erfolgt ist...) {

   
$node->set('field_bilder_hochgeladen', 1);

  } else {

  
$node->set('field_bilder_hochgeladen', 0);
  }
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super, danke glycid, ich

Eingetragen von pidru (53)
am 29.11.2020 - 20:19 Uhr

Super, danke glycid,
ich werde es mal auf diese Weise ausprobieren,
auf jeden Fall ein guter Ansatz!
Vielen Dank und schönen Sonntag.

  • 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 Woche 6 Tagen
  • Hey danke
    vor 1 Woche 6 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 13 Stunden
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 24 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