[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • xForm - placeholder, readonly, disabled ...
Seite 1 von 1

xForm - placeholder, readonly, disabled ...

Verfasst: 2. Mai 2014, 12:00
von robo
Hallo,

ich sitz gerade ansch. mal wieder auf der Leitung.

hab z.B. in der rex_xform_text Klasse gesehen, dass man für den Formbuilder 'placeholder', 'disabled', etc. setzen kann??

Wie macht man das, damit in den Fromular-Elementen diese Dinge als Attribute erscheinen?

Ich danke jetzt schon für eure Hilfe.

LG
Robert

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 4. Mai 2014, 23:09
von robo
Kann mir niemand einen Tipp geben? :cry:

Grüße,
Robert

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 5. Mai 2014, 09:32
von robo
Hallo zusammen,

hab grad gesehen, dass es diese Möglichkeiten ansch. erst mit Rex Vers. 4.6 gibt. Find ich super!
Aber ich finde trotzdem nicht heraus, wie ich z.B. das Placeholder-Attribut in meine Form-Elemente bekomme:

Hab schon folgendes versucht für disabled (bei placholder steh ich sowieso an):

Code: Alles auswählen

text|name|Name|||txt_arrangment_name|disabled
Was aber nicht funktioniert...

Kann man die neuen Attribute schon irgendwie verwenden? Hab ich da was komplett übersehen? Bitte nochmals um Hilfe.
Würde mir eine Menge Nervern sparen... Vor allem das Placehoder- Attribut würde ich gerne verwenden.

Freudliche Grüße,
Robert

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 12. Mai 2014, 15:32
von Jan.Kristinus
Hallo,

also bei der aktuellen XForm geht es so (für einige Elemente z.b. "text"):

Code: Alles auswählen

objparams|values.---|Nachname
wir sind auch gerade dabei die XForm noch weiter auszubauen, damit auch weitere Felder und eigene Templates für die einzelnen Felder möglich sind. Das wird auch bald gehen, dann ist noch einiges mehr möglich. Wird dann als Update unter REDAXo 4.6 mit dem Installer-AddOn verfügbar sein.

lg

jan

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 15. Mai 2014, 09:15
von robo
Hallo Jan,

danke für die Antwort, werd ich noch ausprobieren.

Habs zur Zeit so gelöst, dass ich eigene Classe(n) um ein Element 'attributes' erweitert habe, wo ich dann alle Attribute die ich brauche anfügen kann. (falls es jemanden interessiert :) )

Wenn ich so frei sein darf und noch einen Wunsch/Anregung zur zukünftigen X-From einbringen darf:
Ich denke, dass data- Attribute immer interessanter werden, z.B. um Formularfelder besser mit Javascript Vor-Validieren zu können. Z.B.:

Code: Alles auswählen

<input 'data-val="strlen" data-min-len="10" data-err-msg="Bitte geben Sie mindestens 10 Buchstaben ein!" .... />
Hier noch als Beispiel meine Abwandlung/Erweiterung der class.xform.text.inc.php in class.xform.wg_text.inc.php

Code: Alles auswählen

class rex_xform_wg_text extends rex_xform_abstract
{

  function enterObject()
  {

    $this->setValue((string) $this->getValue());

    if ($this->getValue() == '' && !$this->params['send']) {
      $this->setValue($this->getElement(3));
    }
		
		if(!empty($this->getElement(5)))
    	$classes = ' ' . $this->getElement(5);
		
		if(!empty($this->getElement(6)))
			$attibutes = ' ' . $this->getElement(6);
			
    $wc = '';
    if (isset($this->params['warning'][$this->getId()])) {
      $wc = ' ' . $this->params['warning'][$this->getId()];
    }

    $placeholder = $this->getElement('placeholder');
    if ($placeholder != "") {
      $placeholder = ' placeholder="'.$placeholder.'"';
    }

    $required = $this->getElement('required');
    if ($required != 0) {
      $required = ' required="required"';
    } else {
      $required = '';
    }

    $pattern = $this->getElement('pattern');
    if ($pattern != "") {
      $pattern = ' pattern="'.$pattern.'"';
    }

    $readonly = $this->getElement('readonly');
    if ($readonly != "") {
      $readonly = ' readonly="readonly"';
    }

    $disabled = $this->getElement('disabled');
    if ($disabled != "") {
      $disabled = ' disabled="disabled"';
    }
    
    $this->params['form_output'][$this->getId()] = '
      <p class="formtext formlabel-' . $this->getName() . '" id="' . $this->getHTMLId() . '">
        <label class="text' . $wc . '" for="' . $this->getFieldId() . '" >' . $this->getLabel() . '</label>
        <input type="text" class="text' . $classes . $wc . '" name="' . $this->getFieldName() . '" id="' . $this->getFieldId() . '" value="' . htmlspecialchars(stripslashes($this->getValue())) . '" '.$placeholder.$required.$pattern.$disabled.$attibutes.' />
      </p>';

    $this->params['value_pool']['email'][$this->getName()] = stripslashes($this->getValue());
    if ($this->getElement(4) != 'no_db') {
      $this->params['value_pool']['sql'][$this->getName()] = $this->getValue();
    }

  }

  function getDescription()
  {
    return 'wg_text -> Beispiel: wg_text|name|label|defaultwert|[no_db]|cssclassname|attributes';
  }

  function getDefinitions()
  {
    return array(
      'type' => 'value',
      'name' => 'wg_text',
      'values' => array(
        array( 'type' => 'name',   'label' => 'Feld' ),
        array( 'type' => 'text',    'label' => 'Bezeichnung'),
        array( 'type' => 'text',    'label' => 'Defaultwert'),
        array( 'type' => 'no_db',   'label' => 'Datenbank',  'default' => 0),
        array( 'type' => 'text',    'label' => 'cssclassname'),
				array( 'type' => 'text',    'label' => 'attributes')
      ),
      'description' => 'Ein einfaches Textfeld als Eingabe',
      'dbtype' => 'text',
      'famous' => true
    );

  }
}
Danke für eure tolle Arbeit und beste Grüße,
Robert

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 15. Mai 2014, 10:44
von Jan.Kristinus
Hallo Robert,

Danke für die Hinweise. Wir haben ähnliches umgesetzt.

https://github.com/yakamara/redaxo4_xform/

zum einen die Möglichkeit eigene Templates zu verwenden um z.B. auch Deine data-Felder zu ergänzen. und zum anderen kann man die Klassen mit konkreten Bezeichnern ergänzen.. Also anstatt diese getElement(1) .. Felder wie getElement("placeholder"), getElement("meinsonstwasfeld").. Sofern du die XForm über PHP direkt verwendest ist das dort besonders hilfreich.

Wir mache noch ein paar Kleinigkeiten und dann gibts auch eine neue XForm-Version.

lg

Jan

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 2. Jun 2015, 13:29
von derkrebs
Hallo,

der letzte Beitrag ist ja schon a bisserl her, aber ich häng mich hier nochmal dran.

In der aktuellen XForm-Version soll es ja nun möglich sein, Attribute wie z. B. "Placeholder" zu verwenden. Kann mir jemand erklären, wie ich das mit der PHP-Syntax für ein Text-Element mache?

Ich hab das mal so versucht - das funktioniert (natürlich) nicht:

Code: Alles auswählen

$xform->setValueField("text",array('firma','Firma','','no_db','','Firma'));
(also das letzte Array-Element soll der Placeholder sein)

Vielen Dank für Eure Hilfe!!

Gruß, Michael

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 2. Jun 2015, 14:04
von Jan.Kristinus

Code: Alles auswählen

$xform->setValueField("text",array('firma','Firma','','no_db','','placeholder' => 'Firma'));
lg

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 23. Feb 2016, 16:39
von tombaer
Hallo Jan,

ich bekomme das mit dem Placeholder nichthin, habe mein Formular so aufgebaut:

objparams|form_skin|bootstrap
objparams|values.---|Vor- und Nachname|
text|name|Vor- und Nachname||[no_db]|cssclassname

Nutze redaxo 4.6.3 und xform 4.14

Liebe Grüsse

Tom

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 23. Feb 2016, 16:45
von Jan.Kristinus
text|name|Vor- und Nachname||[no_db]|cssclassname|#placeholder:Mein Platzhalter

sollte es schon gewesen sein .. Das ist immer davon abhängig ob es schon eingebaut ist oder nicht etc .. Bei text, textarea sollte es gehen.. manche andere Felder haben das nicht.

Re: xForm - placeholder, readonly, disabled ...

Verfasst: 23. Feb 2016, 16:50
von tombaer
funktioniert, prima, danke!

LG

Tom