public function process(Vtiger_Request $request) { $db = PearDatabase::getInstance(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $record = $request->get('record'); if (!empty($record) && $request->get('isDuplicate') == true) { $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('MODE', ''); } else { if (!empty($record)) { $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('RECORD_ID', $record); $viewer->assign('MODE', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $viewer->assign('MODE', ''); } } $moduleModel = $recordModel->getModule(); $fieldList = $moduleModel->getFields(); $requestFieldList = array_intersect_key($request->getAll(), $fieldList); foreach ($requestFieldList as $fieldName => $fieldValue) { $fieldModel = $fieldList[$fieldName]; if ($fieldModel->isEditable()) { $recordModel->set($fieldName, $fieldValue); } } if ($request->get('record') != '') { $rid = $request->get('record'); $mresult = $db->query("SELECT moduleid FROM vtiger_osspdf WHERE osspdfid = '{$rid}'", true); $moduleid = $db->query_result($mresult, 0, 'moduleid'); } else { $moduleid = '2'; } $pobierz = $db->query("select name from vtiger_tab where tabid = '{$moduleid}'", true); $modulename = $db->query_result($pobierz, 0, "name"); $chosen_module = $modulename; $pobierz_bloki = $db->query("select blockid, blocklabel from vtiger_blocks where tabid = '{$moduleid}'", true); $field_list = array(); for ($k = 0; $k < $db->num_rows($pobierz_bloki); $k++) { $blockid = $db->query_result($pobierz_bloki, $k, "blockid"); $label = $db->query_result($pobierz_bloki, $k, "blocklabel"); $pobierz_pola = $db->query("select fieldname, fieldlabel from vtiger_field where block = '{$blockid}' and tabid = '{$moduleid}'", true); for ($i = 0; $i < $db->num_rows($pobierz_pola); $i++) { $field_list[vtranslate($label, $modulename)][$i]['name'] = $db->query_result($pobierz_pola, $i, "fieldname"); $field_list[vtranslate($label, $modulename)][$i]['label'] = vtranslate($db->query_result($pobierz_pola, $i, "fieldlabel"), $modulename); } } $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT); ///Conditions vimport('~~modules/OSSPdf/helpers/Conditions.php'); $baseModule = Vtiger_Functions::getModuleName($moduleid); $Condition = Conditions::getConditionRelToRecordFieldInfo($request->get('record'), $baseModule); $viewer->assign('CONDITION_BY_TYPE', Conditions::getConditionByType()); $viewer->assign('REQUIRED_CONDITIONS', $Condition['required_conditions']); $viewer->assign('OPTIONAL_CONDITIONS', $Condition['optional_conditions']); $viewer->assign('FIELD_LIST', Conditions::getListBaseModuleField($baseModule)); $viewer->assign('BASE_MODULE', $baseModule); $viewer->assign('RECORD', $recordModel); ///Conditions $viewer->assign('DEFAULT_FIELDS', $field_list); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('MODULE', $moduleName); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $mappingRelatedField = $moduleModel->getMappingRelatedField($moduleName); $viewer->assign('MAPPING_RELATED_FIELD', Zend_Json::encode($mappingRelatedField)); $isRelationOperation = $request->get('relationOperation'); //if it is relation edit $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation); if ($isRelationOperation) { $viewer->assign('SOURCE_MODULE', $request->get('sourceModule')); $viewer->assign('SOURCE_RECORD', $request->get('sourceRecord')); } $viewer->assign('MAX_UPLOAD_LIMIT_MB', vglobal('upload_maxsize') / 1000000); $viewer->assign('MAX_UPLOAD_LIMIT', vglobal('upload_maxsize')); $viewer->view('EditView.tpl', $moduleName); }
function preProcess(Vtiger_Request $request, $display = true) { $db = PearDatabase::getInstance(); parent::preProcess($request, false); $origModuleName = $request->getModule(); $recordId = $request->get('record'); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); $recordStrucure = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_DETAIL); $summaryInfo = array(); // Take first block information as summary information $stucturedValues = $recordStrucure->getStructure(); foreach ($stucturedValues as $blockLabel => $fieldList) { $summaryInfo[$blockLabel] = $fieldList; break; } $detailViewLinkParams = array('MODULE' => $moduleName, 'RECORD' => $recordId); $detailViewLinks = $this->record->getDetailViewLinks($detailViewLinkParams); $navigationInfo = ListViewSession::getListViewNavigation($recordId); $viewer = $this->getViewer($request); $modid = $recordModel->get('moduleid'); $moduleNameResult = $db->query("select name from vtiger_tab where tabid = '{$modid}'", true); $moduleName = $db->query_result($moduleNameResult, 0, 'name'); $tName = vtranslate($moduleName, $moduleName); $viewer->assign('MODULEID_NAME', $tName); $viewer->assign('RECORD', $recordModel); //var_dump($recordModel); //exit; ///Conditions vimport('~~modules/OSSPdf/helpers/Conditions.php'); $baseModule = Vtiger_Functions::getModuleName($modid); $Condition = Conditions::getConditionRelToRecordFieldInfo($request->get('record'), $baseModule); $viewer->assign('REQUIRED_CONDITIONS', $Condition['required_conditions']); $viewer->assign('OPTIONAL_CONDITIONS', $Condition['optional_conditions']); $viewer->assign('BASE_MODULE', $baseModule); ///Conditions $viewer->assign('NAVIGATION', $navigationInfo); //Intially make the prev and next records as null $prevRecordId = null; $nextRecordId = null; $found = false; if ($navigationInfo) { foreach ($navigationInfo as $page => $pageInfo) { foreach ($pageInfo as $index => $record) { //If record found then next record in the interation //will be next record if ($found) { $nextRecordId = $record; break; } if ($record == $recordId) { $found = true; } //If record not found then we are assiging previousRecordId //assuming next record will get matched if (!$found) { $prevRecordId = $record; } } //if record is found and next record is not calculated we need to perform iteration if ($found && !empty($nextRecordId)) { break; } } } $moduleModel = Vtiger_Module_Model::getInstance($origModuleName); if (!empty($prevRecordId)) { $viewer->assign('PREVIOUS_RECORD_URL', $moduleModel->getDetailViewUrl($prevRecordId)); } if (!empty($nextRecordId)) { $viewer->assign('NEXT_RECORD_URL', $moduleModel->getDetailViewUrl($nextRecordId)); } $viewer->assign('MODULE_MODEL', $this->record->getModule()); $viewer->assign('DETAILVIEW_LINKS', $detailViewLinks); $viewer->assign('MODULE', $request->getModule()); $viewer->assign('IS_EDITABLE', $this->record->getRecord()->isEditable($moduleName)); $viewer->assign('IS_DELETABLE', $this->record->getRecord()->isDeletable($moduleName)); $viewer->assign('URL_CONTENT', "index.php?module=OSSPdf&view=content&record={$recordId}"); $viewer->assign('URL_FOOTER', "index.php?module=OSSPdf&view=footer&record={$recordId}"); $viewer->assign('URL_HEADER', "index.php?module=OSSPdf&view=header&record={$recordId}"); $linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view')); $linkModels = $this->record->getSideBarLinks($linkParams); $viewer->assign('QUICK_LINKS', $linkModels); if ($display) { $this->preProcessDisplay($request); } }