$scripts_wdgt->addItem($frmScr); } else { $form = new CForm(); $form->setName('frm_scripts'); $form->setAttribute('id', 'scripts'); $form->addVar('action', '1'); $numrows = new CDiv(); $numrows->setAttribute('name', 'numrows'); $scripts_wdgt->addHeader(S_SCRIPTS_BIG); $scripts_wdgt->addHeader($numrows); $table = new CTableInfo(S_NO_SCRIPTS_DEFINED); $table->setHeader(array(new CCheckBox('all_scripts', null, "checkAll('" . $form->getName() . "','all_scripts','scripts');"), make_sorting_header(S_NAME, 'name'), make_sorting_header(S_COMMAND, 'command'), S_USER_GROUP, S_HOST_GROUP, S_HOST_ACCESS)); $sortfield = getPageSortField('name'); $sortorder = getPageSortOrder(); $options = array('output' => API_OUTPUT_EXTEND, 'editable' => 1, 'select_groups' => API_OUTPUT_EXTEND); $scripts = CScript::get($options); // sorting order_result($scripts, $sortfield, $sortorder); // PAGING UPPER $paging = getPagingLine($scripts); $scripts_wdgt->addItem($paging); //--------- foreach ($scripts as $snum => $script) { $scriptid = $script['scriptid']; $user_group_name = S_ALL_S; if ($script['usrgrpid'] > 0) { $user_group = CUserGroup::get(array('usrgrpids' => $script['usrgrpid'], 'extendoutput' => 1)); $user_group = reset($user_group); $user_group_name = $user_group['name']; } $host_group_name = S_ALL_S;
public static function getScriptsByHosts($hostids) { zbx_value2array($hostids); $obj_params = array('hostids' => $hostids, 'preservekeys' => 1); $hosts_read_only = CHost::get($obj_params); $hosts_read_only = zbx_objectValues($hosts_read_only, 'hostid'); $obj_params = array('editable' => 1, 'hostids' => $hostids, 'preservekeys' => 1); $hosts_read_write = CHost::get($obj_params); $hosts_read_write = zbx_objectValues($hosts_read_write, 'hostid'); // initialize array $scripts_by_host = array(); foreach ($hostids as $id => $hostid) { $scripts_by_host[$hostid] = array(); } //----- $options = array('hostids' => $hostids, 'output' => API_OUTPUT_EXTEND, 'preservekeys' => 1); $groups = CHostGroup::get($options); $obj_params = array('groupids' => zbx_objectValues($groups, 'groupid'), 'sortfield' => 'name', 'output' => API_OUTPUT_EXTEND, 'preservekeys' => 1); $scripts = CScript::get($obj_params); foreach ($scripts as $num => $script) { $add_to_hosts = array(); $hostids = zbx_objectValues($groups[$script['groupid']]['hosts'], 'hostid'); if (PERM_READ_WRITE == $script['host_access']) { if ($script['groupid'] > 0) { $add_to_hosts = zbx_uint_array_intersect($hosts_read_write, $hostids); } else { $add_to_hosts = $hosts_read_write; } } else { if (PERM_READ_ONLY == $script['host_access']) { if ($script['groupid'] > 0) { $add_to_hosts = zbx_uint_array_intersect($hosts_read_only, $hostids); } else { $add_to_hosts = $hosts_read_only; } } } foreach ($add_to_hosts as $id => $hostid) { $scripts_by_host[$hostid][] = $script; } } //SDII(count($scripts_by_host)); return $scripts_by_host; }