icingaweb2/library/Icinga/Web/Form/FormElement.php
Eric Lippmann 662de28f85 License source files as GPL-3.0-or-later
Add SPDX license headers and mark source files as GPL-3.0-or-later to
preserve the option to relicense under later GPL versions.
2026-03-26 17:49:26 +01:00

63 lines
1.7 KiB
PHP

<?php
// SPDX-FileCopyrightText: 2018 Icinga GmbH <https://icinga.com>
// SPDX-License-Identifier: GPL-3.0-or-later
namespace Icinga\Web\Form;
use Zend_Form_Element;
use Icinga\Web\Form;
/**
* Base class for Icinga Web 2 form elements
*/
class FormElement extends Zend_Form_Element
{
/**
* Whether loading default decorators is disabled
*
* Icinga Web 2 loads its own default element decorators. For loading Zend's default element decorators set this
* property to false.
*
* @var null|bool
*/
protected $_disableLoadDefaultDecorators;
/**
* Whether loading default decorators is disabled
*
* @return bool
*/
public function loadDefaultDecoratorsIsDisabled()
{
return $this->_disableLoadDefaultDecorators === true;
}
/**
* Load default decorators
*
* Icinga Web 2 loads its own default element decorators. For loading Zend's default element decorators set
* FormElement::$_disableLoadDefaultDecorators to false.
*
* @return $this
* @see Form::$defaultElementDecorators For Icinga Web 2's default element decorators.
*/
public function loadDefaultDecorators()
{
if ($this->loadDefaultDecoratorsIsDisabled()) {
return $this;
}
if (! isset($this->_disableLoadDefaultDecorators)) {
$decorators = $this->getDecorators();
if (empty($decorators)) {
// Load Icinga Web 2's default element decorators
$this->addDecorators(Form::$defaultElementDecorators);
}
} else {
// Load Zend's default decorators
parent::loadDefaultDecorators();
}
return $this;
}
}