_popupMeta = $popupMeta; require_once('modules/' . $currentModule . '/' . $this->_popupMeta['moduleMain'] . '.php'); if(isset($this->_popupMeta['create']['formBase']) && isset($_REQUEST['create']) && $_REQUEST['create'] == 'true') { // include create form require_once('modules/' . $currentModule . '/' . $this->_popupMeta['create']['formBase']); $this->_create = true; } } /* * */ function _get_where_clause() { $where = ''; $whereClauses = array(); if(isset($_REQUEST['query'])) { foreach(array_keys($this->_popupMeta['whereClauses']) as $key) { append_where_clause($whereClauses, $key, $this->_popupMeta['whereClauses'][$key]); } $where = generate_where_statement($whereClauses); } if(!empty($this->_popupMeta['whereStatement'])){ if(!empty($where))$where .= ' AND '; $where .= $this->_popupMeta['whereStatement']; } return $where; } /** * */ function process_page() { global $theme; global $mod_strings; global $app_strings; global $currentModule; global $app_list_strings, $sugar_version, $sugar_config; $output_html = ""; $where = ''; if(empty($_REQUEST[$currentModule . '_' . strtoupper($this->_popupMeta['moduleMain']) . '_offset'])) { $_POST[$currentModule . '_' . strtoupper($this->_popupMeta['moduleMain']) . '_offset'] = ''; } if(empty($_REQUEST['saved_associated_data'])) { $_POST['saved_associated_data'] = ''; } $where = $this->_get_where_clause(); // CREATE STUFF if($this->_create) { $formBase = new $this->_popupMeta['create']['formBaseClass'](); if(isset($_REQUEST['doAction']) && $_REQUEST['doAction'] == 'save') { $formBase->handleSave('', false, true); } $lbl_save_button_title = $app_strings['LBL_SAVE_BUTTON_TITLE']; $lbl_save_button_key = $app_strings['LBL_SAVE_BUTTON_KEY']; $lbl_save_button_label = $app_strings['LBL_SAVE_BUTTON_LABEL']; // TODO: cleanup the construction of $addform $prefix = empty($this->_popupMeta['create']['getFormBodyParams'][0]) ? '' : $this->_popupMeta['create']['getFormBodyParams'][0]; $mod = empty($this->_popupMeta['create']['getFormBodyParams'][1]) ? '' : $this->_popupMeta['create']['getFormBodyParams'][1]; $formBody = empty($this->_popupMeta['create']['getFormBodyParams'][2]) ? '' : $this->_popupMeta['create']['getFormBodyParams'][2]; $getFormMethod = (empty($this->_popupMeta['create']['getFormMethod']) ? 'getFormBody' : $this->_popupMeta['create']['getFormMethod']); $formbody = $formBase->$getFormMethod($prefix, $mod, $formBody); $addform = '
' . str_replace('
', '
 ', $formbody) . '
' . ''; $formSave = << EOQ; // if metadata contains custom inputs for the quickcreate if(!empty($this->_popupMeta['customInput']) && is_array($this->_popupMeta['customInput'])) { foreach($this->_popupMeta['customInput'] as $key => $value) $formSave .= '\n'; } $createButtonTranslation = translate($this->_popupMeta['create']['createButton']); $createButton = << EOQ; $addformheader = get_form_header($createButtonTranslation, $formSave, false); } // END CREATE STUFF // search request inputs $searchInputs = array(); foreach($this->_popupMeta['searchInputs'] as $input) $searchInputs[$input] = empty($_REQUEST[$input]) ? '' : $_REQUEST[$input]; $request_data = empty($_REQUEST['request_data']) ? '' : $_REQUEST['request_data']; $hide_clear_button = empty($_REQUEST['hide_clear_button']) && empty($this->_hide_clear_button) ? false : true; $button = ''; if(isset($_REQUEST['mass'])) { foreach(array_unique($_REQUEST['mass']) as $record) { $button .= "\n"; } } //START:FOR MULTI-SELECT $multi_select = false; if (!empty($_REQUEST['mode']) && strtoupper($_REQUEST['mode']) == 'MULTISELECT') { $multi_select = true; $button .= ""; $button .= "\n"; } //END:FOR MULTI-SELECT if(!$hide_clear_button) { $button .= "\n"; } $button .= "\n"; if(isset($this->_popupMeta['templateForm'])) { $form = new XTemplate($this->_popupMeta['templateForm']); } else { $form = new XTemplate('modules/' . $currentModule . '/Popup_picker.html'); } $form->assign('MOD', $mod_strings); $form->assign('APP', $app_strings); $form->assign('THEME', $theme); $form->assign('MODULE_NAME', $currentModule); $form->assign('request_data', $request_data); // CREATE STUFF if($this->_create) { $form->assign('CREATEBUTTON', $createButton); $form->assign('ADDFORMHEADER', $addformheader); $form->assign('ADDFORM', $addform); } // CREATE STUFF if(isset($this->_popupMeta['className'])) $seed_bean = new $this->_popupMeta['className'](); else $seed_bean = new $this->_popupMeta['moduleMain'](); // assign search inputs to xtemplates foreach(array_keys($searchInputs) as $key) { if(!empty($_REQUEST[$key]) && (isset($seed_bean->field_name_map[$key]['type']) && $seed_bean->field_name_map[$key]['type'] == 'bool')) { $form->assign(strtoupper($key), ' checked '); } else { $form->assign(strtoupper($key), $searchInputs[$key]); } } if($this->_create) $form->assign('CREATE', 'true'); else $form->assign('CREATE', 'false'); // fill any doms if(isset($this->_popupMeta['selectDoms'])) foreach($this->_popupMeta['selectDoms'] as $key => $value) { $form->assign($key, get_select_options_with_id($app_list_strings[$value['dom']], $value['searchInput'])); } $form->assign('MULTI_SELECT', !empty($_REQUEST['mode']) ? strtoupper($_REQUEST['mode']) : ''); ob_start(); insert_popup_header($theme); $output_html .= ob_get_contents(); ob_end_clean(); $output_html .= get_form_header($mod_strings['LBL_SEARCH_FORM_TITLE'], '', false); $form->parse('main.SearchHeader'); $output_html .= $form->text('main.SearchHeader'); // Reset the sections that are already in the page so that they do not print again later. $form->reset('main.SearchHeader'); $ListView = new ListView(); $ListView->show_select_menu = false; $ListView->show_delete_button = false; $ListView->show_export_button = false; $ListView->process_for_popups = true; $ListView->setXTemplate($form); $ListView->multi_select_popup = $multi_select; $ListView->xTemplate->assign('TAG_TYPE', 'A'); if(isset($this->_popupMeta['listTitle'])) { $ListView->setHeaderTitle($this->_popupMeta['listTitle']); } else { $ListView->setHeaderTitle($mod_strings['LBL_LIST_FORM_TITLE']); } $ListView->setHeaderText($button); $ListView->setQuery($where, '', $this->_popupMeta['orderBy'], $this->_popupMeta['varName']); $ListView->setModStrings($mod_strings); ob_start(); $ListView->processListView($seed_bean, 'main', $this->_popupMeta['varName']); $output_html .= ob_get_contents(); ob_end_clean(); $json = getJSONobj(); // decode then encode to escape "'s $output_html .= " '; $output_html .= insert_popup_footer(); return $output_html; } } // end of class Popup_Picker ?>