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