<?php declare(strict_types = 0);
class CControllerTriggerCreate extends CController {
protected function init(): void {
$this->setPostContentType(self::POST_CONTENT_TYPE_JSON);
protected function checkInput(): bool {
'name' => 'required|db triggers.description|not_empty',
'event_name' => 'db triggers.event_name',
'opdata' => 'db triggers.opdata',
'priority' => 'db triggers.priority|in 0,1,2,3,4,5',
'expression' => 'required|string|not_empty',
'recovery_mode' => 'db triggers.recovery_mode|in '.implode(',', [ZBX_RECOVERY_MODE_EXPRESSION, ZBX_RECOVERY_MODE_RECOVERY_EXPRESSION, ZBX_RECOVERY_MODE_NONE]),
'recovery_expression' => 'string',
'type' => 'db triggers.type|in 0,1',
'correlation_mode' => 'db triggers.correlation_mode|in '.implode(',', [ZBX_TRIGGER_CORRELATION_NONE, ZBX_TRIGGER_CORRELATION_TAG]),
'correlation_tag' => 'db triggers.correlation_tag',
'manual_close' => 'db triggers.manual_close|in '.implode(',',[ZBX_TRIGGER_MANUAL_CLOSE_NOT_ALLOWED, ZBX_TRIGGER_MANUAL_CLOSE_ALLOWED]),
'url_name' => 'db triggers.url_name',
'url' => 'db triggers.url',
'description' => 'db triggers.comments',
'status' => 'db triggers.status|in '.implode(',', [TRIGGER_STATUS_ENABLED, TRIGGER_STATUS_DISABLED]),
'dependencies' => 'array',
'hostid' => 'db hosts.hostid',
'context' => 'in '.implode(',', ['host', 'template'])
$ret = $this->validateInput($fields);
(new CControllerResponseData(['main_block' => json_encode([
'title' => _('Cannot add trigger'),
'messages' => array_column(get_and_clear_messages(), 'message')
protected function checkPermissions(): bool {
return $this->getInput('context') === 'host'