Sind zwei Schaltflächen auf einem Formular, die beide gleich beschriftet sind, so kommt es zu einem Fehler:
Der Inhalt von $form[FormState][clicked_button][#value] wird verwendet, um die Submit-Funktion zu ermitteln.
Die Folge: z.B. kann eine Node mit einem Filefield nicht gespeichert werden.

ein Issue folgt noch!

Comments

Das beschriebene ist das normale, erwartete Verhalten. Mehrere Schaltflächen mit identischer Bezeichnung und Namen werden nicht unterstützt. Ergo, kein Fehler, kein Issue erforderlich (vermutlich existiert allerdings ohnehin bereits einer).

Hi,

auch ein "erwartetes Verhalten" kann ein Fehler sein und ich empfinde dies als Fehler. Wie kann eine Bezeichnung für eine Schaltfläche denn bitte ebenfalls zur Auswertung dieser herangezogen werden ? Möchte man auf beiden Knöpfen nunmal das Wort "Speichern" haben hat man bereits ein Problem. Doch ich denke hier ist der falsche Ort das zu diskutieren, evtl. ist erstmal die Information für die Übersetzer doch sehr wichtig.

Gruß Dennis

Danke - richtig, es ist wichtig für Übersetzungen. Obgleich keine Möglichkeit besteht, darauf Einfluss zu nehmen. Entscheidend ist daher, unterschiedliche Schaltflächennamen auch unterschiedlich zu übersetzen.

Sofern ich mich nicht täusche, ist die Implementierung historisch bedingt. Mitunter auch wegen unterschiedlicher Formularverarbeitung von (älteren?) Browsern (IE6?), dem Spezialfall und der Spezialbehandlung von image buttons, der Migration von Form API v1 zu 2 zu 3 seit Drupal 4.7, und wurde vermutlich schlussletztlich bei der Einführung von button-spezifischen #submit-Handlern nicht näher berücksichtigt (was m.W. die letzte relevante Gelegenheit gewesen wäre, bei der diese Zeilen berührt wurden).

Hinsichtlich des zeitlichen Spektrums ist dieser "Fehler" also definitiv "normales Verhalten" - denn es war schlichtweg nie anders. ;) Leider auch nicht ohne Weiteres änderbar.

http://drupal.org/node/852520

Also was auch immer du mit "gewolltest Verhalten meinst", so kann man jeden Bug begründen. Und das ist mehr als offensichtlich ein Implementierungsfehler. In mehr als nur eine anderen FAPI wird für den submit-button eine ID generiert.

So machen wir es ja für alle anderen Form-Element auch, oder identifizierst du ein select Feld auch anhand des Wertes in der FAPI? Ich denke wohl nicht. Hier wurde einfach das Verhalten für Buttons anders implementiert wie für alle anderen Form-Element - bei denen diese Implementierung offensichtlich überhaupt nicht funktioniert hätte (name is unqiue).

Statt den Namen des Buttons zu benutzen und diesen unique zu gestalten wurde einfach das Label genommen. Das ist schlichtweg völliger Unsinn und brauch hier nicht noch als "Feature" verkauft zu werden.

Aber dein Verhalten bin ich eh schon leid.

Hallo Eugen,

ich kann und möchte nicht beurteilen, ob es sich hier um einen Bug handelt oder nicht. Ich möchte dich nur bitten, nicht so persönlich zu werden, egal aus welchem Grund du dich über etwas ärgerst. Manchmal hat man einen Punkt, den der andere noch nicht gesehen hat. Ich fände es schön, wenn man demjenigen diesen Punkt lieber geduldig erklärt, statt gleich anzugreifen. Vielleicht hat ja auch der andere einen Punkt, den man selbst noch nicht gesehen hast. Das macht doch das ganze Miteinander schöner :)

Viele Grüße
Anja

Hallo Anja,

ich verstehe dein Anliegen und werde es auch beachten. In diesem Falle spiegelt mein Verhalten das Verhalten von Daniel wieder. Diese pure Ignoranz ist wirklich nicht weiter zu kommentieren (und nein, das nehme ich nun nich alles aus diesem Issue).

Nichtsdestotrotz füge ich mich deinem Wunsch - muss nicht hier ausdiskutiert werden.

Hoffe, dass die sachliche Erklärung während/nach dieser Attacke nicht übersehen wurde. :)

Der von mir bereits vorbereitete Patch müsste allerdings in den nächsten Tagen (eigentlich gestern) komplettiert werden - wobei es sich lediglich um Fleißarbeit handelt, soweit ich das überblicken kann. Für Reviews und Rückfragen stehe ich gern bereit.

Ferner kann freilich ein Stoßgebet nicht schaden, um die Chancen dieses Patches auf D7 zu erhöhen. Jener zerstört potenziell die Funktionalität von den zahlreichen Modulen, welche per #D7CX bereits portiert wurden. Daher hat nicht nur das Form API Raumservicepersonal, sondern auch die hießigen Produktverantwortlichen ein gehöriges Wort mitzureden, und wir alle wissen, dass sich letztere nicht gern in die Suppe spucken lassen. ;)

Hi Sun,

vielen Dank für Deine Arbeit.

Gruß Dennis

...offenbar aber leider vergeudete Zeit, da sich in vorgenanntem Issue seither nada getan hat.

Wer die Form API-Änderung noch vor D8 sehen möchte, ... eine geringe Chance besteht noch, wird aber mit jedem Tag unwahrscheinlicher.