/**
* Method to attach a Form object to the field.
*
* @param \SimpleXMLElement $element The SimpleXMLElement object representing the `<field>` tag for the form field object.
* @param mixed $value The form field value to validate.
* @param string $group The field name group control value. This acts as an array container for the field.
* For example if the field has name="foo" and the group value is set to "bar" then the
* full field name would end up being "bar[foo]".
*
* @return boolean True on success.
*
* @see FormField::setup()
* @since 3.2
*/
public function setup(\SimpleXMLElement $element, $value, $group = null)
{
$result = parent::setup($element, $value, $group);
if ($result == true) {
$inputmode = (string) $this->element['inputmode'];
$dirname = (string) $this->element['dirname'];
$this->inputmode = '';
$inputmode = preg_replace('/\\s+/', ' ', trim($inputmode));
$inputmode = explode(' ', $inputmode);
if (!empty($inputmode)) {
$defaultInputmode = \in_array('default', $inputmode) ? Text::_('JLIB_FORM_INPUTMODE') . ' ' : '';
foreach (array_keys($inputmode, 'default') as $key) {
unset($inputmode[$key]);
}
$this->inputmode = $defaultInputmode . implode(' ', $inputmode);
}
// Set the dirname.
$dirname = $dirname === 'dirname' || $dirname === 'true' || $dirname === '1';
$this->dirname = $dirname ? $this->getName($this->fieldname . '_dir') : false;
$this->maxLength = (int) $this->element['maxlength'];
$this->addonBefore = (string) $this->element['addonBefore'];
$this->addonAfter = (string) $this->element['addonAfter'];
}
return $result;
}