class CControllerWebView extends CController {
protected function init() {
$this->disableCsrfValidation();
protected function checkInput() {
'filter_groupids' => 'array_id',
'filter_hostids' => 'array_id',
'filter_evaltype' => 'in '.TAG_EVAL_TYPE_AND_OR.','.TAG_EVAL_TYPE_OR,
'filter_tags' => 'array',
'sort' => 'in hostname,name',
'sortorder' => 'in '.ZBX_SORT_DOWN.','.ZBX_SORT_UP,
$ret = $this->validateInput($fields);
$this->setResponse(new CControllerResponseFatal());
protected function checkPermissions() {
return $this->checkAccess(CRoleHelper::UI_MONITORING_HOSTS);
protected function doAction() {
$sort_field = $this->getInput('sort', CProfile::get('web.httpmon.sort', 'name'));
$sort_order = $this->getInput('sortorder', CProfile::get('web.httpmon.sortorder', ZBX_SORT_UP));
CProfile::update('web.httpmon.sort', $sort_field, PROFILE_TYPE_STR);
CProfile::update('web.httpmon.sortorder', $sort_order, PROFILE_TYPE_STR);
if ($this->hasInput('filter_set')) {
CProfile::updateArray('web.httpmon.filter.groupids', $this->getInput('filter_groupids', []),
CProfile::updateArray('web.httpmon.filter.hostids', $this->getInput('filter_hostids', []), PROFILE_TYPE_ID);
$evaltype = $this->getInput('filter_evaltype', TAG_EVAL_TYPE_AND_OR);
CProfile::update('web.httpmon.filter.evaltype', $evaltype, PROFILE_TYPE_INT);
$filter_tags = ['tags' => [], 'values' => [], 'operators' => []];
foreach ($this->getInput('filter_tags', []) as $tag) {
if ($tag['tag'] === '' && $tag['value'] === '') {
$filter_tags['tags'][] = $tag['tag'];
$filter_tags['values'][] = $tag['value'];
$filter_tags['operators'][] = $tag['operator'];
CProfile::updateArray('web.httpmon.filter.tags.tag', $filter_tags['tags'], PROFILE_TYPE_STR);
CProfile::updateArray('web.httpmon.filter.tags.value', $filter_tags['values'], PROFILE_TYPE_STR);
CProfile::updateArray('web.httpmon.filter.tags.operator', $filter_tags['operators'], PROFILE_TYPE_INT);
else if ($this->hasInput('filter_rst')) {
CProfile::deleteIdx('web.httpmon.filter.groupids');
CProfile::deleteIdx('web.httpmon.filter.hostids');
CProfile::deleteIdx('web.httpmon.filter.evaltype');
CProfile::deleteIdx('web.httpmon.filter.tags.tag');
CProfile::deleteIdx('web.httpmon.filter.tags.value');
CProfile::deleteIdx('web.httpmon.filter.tags.operator');
'groupids' => CProfile::getArray('web.httpmon.filter.groupids', []),
'hostids' => CProfile::getArray('web.httpmon.filter.hostids', []),
'evaltype' => CProfile::get('web.httpmon.filter.evaltype', TAG_EVAL_TYPE_AND_OR),