// status
$enabledCheckBox = (new CCheckBox('status', ITEM_STATUS_ACTIVE))->setChecked($this->data['status'] == ITEM_STATUS_ACTIVE);
$itemFormList->addRow(_('Enabled'), $enabledCheckBox);
/*
 * Condition tab
 */
$conditionFormList = new CFormList();
// type of calculation
$conditionFormList->addRow(_('Type of calculation'), [new CComboBox('evaltype', $this->data['evaltype'], null, [CONDITION_EVAL_TYPE_AND_OR => _('And/Or'), CONDITION_EVAL_TYPE_AND => _('And'), CONDITION_EVAL_TYPE_OR => _('Or'), CONDITION_EVAL_TYPE_EXPRESSION => _('Custom expression')]), (new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN), (new CSpan(''))->setId('expression'), (new CTextBox('formula', $this->data['formula']))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)->setId('formula')->setAttribute('placeholder', 'A or (B and C) …')], 'conditionRow');
// macros
$conditionTable = (new CTable())->setId('conditions')->setAttribute('style', 'width: 100%;')->setHeader([_('Label'), _('Macro'), '', _('Regular expression'), _('Action')]);
$conditions = $this->data['conditions'];
if (!$conditions) {
    $conditions = [['macro' => '', 'value' => '', 'formulaid' => num2letter(0)]];
} else {
    $conditions = CConditionHelper::sortConditionsByFormulaId($conditions);
}
// fields
foreach ($conditions as $i => $condition) {
    // formula id
    $formulaId = [new CSpan($condition['formulaid']), new CVar('conditions[' . $i . '][formulaid]', $condition['formulaid'])];
    // macro
    $macro = (new CTextBox('conditions[' . $i . '][macro]', $condition['macro'], false, 64))->setWidth(ZBX_TEXTAREA_MACRO_WIDTH)->addClass(ZBX_STYLE_UPPERCASE)->addClass('macro')->setAttribute('placeholder', '{#MACRO}')->setAttribute('data-formulaid', $condition['formulaid']);
    // value
    $value = (new CTextBox('conditions[' . $i . '][value]', $condition['value'], false, 255))->setWidth(ZBX_TEXTAREA_MACRO_VALUE_WIDTH)->setAttribute('placeholder', _('regular expression'));
    // delete button
    $deleteButtonCell = [(new CButton('conditions_' . $i . '_remove', _('Remove')))->addClass(ZBX_STYLE_BTN_LINK)->addClass('element-table-remove')];
    $row = [$formulaId, $macro, new CSpan(_('matches')), $value, (new CCol($deleteButtonCell))->addClass(ZBX_STYLE_NOWRAP)];
    $conditionTable->addRow($row, 'form_row');
}
$conditionTable->setFooter(new CCol((new CButton('macro_add', _('Add')))->addClass(ZBX_STYLE_BTN_LINK)->addClass('element-table-add')));
示例#2
0
             $data['action']['def_longdata'] = getRequest('def_longdata', ACTION_DEFAULT_MSG_AUTOREG);
         } else {
             $data['action']['def_shortdata'] = getRequest('def_shortdata');
             $data['action']['def_longdata'] = getRequest('def_longdata');
             $data['action']['r_shortdata'] = getRequest('r_shortdata');
             $data['action']['r_longdata'] = getRequest('r_longdata');
         }
     }
 }
 if (!$data['actionid'] && !hasRequest('form_refresh') && $data['eventsource'] == EVENT_SOURCE_TRIGGERS) {
     $data['action']['filter']['conditions'] = array(array('formulaid' => 'A', 'conditiontype' => CONDITION_TYPE_MAINTENANCE, 'operator' => CONDITION_OPERATOR_NOT_IN, 'value' => ''), array('formulaid' => 'B', 'conditiontype' => CONDITION_TYPE_TRIGGER_VALUE, 'operator' => CONDITION_OPERATOR_EQUAL, 'value' => TRIGGER_VALUE_TRUE));
 }
 $data['allowedConditions'] = get_conditions_by_eventsource($data['eventsource']);
 $data['allowedOperations'] = get_operations_by_eventsource($data['eventsource']);
 if (!hasRequest('add_condition')) {
     $data['action']['filter']['conditions'] = CConditionHelper::sortConditionsByFormulaId($data['action']['filter']['conditions']);
 }
 // new condition
 $data['new_condition'] = array('conditiontype' => isset($data['new_condition']['conditiontype']) ? $data['new_condition']['conditiontype'] : CONDITION_TYPE_TRIGGER_NAME, 'operator' => isset($data['new_condition']['operator']) ? $data['new_condition']['operator'] : CONDITION_OPERATOR_LIKE, 'value' => isset($data['new_condition']['value']) ? $data['new_condition']['value'] : '');
 if (!str_in_array($data['new_condition']['conditiontype'], $data['allowedConditions'])) {
     $data['new_condition']['conditiontype'] = $data['allowedConditions'][0];
 }
 // new operation
 if (!empty($data['new_operation'])) {
     if (!is_array($data['new_operation'])) {
         $data['new_operation'] = array('operationtype' => 0, 'esc_period' => 0, 'esc_step_from' => 1, 'esc_step_to' => 1, 'evaltype' => 0);
     }
 }
 // render view
 $actionView = new CView('configuration.action.edit', $data);
 $actionView->render();