[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
rex_form: addCheckboxField / Label linke Seite - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
jason
Beiträge: 2
Registriert: 1. Sep 2011, 15:04

rex_form: addCheckboxField / Label linke Seite

1. Sep 2011, 15:50

Hallo liebe Leute,
ich brauche Unterstützung bei einem Problem, welches ich nicht in den Griff bekomme. Ich bin der Meinung, dass es sich um einen Fehler in Redaxo handelt. Daher das ganze in diesem Forum.

Ich erstelle mit Hilfe von rex_form ein Formular, dass u. a. ein Checkbox-Feld enthält. Das funktioniert soweit auch ohne Probleme. Jedoch möchte ich das Label auf der linken Seite der Box haben und möchte daher die Klasse "rex-form-label-right" nicht im Class-Attribut stehen habe. Also erstelle ich die Checkbox mit folgender Zeile:

Code: Alles auswählen

$checkbox = &$form->addCheckboxField('published', NULL, array('class'=>'rex-form-checkbox'));
Der übergebene $attributes-Parameter (Array) wird aber auf dem Weg zur Ausgabe des Codes an irgendeiner Stelle überschrieben.

Verfolgen kann ich den Parameter bis in die Funktion createElement() in der Datei "class.rex-form.inc.php". In Zeile 581 werden dort eigene und vordefinierte Parameter zusammengefügt:

Code: Alles auswählen

$attributes = array_merge(array('id' => $id), $attributes, $internal_attr);
Danach ist in der Variablen $attributes immer noch mein übergebener Wert zu finden. Von dort an kann ich den Vorgang allerdings nicht mehr weiter nachvollziehen. In Zeile 582 wird das neue "Element erstellt":

Code: Alles auswählen

$element = new $class($tag, $this, $attributes, $separateEnding); 
Wenn ich mir dann nun die Inhalte der Variable $element anzeigen lasse, sehe ich, dass nun im Array im Feld "class" der Wert "rex-form-checkbox rex-form-label-right" steht.

Wenn ich mir die Inhalte der Variable $this anzeigen lasse, sehe ich, dass dort im Feld "class" auch dieser Wert "rex-form-checkbox rex-form-label-right" zu finden ist.

Meiner Meinung nach sollte doch das Vordefinierte durch meine Einstellung überschrieben werden. Habe ich hier evtl. einen Denkfehler drin und mache etwas falsch?

Ich hoffe, mein Vorgehen und das Problem sind nachvollziehbar. Über eine Antwort würde ich mich sehr freuen - bin kurz vor der Verzweiflung, weil ich nirgendwo etwas dazu finde und nicht weiter komme ... :x

Beste Grüße
Jason

jason
Beiträge: 2
Registriert: 1. Sep 2011, 15:04

Re: rex_form: addCheckboxField / Label linke Seite

1. Sep 2011, 16:42

Und ich noch mal.
Das Problem oben ist noch nicht gelöst, allerdings habe ich nun zum Glück einen anderen Weg gefunden.

Mit

Code: Alles auswählen

$checkbox->setAttribute('class', 'rex-form-checkbox');
habe ich den gewünschten Erfolg.

Zweieinhalb Tage herum probieren ... ;)
Aber vielleicht hilft das hier noch anderen.

Viele Grüße
Jason

Frezl
Beiträge: 160
Registriert: 13. Aug 2009, 14:31

Re: rex_form: addCheckboxField / Label linke Seite

24. Okt 2011, 13:57

Vielen dank für deinen Beitrag. Ich kann dir zwar bei deinem Problem nicht helfen, aber du hast mir dabei gehofen, dass das Label an der Checkbox nicht rechts angezeigt wird :-)

Grüße,
Frezl

Zurück zu „Sonstiges“