}
}
$divTabs->addTab('hostTab', _('Host'), $hostList);
// templates
$tmplList = new CFormList('tmpllist');
// create linked template table
$linkedTemplateTable = new CTable(_('No templates linked.'), 'formElementTable');
$linkedTemplateTable->attr('id', 'linkedTemplateTable');
$linkedTemplates = API::Template()->get(array('templateids' => $templateIds, 'output' => array('templateid', 'name')));
CArrayHelper::sort($linkedTemplates, array('name'));
// templates for normal hosts
if (!$isDiscovered) {
    $linkedTemplateTable->setHeader(array(_('Name'), _('Action')));
    $ignoredTemplates = array();
    foreach ($linkedTemplates as $template) {
        $tmplList->addVar('templates[]', $template['templateid']);
        $linkedTemplateTable->addRow(array($template['name'], array(new CSubmit('unlink[' . $template['templateid'] . ']', _('Unlink'), null, 'link_menu'), SPACE, SPACE, isset($original_templates[$template['templateid']]) ? new CSubmit('unlink_and_clear[' . $template['templateid'] . ']', _('Unlink and clear'), null, 'link_menu') : SPACE)), null, 'conditions_' . $template['templateid']);
        $ignoredTemplates[$template['templateid']] = $template['name'];
    }
    $tmplList->addRow(_('Linked templates'), new CDiv($linkedTemplateTable, 'objectgroup inlineblock border_dotted ui-corner-all'));
    // create new linked template table
    $newTemplateTable = new CTable(null, 'formElementTable');
    $newTemplateTable->attr('id', 'newTemplateTable');
    $newTemplateTable->attr('style', 'min-width: 400px;');
    $newTemplateTable->addRow(array(new CMultiSelect(array('name' => 'add_templates[]', 'objectName' => 'templates', 'ignored' => $ignoredTemplates))));
    $newTemplateTable->addRow(array(new CSubmit('add_template', _('Add'), null, 'link_menu')));
    $tmplList->addRow(_('Link new templates'), new CDiv($newTemplateTable, 'objectgroup inlineblock border_dotted ui-corner-all'));
} else {
    $linkedTemplateTable->setHeader(array(_('Name')));
    foreach ($linkedTemplates as $template) {
        $linkedTemplateTable->addRow(array($template['name']), null, 'conditions_' . $template['templateid']);
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
**/
$action = 'screenedit.php?form=update&screenid=' . get_request('screenid');
if (isset($_REQUEST['screenitemid'])) {
    $action .= '&screenitemid=' . get_request('screenitemid');
}
// create screen form
$screenForm = new CForm('post', $action);
$screenForm->setName('screen_item_form');
// create screen form list
$screenFormList = new CFormList('screenFormList');
$screenFormList->addVar('screenid', $_REQUEST['screenid']);
if (isset($_REQUEST['screenitemid'])) {
    $screenFormList->addVar('screenitemid', $_REQUEST['screenitemid']);
    $screenItems = zbx_toHash($this->data['screen']['screenitems'], 'screenitemid');
} else {
    $screenFormList->addVar('x', $_REQUEST['x']);
    $screenFormList->addVar('y', $_REQUEST['y']);
}
if (isset($_REQUEST['screenitemid']) && !isset($_REQUEST['form_refresh'])) {
    $screenItem = $screenItems[$_REQUEST['screenitemid']];
    $resourceType = $screenItem['resourcetype'];
    $resourceId = $screenItem['resourceid'];
    $width = $screenItem['width'];
    $height = $screenItem['height'];
    $colspan = $screenItem['colspan'];
    $rowspan = $screenItem['rowspan'];
$buttonRow->addItem($buttonColumn);
$customGroupTable->addRow($buttonRow);
$groupDiv = new CDiv($customGroupTable, 'objectgroup border_dotted ui-corner-all group-prototypes');
$groupList->addRow(_('Group prototypes'), $groupDiv);
$divTabs->addTab('groupTab', _('Groups'), $groupList);
// templates
$tmplList = new CFormList('tmpllist');
// create linked template table
$linkedTemplateTable = new CTable(_('No templates linked.'), 'formElementTable');
$linkedTemplateTable->attr('id', 'linkedTemplateTable');
$linkedTemplateTable->attr('style', 'min-width: 400px;');
$linkedTemplateTable->setHeader(array(_('Name'), _('Action')));
$ignoreTemplates = array();
if ($hostPrototype['templates']) {
    foreach ($hostPrototype['templates'] as $template) {
        $tmplList->addVar('templates[' . $template['templateid'] . ']', $template['templateid']);
        $linkedTemplateTable->addRow(array($template['name'], !$hostPrototype['templateid'] ? new CSubmit('unlink[' . $template['templateid'] . ']', _('Unlink'), null, 'link_menu') : ''));
        $ignoreTemplates[$template['templateid']] = $template['name'];
    }
    $tmplList->addRow(_('Linked templates'), new CDiv($linkedTemplateTable, 'objectgroup inlineblock border_dotted ui-corner-all'));
} elseif ($hostPrototype['templateid']) {
    $tmplList->addRow(_('No templates linked.'));
}
// create new linked template table
if (!$hostPrototype['templateid']) {
    $newTemplateTable = new CTable(null, 'formElementTable');
    $newTemplateTable->attr('id', 'newTemplateTable');
    $newTemplateTable->attr('style', 'min-width: 400px;');
    $newTemplateTable->addRow(array(new CMultiSelect(array('name' => 'add_templates[]', 'objectName' => 'templates', 'ignored' => $ignoreTemplates))));
    $newTemplateTable->addRow(array(new CSubmit('add_template', _('Add'), null, 'link_menu')));
    $tmplList->addRow(_('Link new templates'), new CDiv($newTemplateTable, 'objectgroup inlineblock border_dotted ui-corner-all'));
    $cmbIPMIAuthtype = new CListBox('ipmi_authtype', $data['ipmi_authtype'], 7, null, ipmiAuthTypes());
    $cmbIPMIPrivilege = new CListBox('ipmi_privilege', $data['ipmi_privilege'], 5, null, ipmiPrivileges());
} else {
    $cmbIPMIAuthtype = [(new CTextBox('ipmi_authtype_name', ipmiAuthTypes($data['ipmi_authtype']), true))->setWidth(ZBX_TEXTAREA_SMALL_WIDTH), new CVar('ipmi_authtype', $data['ipmi_authtype'])];
    $cmbIPMIPrivilege = [(new CTextBox('ipmi_privilege_name', ipmiPrivileges($data['ipmi_privilege']), true))->setWidth(ZBX_TEXTAREA_SMALL_WIDTH), new CVar('ipmi_privilege', $data['ipmi_privilege'])];
}
$divTabs->addTab('ipmiTab', _('IPMI'), (new CFormList())->addRow(_('Authentication algorithm'), $cmbIPMIAuthtype)->addRow(_('Privilege level'), $cmbIPMIPrivilege)->addRow(_('Username'), (new CTextBox('ipmi_username', $data['ipmi_username'], $data['flags'] == ZBX_FLAG_DISCOVERY_CREATED))->setWidth(ZBX_TEXTAREA_SMALL_WIDTH))->addRow(_('Password'), (new CTextBox('ipmi_password', $data['ipmi_password'], $data['flags'] == ZBX_FLAG_DISCOVERY_CREATED))->setWidth(ZBX_TEXTAREA_SMALL_WIDTH)));
/*
 * Macros
 */
$macrosView = new CView('hostmacros', ['macros' => $data['macros'], 'show_inherited_macros' => $data['show_inherited_macros'], 'is_template' => false, 'readonly' => $data['flags'] == ZBX_FLAG_DISCOVERY_CREATED]);
$divTabs->addTab('macroTab', _('Macros'), $macrosView->render());
$inventoryFormList = new CFormList('inventorylist');
$inventoryFormList->addRow(null, (new CRadioButtonList('inventory_mode', (int) $data['inventory_mode']))->addValue(_('Disabled'), HOST_INVENTORY_DISABLED)->addValue(_('Manual'), HOST_INVENTORY_MANUAL)->addValue(_('Automatic'), HOST_INVENTORY_AUTOMATIC)->setEnabled($data['flags'] != ZBX_FLAG_DISCOVERY_CREATED)->setModern(true));
if ($data['flags'] == ZBX_FLAG_DISCOVERY_CREATED) {
    $inventoryFormList->addVar('inventory_mode', $data['inventory_mode']);
}
$hostInventoryTable = DB::getSchema('host_inventory');
$hostInventoryFields = getHostInventories();
foreach ($hostInventoryFields as $inventoryNo => $inventoryInfo) {
    $field_name = $inventoryInfo['db_field'];
    if (!array_key_exists($field_name, $data['host_inventory'])) {
        $data['host_inventory'][$field_name] = '';
    }
    if ($hostInventoryTable['fields'][$field_name]['type'] == DB::FIELD_TYPE_TEXT) {
        $input = (new CTextArea('host_inventory[' . $field_name . ']', $data['host_inventory'][$field_name]))->setWidth(ZBX_TEXTAREA_BIG_WIDTH);
    } else {
        $field_length = $hostInventoryTable['fields'][$field_name]['length'];
        if ($field_length < 39) {
            $width = ZBX_TEXTAREA_SMALL_WIDTH;
        } elseif ($field_length < 64) {