public function showFieldLayout(Vtiger_Request $request) { $sourceModule = $request->get('sourceModule'); $supportedModulesList = Settings_LayoutEditor_Module_Model::getSupportedModules(); if (empty($sourceModule)) { //To get the first element $sourceModule = reset($supportedModulesList); } $moduleModel = Settings_LayoutEditor_Module_Model::getInstanceByName($sourceModule); $fieldModels = $moduleModel->getFields(); $blockModels = $moduleModel->getBlocks(); $blockIdFieldMap = array(); $inactiveFields = array(); foreach ($fieldModels as $fieldModel) { $blockIdFieldMap[$fieldModel->getBlockId()][$fieldModel->getName()] = $fieldModel; if (!$fieldModel->isActiveField()) { $inactiveFields[$fieldModel->getBlockId()][$fieldModel->getId()] = vtranslate($fieldModel->get('label'), $sourceModule); } } foreach ($blockModels as $blockLabel => $blockModel) { $fieldModelList = $blockIdFieldMap[$blockModel->get('id')]; $blockModel->setFields($fieldModelList); } $qualifiedModule = $request->getModule(false); $viewer = $this->getViewer($request); $viewer->assign('SELECTED_MODULE_NAME', $sourceModule); $viewer->assign('SUPPORTED_MODULES', $supportedModulesList); $viewer->assign('SELECTED_MODULE_MODEL', $moduleModel); $viewer->assign('BLOCKS', $blockModels); $viewer->assign('ADD_SUPPORTED_FIELD_TYPES', $moduleModel->getAddSupportedFieldTypes()); $viewer->assign('DISPLAY_TYPE_LIST', Vtiger_Field_Model::showDisplayTypeList()); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('QUALIFIED_MODULE', $qualifiedModule); $viewer->assign('IN_ACTIVE_FIELDS', $inactiveFields); $viewer->assign('IS_INVENTORY', $moduleModel->isInventory()); $viewer->assign('INVENTORY_MODAL', Vtiger_InventoryField_Model::getInstance($sourceModule)); $viewer->view('Index.tpl', $qualifiedModule); }