icingaweb2-module-businessp.../application/views/helpers/FormStateOverrides.php
Johannes Meyer 0c7fca926f config: Use an extra line to store state overrides
Storing overrides as part of a node's name leads to way too complicated
code. A separate field is not only better for compatibility but also
more straightforward to process.
2020-06-26 14:08:05 +02:00

40 lines
1.1 KiB
PHP

<?php
// Avoid complaints about missing namespace and invalid class name
// @codingStandardsIgnoreStart
class Zend_View_Helper_FormStateOverrides extends Zend_View_Helper_FormElement
{
// @codingStandardsIgnoreEnd
public function formStateOverrides($name, $value = null, $attribs = null)
{
$states = $attribs['states'];
unset($attribs['states']);
$attribs['multiple'] = '';
$html = '';
foreach ($states as $state => $label) {
if ($state === 0) {
continue;
}
$chosen = $state;
if (isset($value[$state])) {
$chosen = $value[$state];
}
$options = [$state => t('Keep actual state')] + $states;
$html .= '<label><span>' . $this->view->escape($label) . '</span>';
$html .= $this->view->formSelect(
sprintf('%s[%d]', substr($name, 0, -2), $state),
$chosen,
$attribs,
$options
);
$html .= '</label>';
}
return $html;
}
}