Áú»¢¶Ä²©

§¥§Ö§Û§ã§ä§Ó§Ú§ñ

§¥§Ö§Û§ã§ä§Ó§Ú§ñ §à§ä§Ó§Ö§é§Ñ§ð§ä §Ù§Ñ '§Ò§Ú§Ù§ß§Ö§ã-§Ý§à§Ô§Ú§Ü§å' §Þ§à§Õ§å§Ý§ñ. §¥§Ö§Û§ã§ä§Ó§Ú§Ö §à§Ò§í§é§ß§à §ã§à§ã§ä§à§Ú§ä §Ú§Ù controller §Ú action view.

§®§à§Õ§å§Ý§î §Þ§à§Ø§Ö§ä:

  • §£§í§Ù§Ó§Ñ§ä§î §Õ§Ö§Û§ã§ä§Ó§Ú§ñ, §Ü§à§ä§à§â§í§Ö §å§Ø§Ö §à§á§â§Ö§Õ§Ö§Ý§Ö§ß§í §Ó §Ó§Ö§Ò-§Ú§ß§ä§Ö§â§æ§Ö§Û§ã§Ö Áú»¢¶Ä²©.
  • §±§Ö§â§Ö§à§á§â§Ö§Õ§Ö§Ý§Ú§ä§î §Õ§Ö§Û§ã§ä§Ó§Ú§ñ §á§à §å§Þ§à§Ý§é§Ñ§ß§Ú§ð §ß§Ñ§ã§ä§â§Ñ§Ú§Ó§Ñ§Ö§Þ§í§Þ§Ú §Õ§Ö§Û§ã§ä§Ó§Ú§ñ§Þ§Ú.
  • §°§á§â§Ö§Õ§Ö§Ý§Ú§ä§î §ã§à§Ó§Ö§â§ê§Ö§ß§ß§à §ß§à§Ó§í§Ö §Õ§Ö§Û§ã§ä§Ó§Ú§ñ.

§¹§ä§à§Ò§í §á§Ö§â§Ö§à§á§â§Ö§Õ§Ö§Ý§Ú§ä§î §á§à§Ó§Ö§Õ§Ö§ß§Ú§Ö §Õ§Ö§Û§ã§ä§Ó§Ú§ñ §á§à §å§Þ§à§Ý§é§Ñ§ß§Ú§ð §ß§Ö§Ü§à§ä§à§â§í§Þ §á§à§Ý§î§Ù§à§Ó§Ñ§ä§Ö§Ý§î§ã§Ü§Ú§Þ §á§à§Ó§Ö§Õ§Ö§ß§Ú§Ö§Þ, §à§á§â§Ö§Õ§Ö§Ý§Ú§ä§Ö §Õ§Ö§Û§ã§ä§Ó§Ú§Ö §ã §ä§Ö§Þ §Ø§Ö §Ú§Þ§Ö§ß§Ö§Þ §Ó §Ü§à§ß§æ§Ú§Ô§å§â§Ñ§è§Ú§Ú §Þ§à§Õ§å§Ý§ñ. §±§â§Ú §Ó§í§Ù§à§Ó§Ö §Õ§Ö§Û§ã§ä§Ó§Ú§ñ §Ó§Þ§Ö§ã§ä§à §Õ§Ö§Û§ã§ä§Ó§Ú§ñ Áú»¢¶Ä²© §á§à §å§Þ§à§Ý§é§Ñ§ß§Ú§ð §Ò§å§Õ§Ö§ä §Ó§í§á§à§Ý§ß§Ö§ß§à §Õ§Ö§Û§ã§ä§Ó§Ú§Ö §Þ§à§Õ§å§Ý§ñ.

§¶§Ñ§Û§Ý§í §Õ§Ö§Û§ã§ä§Ó§Ú§Û §Õ§à§Ý§Ø§ß§í §ç§â§Ñ§ß§Ú§ä§î§ã§ñ §Ó §á§Ñ§á§Ü§Ö actions. §¥§Ö§Û§ã§ä§Ó§Ú§ñ §ß§Ö§à§Ò§ç§à§Õ§Ú§Þ§à §å§Ü§Ñ§Ù§Ñ§ä§î §Ó §æ§Ñ§Û§Ý§Ö manifest.json.

§¬§à§ß§ä§â§à§Ý§Ý§Ö§â

§²§Ñ§Ò§à§é§Ú§Û §á§â§à§è§Ö§ã§ã §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§Ñ §Õ§Ö§Û§ã§ä§Ó§Ú§Û:

  1. §±§â§à§Ó§Ö§â§î§ä§Ö, §é§ä§à §Ó§ã§Ö §á§Ñ§â§Ñ§Þ§Ö§ä§â§í, §á§Ö§â§Ö§Õ§Ñ§ß§ß§í§Ö §Ó HTTP-§Ù§Ñ§á§â§à§ã§Ö, §ñ§Ó§Ý§ñ§ð§ä§ã§ñ §Õ§à§á§å§ã§ä§Ú§Þ§í§Þ§Ú:
  • §£§í§Ù§à§Ó§Ú§ä§Ö §Þ§Ö§ä§à§Õ checkInput() §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§Ñ
  • §ª§ã§á§à§Ý§î§Ù§å§Û§ä§Ö §á§â§Ñ§Ó§Ú§Ý§Ñ §á§â§à§Ó§Ö§â§Ü§Ú, §à§á§â§Ö§Õ§Ö§Ý§Ö§ß§ß§í§Ö §Ó CNewValidator.php
  • §£§í§Ù§à§Ó§Ú§ä§Ö §Þ§Ö§ä§à§Õ validateInput()
  1. §±§â§à§Ó§Ö§â§î§ä§Ö §á§â§Ñ§Ó§Ñ §á§à§Ý§î§Ù§à§Ó§Ñ§ä§Ö§Ý§ñ.

  2. §±§à§Õ§Ô§à§ä§à§Ó§î§ä§Ö §Õ§Ñ§ß§ß§í§Ö §Ó §ã§à§à§ä§Ó§Ö§ä§ã§ä§Ó§Ú§Ú §ã §á§Ö§â§Ö§Õ§Ñ§ß§ß§í§Þ§Ú §á§Ñ§â§Ñ§Þ§Ö§ä§â§Ñ§Þ§Ú: §Ö§ã§Ý§Ú checkInput() §Ó§à§Ù§Ó§â§Ñ§ë§Ñ§Ö§ä true, Áú»¢¶Ä²© §Ó§í§Ù§í§Ó§Ñ§Ö§ä §Þ§Ö§ä§à§Õ doAction() §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§Ñ.

  3. §±§à§Õ§Ô§à§ä§à§Ó§î§ä§Ö §Þ§Ñ§ã§ã§Ú§Ó $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));
       }

§£§í §Þ§à§Ø§Ö§ä§Ö §á§â§à§ã§Þ§à§ä§â§Ö§ä§î §á§à§Ý§ß§í§Û §ã§á§Ú§ã§à§Ü §Õ§à§ã§ä§å§á§ß§í§ç §Ü§Ý§Ñ§ã§ã§à§Ó §Ü§à§ß§ä§â§à§Ý§Ý§Ö§â§à§Ó §Ó Áú»¢¶Ä²© .