- values in structure array('block'=>array(fieldinfo)); */ public function getStructure() { $currentUsersModel = Users_Record_Model::getCurrentUserModel(); if(!empty($this->structuredValues)) { return $this->structuredValues; } $values = array(); $recordModel = $this->getRecord(); $recordExists = !empty($recordModel); $moduleModel = $this->getModule(); $blockModelList = $moduleModel->getBlocks(); foreach($blockModelList as $blockLabel=>$blockModel) { $fieldModelList = $blockModel->getFields(); if (!empty ($fieldModelList)) { $values[$blockLabel] = array(); foreach($fieldModelList as $fieldName=>$fieldModel) { if($fieldModel->isViewableInDetailView()) { if($recordExists) { $value = $recordModel->get($fieldName); if(!$currentUsersModel->isAdminUser() && ($fieldModel->getFieldDataType() == 'picklist' || $fieldModel->getFieldDataType() == 'multipicklist')) { $value = decode_html($value); $this->setupAccessiblePicklistValueList($fieldModel); } $fieldModel->set('fieldvalue', $value); } $values[$blockLabel][$fieldName] = $fieldModel; } } } } $this->structuredValues = $values; return $values; } public function setupAccessiblePicklistValueList($fieldModel) { $db = PearDatabase::getInstance(); $currentUsersModel = Users_Record_Model::getCurrentUserModel(); $roleId = $currentUsersModel->getRole(); $name = $fieldModel->getName(); $isRoleBased = vtws_isRoleBasedPicklist($name); $this->picklistRoleMap[$name] = $isRoleBased; if ($this->picklistRoleMap[$name]) { $this->picklistValueMap[$name] = $fieldModel->getPicklistValues(); } } }