3) { Deprecation::notice( '3.0', 'Use setMaxLength() instead of constructor arguments', Deprecation::SCOPE_GLOBAL ); } parent::__construct($name, $title, $value); } /** * @param bool $bool * @return $this */ public function setAllowValuePostback($bool) { $this->allowValuePostback = (bool) $bool; return $this; } /** * @return bool */ public function getAllowValuePostback() { return $this->allowValuePostback; } /** * {@inheritdoc} */ public function getAttributes() { $attributes = array( 'type' => 'password', ); if (!$this->getAllowValuePostback()) { $attributes['value'] = null; } $autocomplete = Config::inst()->get('PasswordField', 'autocomplete'); if($autocomplete) { $attributes['autocomplete'] = 'on'; } else { $attributes['autocomplete'] = 'off'; } return array_merge( parent::getAttributes(), $attributes ); } /** * Creates a read-only version of the field. * * @return FormField */ public function performReadonlyTransformation() { $field = $this->castedCopy('ReadonlyField'); $field->setValue('*****'); return $field; } /** * {@inheritdoc} */ public function Type() { return 'text password'; } }