§¥§Ö§Û§ã§ä§Ó§Ú§ñ §à§ä§Ó§Ö§é§Ñ§ð§ä §Ù§Ñ '§Ò§Ú§Ù§ß§Ö§ã-§Ý§à§Ô§Ú§Ü§å' §Þ§à§Õ§å§Ý§ñ. §¥§Ö§Û§ã§ä§Ó§Ú§Ö §à§Ò§í§é§ß§à §ã§à§ã§ä§à§Ú§ä §Ú§Ù controller §Ú action view.
§®§à§Õ§å§Ý§î §Þ§à§Ø§Ö§ä:
§¹§ä§à§Ò§í §á§Ö§â§Ö§à§á§â§Ö§Õ§Ö§Ý§Ú§ä§î §á§à§Ó§Ö§Õ§Ö§ß§Ú§Ö §Õ§Ö§Û§ã§ä§Ó§Ú§ñ §á§à §å§Þ§à§Ý§é§Ñ§ß§Ú§ð §ß§Ö§Ü§à§ä§à§â§í§Þ §á§à§Ý§î§Ù§à§Ó§Ñ§ä§Ö§Ý§î§ã§Ü§Ú§Þ §á§à§Ó§Ö§Õ§Ö§ß§Ú§Ö§Þ, §à§á§â§Ö§Õ§Ö§Ý§Ú§ä§Ö §Õ§Ö§Û§ã§ä§Ó§Ú§Ö §ã §ä§Ö§Þ §Ø§Ö §Ú§Þ§Ö§ß§Ö§Þ §Ó §Ü§à§ß§æ§Ú§Ô§å§â§Ñ§è§Ú§Ú §Þ§à§Õ§å§Ý§ñ. §±§â§Ú §Ó§í§Ù§à§Ó§Ö §Õ§Ö§Û§ã§ä§Ó§Ú§ñ §Ó§Þ§Ö§ã§ä§à §Õ§Ö§Û§ã§ä§Ó§Ú§ñ Áú»¢¶Ä²© §á§à §å§Þ§à§Ý§é§Ñ§ß§Ú§ð §Ò§å§Õ§Ö§ä §Ó§í§á§à§Ý§ß§Ö§ß§à §Õ§Ö§Û§ã§ä§Ó§Ú§Ö §Þ§à§Õ§å§Ý§ñ.
§¶§Ñ§Û§Ý§í §Õ§Ö§Û§ã§ä§Ó§Ú§Û §Õ§à§Ý§Ø§ß§í §ç§â§Ñ§ß§Ú§ä§î§ã§ñ §Ó §á§Ñ§á§Ü§Ö actions. §¥§Ö§Û§ã§ä§Ó§Ú§ñ §ß§Ö§à§Ò§ç§à§Õ§Ú§Þ§à §å§Ü§Ñ§Ù§Ñ§ä§î §Ó §æ§Ñ§Û§Ý§Ö manifest.json.
§²§Ñ§Ò§à§é§Ú§Û §á§â§à§è§Ö§ã§ã §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§Ñ §Õ§Ö§Û§ã§ä§Ó§Ú§Û:
§±§â§à§Ó§Ö§â§î§ä§Ö §á§â§Ñ§Ó§Ñ §á§à§Ý§î§Ù§à§Ó§Ñ§ä§Ö§Ý§ñ.
§±§à§Õ§Ô§à§ä§à§Ó§î§ä§Ö §Õ§Ñ§ß§ß§í§Ö §Ó §ã§à§à§ä§Ó§Ö§ä§ã§ä§Ó§Ú§Ú §ã §á§Ö§â§Ö§Õ§Ñ§ß§ß§í§Þ§Ú §á§Ñ§â§Ñ§Þ§Ö§ä§â§Ñ§Þ§Ú: §Ö§ã§Ý§Ú checkInput() §Ó§à§Ù§Ó§â§Ñ§ë§Ñ§Ö§ä true, Áú»¢¶Ä²© §Ó§í§Ù§í§Ó§Ñ§Ö§ä §Þ§Ö§ä§à§Õ doAction() §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§Ñ.
§±§à§Õ§Ô§à§ä§à§Ó§î§ä§Ö §Þ§Ñ§ã§ã§Ú§Ó $data §Õ§Ý§ñ §á§â§Ö§Õ§ã§ä§Ñ§Ó§Ý§Ö§ß§Ú§ñ. §ª§ã§á§à§Ý§î§Ù§å§Û§ä§Ö §Þ§Ö§ä§à§Õ§í CControllerResponseData §Ú setResponse() §Õ§Ý§ñ §ã§à§ç§â§Ñ§ß§Ö§ß§Ú§ñ §à§ä§Ó§Ö§ä§Ñ §Ó §Þ§Ñ§ã§ã§Ú§Ó§Ö $data.
§±§â§Ú§Þ§Ö§â:
/**
* Validate input parameters.
*
* @return bool
*/
protected function checkInput(): bool {
$ret = $this->validateInput([
'status' => 'in '.implode(',', [HOST_STATUS_MONITORED, HOST_STATUS_NOT_MONITORED])
]);
if (!$ret) {
$this->setResponse(new CControllerResponseFatal());
}
return $ret;
}
/**
* Check user permissions.
*
* @return bool
*/
protected function checkPermissions() {
return $this->getUserType() >= USER_TYPE_ZABBIX_ADMIN;
}
/**
* Execute action and generate response object.
*/
protected function do Action(): void {
$data = [
'hosts_count' => API::Host()->get([
'countOutput' => true,
'filter' => [
'status' => $this->getInput('status')
]
])
];
$this->setResponse(new CControllerResponseData($data));
}
§£§í §Þ§à§Ø§Ö§ä§Ö §á§â§à§ã§Þ§à§ä§â§Ö§ä§î §á§à§Ý§ß§í§Û §ã§á§Ú§ã§à§Ü §Õ§à§ã§ä§å§á§ß§í§ç §Ü§Ý§Ñ§ã§ã§à§Ó §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§à§Ó §Ó Áú»¢¶Ä²© .