[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 *************************************************************************************/ 10 11 class Settings_Workflows_EditTaskRecordStructure_Model extends Settings_Workflows_RecordStructure_Model { 12 13 /** 14 * Function to get the values in stuctured format 15 * @return <array> - values in structure array('block'=>array(fieldinfo)); 16 */ 17 public function getStructure() { 18 if(!empty($this->structuredValues)) { 19 return $this->structuredValues; 20 } 21 22 $recordModel = $this->getWorkFlowModel(); 23 $recordId = $recordModel->getId(); 24 25 $values = array(); 26 27 $baseModuleModel = $moduleModel = $this->getModule(); 28 $blockModelList = $moduleModel->getBlocks(); 29 foreach($blockModelList as $blockLabel=>$blockModel) { 30 $fieldModelList = $blockModel->getFields(); 31 if (!empty ($fieldModelList)) { 32 $values[$blockLabel] = array(); 33 foreach($fieldModelList as $fieldName=>$fieldModel) { 34 if($fieldModel->isViewable()) { 35 if($moduleModel->getName()=="Documents" && $fieldName=="filename"){ 36 continue; 37 } 38 if (in_array($moduleModel->getName(), array('Calendar', 'Events')) && $fieldModel->getDisplayType() == 3) { 39 /* Restricting the following fields(Event module fields) for "Calendar" module 40 * time_start, time_end, eventstatus, activitytype, visibility, duration_hours, 41 * duration_minutes, reminder_time, recurringtype, notime 42 */ 43 continue; 44 } 45 if(!empty($recordId)) { 46 //Set the fieldModel with the valuetype for the client side. 47 $fieldValueType = $recordModel->getFieldFilterValueType($fieldName); 48 $fieldInfo = $fieldModel->getFieldInfo(); 49 $fieldInfo['workflow_valuetype'] = $fieldValueType; 50 $fieldModel->setFieldInfo($fieldInfo); 51 } 52 53 switch($fieldModel->getFieldDataType()) { 54 case 'date' : if (($moduleName === 'Events' && in_array($fieldName, array('date_start', 'due_date'))) || 55 ($moduleName === 'Calendar' && $fieldName === 'date_start')) { 56 $fieldName = $fieldName .' ($(general : (__VtigerMeta__) usertimezone))'; 57 } else { 58 $fieldName = $fieldName .' ($_DATE_FORMAT_)'; 59 } 60 break; 61 case 'datetime' : $fieldName = $fieldName .' ($(general : (__VtigerMeta__) usertimezone))'; break; 62 default : $fieldName; 63 } 64 65 // This will be used during editing task like email, sms etc 66 $fieldModel->set('workflow_columnname', $fieldName)->set('workflow_columnlabel', vtranslate($fieldModel->get('label'), $moduleModel->getName())); 67 // This is used to identify the field belongs to source module of workflow 68 $fieldModel->set('workflow_sourcemodule_field', true); 69 $values[$blockLabel][$fieldName] = clone $fieldModel; 70 } 71 } 72 } 73 } 74 75 if ($moduleModel->isCommentEnabled()) { 76 $commentFieldModelsList = Settings_Workflows_Field_Model::getCommentFieldsListForTasks($moduleModel); 77 78 $labelName = vtranslate($moduleModel->getSingularLabelKey(), $moduleModel->getName()). ' ' .vtranslate('LBL_COMMENTS', $moduleModel->getName()); 79 foreach ($commentFieldModelsList as $commentFieldName => $commentFieldModel) { 80 switch($commentFieldModel->getFieldDataType()) { 81 case 'date' : $commentFieldName = $commentFieldName .' ($_DATE_FORMAT_)'; break; 82 case 'datetime' : $commentFieldName = $commentFieldName .' ($(general : (__VtigerMeta__) usertimezone)_)'; break; 83 default : $commentFieldName; 84 } 85 $commentFieldModel->set('workflow_columnname', $commentFieldName) 86 ->set('workflow_columnlabel', vtranslate($commentFieldModel->get('label'), $moduleModel->getName())) 87 ->set('workflow_sourcemodule_field', true); 88 89 $values[$labelName][$commentFieldName] = $commentFieldModel; 90 } 91 } 92 93 //All the reference fields should also be sent 94 $fields = $moduleModel->getFieldsByType(array('reference', 'owner', 'multireference')); 95 foreach($fields as $parentFieldName => $field) { 96 $type = $field->getFieldDataType(); 97 $referenceModules = $field->getReferenceList(); 98 if($type == 'owner') $referenceModules = array('Users'); 99 foreach($referenceModules as $refModule) { 100 $moduleModel = Vtiger_Module_Model::getInstance($refModule); 101 $blockModelList = $moduleModel->getBlocks(); 102 foreach($blockModelList as $blockLabel=>$blockModel) { 103 $fieldModelList = $blockModel->getFields(); 104 if (!empty ($fieldModelList)) { 105 foreach($fieldModelList as $fieldName=>$fieldModel) { 106 if($fieldModel->isViewable()) { 107 $name = "($parentFieldName : ($refModule) $fieldName)"; 108 $label = vtranslate($field->get('label'), $baseModuleModel->getName()).' : ('.vtranslate($refModule, $refModule).') '.vtranslate($fieldModel->get('label'), $refModule); 109 110 switch($fieldModel->getFieldDataType()) { 111 case 'date' : if (($moduleName === 'Events' && in_array($fieldName, array('date_start', 'due_date'))) || 112 ($moduleName === 'Calendar' && $fieldName === 'date_start')) { 113 $workflowColumnName = $name .' ($(general : (__VtigerMeta__) usertimezone))'; 114 } else { 115 $workflowColumnName = $name .' ($_DATE_FORMAT_)'; 116 } 117 break; 118 case 'datetime' : $workflowColumnName = $name .' ($(general : (__VtigerMeta__) usertimezone))'; break; 119 default : $workflowColumnName = $name; 120 } 121 122 $fieldModel->set('workflow_columnname', $workflowColumnName)->set('workflow_columnlabel', $label); 123 if(!empty($recordId)) { 124 $fieldValueType = $recordModel->getFieldFilterValueType($name); 125 $fieldInfo = $fieldModel->getFieldInfo(); 126 $fieldInfo['workflow_valuetype'] = $fieldValueType; 127 $fieldModel->setFieldInfo($fieldInfo); 128 } 129 $values[$field->get('label')][$name] = clone $fieldModel; 130 } 131 } 132 } 133 } 134 135 $commentFieldModelsList = array(); 136 if ($moduleModel->isCommentEnabled()) { 137 $labelName = vtranslate($moduleModel->getSingularLabelKey(), $moduleModel->getName()). ' ' .vtranslate('LBL_COMMENTS', $moduleModel->getName()); 138 139 $commentFieldModelsList = Settings_Workflows_Field_Model::getCommentFieldsListForTasks($moduleModel); 140 foreach ($commentFieldModelsList as $commentFieldName => $commentFieldModel) { 141 $name = "($parentFieldName : ($refModule) $commentFieldName)"; 142 $label = vtranslate($field->get('label'), $baseModuleModel->getName()).' : ('. 143 vtranslate($refModule, $refModule).') '. 144 vtranslate($commentFieldModel->get('label'), $refModule); 145 146 $commentFieldModel->set('workflow_columnname', $name)->set('workflow_columnlabel', $label); 147 $values[$labelName][$name] = $commentFieldModel; 148 } 149 } 150 } 151 } 152 $this->structuredValues = $values; 153 return $values; 154 } 155 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |