Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 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);
     }
 }