$attr) { if(empty($attr['control'])) continue; $fieldName = zget($attr, 'name', $field); $attr['width'] = zget($attr, 'width', $defaultWidth); $control = array(); $control['type'] = $attr['control']; if($attr['control'] == 'select') $control['type'] = 'picker'; if($attr['control'] == 'radio') $control['type'] = 'radioList'; if(!empty($attr['options'])) $control['items'] = $attr['options']; if($attr['control'] == 'multi-select') { $control['type'] = 'picker'; $control['multiple'] = true; $fieldName .= '[]'; } if($field == 'line' and common::hasPriv('product', 'manageLine') and $programID) { $formGroup = formGroup ( set::width($attr['width']), set::label($attr['title']), inputGroup ( picker ( set::id($fieldName), set::name($fieldName), set::items($attr['options']), set::value($attr['default']), set::required($attr['required']) ), input ( set::type('text'), set::name('lineName'), set::className('hidden') ), span ( set::className('input-group-addon'), checkbox ( set::name('newLine'), set::checked(empty($attr['options'])), set::text($lang->product->newLine) ) ) ) ); } else { $formGroup = formGroup ( set::id($fieldName), set::width($attr['width']), set::name($fieldName), set::label($attr['title']), set::control($control), set::value($attr['default']), set::required($attr['required']) ); } if($attr['control'] == 'hidden') $formGroup = formRow(set::hidden(true), $formGroup); $formItems[$field] = $formGroup; } if(empty($programID)) $formItems['line'] = formRow(set::hidden(true), $formItems['line']); /* Set whitelist box. */ $formItems['whitelist'] = formRow ( set::id('whitelistBox'), formGroup ( set::width('full'), set::label($lang->product->whitelist), div ( setClass('w-full check-list'), div ( inputGroup ( $lang->product->groups, picker ( set::id($groupsField['name']), set::name($groupsField['name'] . '[]'), set::multiple(true), set::items($groupsField['options']), set::value($groupsField['default']) ) ) ), div ( inputGroup ( $lang->product->users, picker ( set::id($usersField['name']), set::name($usersField['name'] . '[]'), set::multiple(true), set::items($usersField['options']), set::value($usersField['default']) ) ) ) ), ) ); formPanel ( set::title($title), on::change('#program', 'setParentProgram'), on::change('#acl', 'setWhite(e.target)'), on::click('[name=newLine]', 'toggleLine(e.target)'), $formItems ); /* ====== Render page ====== */ render();