public function createDefaultGroup() { $defaultgroups = json_decode(MONITIS_ADMIN_CONTACT_GROUPS, true); $existedGroups = MonitisApi::getContactGroupList(); // existed monitis groups foreach ($defaultgroups as $mType => $groupName) { $group = MonitisHelper::in_array($existedGroups, 'id', MonitisConf::$settings['groups'][$mType]['groupId']); $alerts = json_decode(MONITIS_NOTIFICATION_RULE, true); if ($mType == 'internal') { $alerts['minFailedLocationCount'] = null; } $groupId = $group['id'] ? $group['id'] : 0; $notifByTypeGroup = MonitisApiHelper::getNotificationRuleByType($mType, $groupId); $alertRulesDefault = $notifByTypeGroup ? $notifByTypeGroup : $alerts; if ($group) { MonitisConf::$settings['groups'][$mType]['groupId'] = $group['id']; MonitisConf::$settings['groups'][$mType]['groupName'] = $group['name']; MonitisConf::$settings['groups'][$mType]['alert'] = $alertRulesDefault; } else { $newGroupName = $groupName; $resp = MonitisApi::addContactGroup(1, $newGroupName); if ($resp['status'] == 'ok') { MonitisConf::$settings['groups'][$mType]['groupId'] = $resp['data']; MonitisConf::$settings['groups'][$mType]['groupName'] = $newGroupName; MonitisConf::$settings['groups'][$mType]['alert'] = $alertRulesDefault; } else { // error return array('status' => 'error', 'msg' => 'Add contact group error ' . $resp['error']); } } // $r = $this->addContacts(ucfirst($mType), MonitisConf::$settings['groups'][$mType]['groupId']); } MonitisConf::update_settings(json_encode(MonitisConf::$settings)); return array('status' => 'ok', 'msg' => 'External, internal groups sets success'); }
$contactGroups[$i]['id'] = $monitisContactGroups[$i]['contactGroupId']; $contactGroups[$i]['name'] = $monitisContactGroups[$i]['contactGroupName']; $alertRules = ''; if (MonitisConf::$settings['groups']['external']['groupId'] == $monitisContactGroups[$i]['contactGroupId']) { $monitorType = 'external'; $externalAlerts = MonitisApiHelper::getNotificationRuleByType($monitorType, $monitisContactGroups[$i]['contactGroupId']); if ($externalAlerts) { $alertRules = json_encode($externalAlerts); $alertRules = str_replace('"', "~", $alertRules); } else { $alertRules = json_encode(MonitisConf::$settings['groups'][$monitorType]['alert']); $alertRules = str_replace('"', "~", $alertRules); } } elseif (MonitisConf::$settings['groups']['internal']['groupId'] == $monitisContactGroups[$i]['contactGroupId']) { $monitorType = 'internal'; $internalAlerts = MonitisApiHelper::getNotificationRuleByType($monitorType, $monitisContactGroups[$i]['contactGroupId']); if ($internalAlerts) { $alertRules = json_encode($internalAlerts); $alertRules = str_replace('"', "~", $alertRules); } else { $alertRules = json_encode(MonitisConf::$settings['groups'][$monitorType]['alert']); $alertRules = str_replace('"', "~", $alertRules); } } $contactGroups[$i]['type'] = $monitorType; $contactGroups[$i]['alerts'] = $alertRules; $contactGroups[$i]['whmcsContacts'] = array(); $contactGroups[$i]['notWhmcsContacts'] = array(); for ($j = 0; $j < count($monitisContactGroups[$i]['contacts']); $j++) { $contact = array('email' => $monitisContactGroups[$i]['contacts'][$j]['account'], 'name' => $monitisContactGroups[$i]['contacts'][$j]['name'], 'isActive' => $monitisContactGroups[$i]['contacts'][$j]['activeFlag']); $isWhmcsContact = false;