/** * Function to get activities * @param Vtiger_Request $request * @return <List of activity models> */ public function getActivities(Vtiger_Request $request) { $moduleName = 'Calendar'; $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); if ($currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) { $moduleName = $request->getModule(); $recordId = $request->get('record'); $pageNumber = $request->get('page'); if (empty($pageNumber)) { $pageNumber = 1; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $pagingModel->set('limit', 10); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); $moduleModel = $recordModel->getModule(); $relatedActivities = $moduleModel->getCalendarActivities('', $pagingModel, 'all', $recordId); $viewer = $this->getViewer($request); $viewer->assign('RECORD', $recordModel); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('ACTIVITIES', $relatedActivities); return $viewer->view('RelatedActivities.tpl', $moduleName, true); } }
public function preProcess(Vtiger_Request $request, $display=true) { if($this->checkPermission($request)) { $viewer = $this->getViewer($request); $currentUser = Users_Record_Model::getCurrentUserModel(); $selectedModule = $request->getModule(); $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); $companyLogo = $companyDetails->getLogo(); $currentDate = Vtiger_Date_UIType::getDisplayDateValue(date('Y-n-j')); $viewer->assign('CURRENTDATE', $currentDate); $viewer->assign('MODULE', $selectedModule); $viewer->assign('MODULE_NAME', $selectedModule); $viewer->assign('QUALIFIED_MODULE', $selectedModule); $viewer->assign('PARENT_MODULE', $request->get('parent')); $viewer->assign('MENUS', Vtiger_Menu_Model::getAll(true)); $viewer->assign('VIEW', $request->get('view')); $viewer->assign('COMPANY_LOGO',$companyLogo); $viewer->assign('USER_MODEL', $currentUser); $homeModuleModel = Vtiger_Module_Model::getInstance('Home'); $viewer->assign('HOME_MODULE_MODEL', $homeModuleModel); $viewer->assign('HEADER_LINKS',$this->getHeaderLinks()); $viewer->assign('ANNOUNCEMENT', $this->getAnnouncement()); $viewer->assign('SEARCHABLE_MODULES', Vtiger_Module_Model::getSearchableModules()); $viewer->assign('CHAT_ACTIVE', vtlib_isModuleActive('AJAXChat')); //Additional parameters $recordId = $request->get('record'); $moduleName = $request->getModule(); $detailViewModel = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); $recordModel = $detailViewModel->getRecord(); $detailViewLinkParams = array('MODULE'=>$moduleName,'RECORD'=>$recordId); $detailViewLinks = $detailViewModel->getDetailViewLinks($detailViewLinkParams); $viewer->assign('RECORD', $recordModel); $viewer->assign('MODULE_MODEL', $detailViewModel->getModule()); $viewer->assign('DETAILVIEW_LINKS', $detailViewLinks); $viewer->assign('IS_EDITABLE', $detailViewModel->getRecord()->isEditable($moduleName)); $viewer->assign('IS_DELETABLE', $detailViewModel->getRecord()->isDeletable($moduleName)); $linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view')); $linkModels = $detailViewModel->getSideBarLinks($linkParams); $viewer->assign('QUICK_LINKS', $linkModels); $viewer->assign('PAGETITLE', $this->getPageTitle($request)); $viewer->assign('FOOTER_SCRIPTS',$this->getFooterScripts($request)); $viewer->assign('STYLES',$this->getHeaderCss($request)); $viewer->assign('LANGUAGE_STRINGS', $this->getJSLanguageStrings($request)); $viewer->assign('CURRENT_VIEW', $request->get('view')); $viewer->assign('SKIN_PATH', Vtiger_Theme::getCurrentUserThemePath()); $viewer->assign('HTMLLANG', Vtiger_Language_Handler::getShortLanguageName()); $viewer->assign('LANGUAGE', $currentUser->get('language')); $viewer->assign('HEADER_SCRIPTS',$this->getHeaderScripts($request)); if($display) { $this->preProcessDisplay($request); } } }
public function preProcess(Vtiger_Request $request, $display = true) { if ($this->checkPermission($request)) { $currentUser = Users_Record_Model::getCurrentUserModel(); $recordId = $request->get('record'); $moduleName = $request->getModule(); $detailViewModel = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); $recordModel = $detailViewModel->getRecord(); $detailViewLinkParams = array('MODULE' => $moduleName, 'RECORD' => $recordId); $detailViewLinks = $detailViewModel->getDetailViewLinks($detailViewLinkParams); $viewer = $this->getViewer($request); $viewer->assign('RECORD', $recordModel); $viewer->assign('MODULE_MODEL', $detailViewModel->getModule()); $viewer->assign('DETAILVIEW_LINKS', $detailViewLinks); $viewer->assign('IS_EDITABLE', $detailViewModel->getRecord()->isEditable($moduleName)); $viewer->assign('IS_DELETABLE', $detailViewModel->getRecord()->isDeletable($moduleName)); $linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view')); $linkModels = $detailViewModel->getSideBarLinks($linkParams); $viewer->assign('QUICK_LINKS', $linkModels); $viewer->assign('PAGETITLE', $this->getPageTitle($request)); $viewer->assign('SCRIPTS', $this->getHeaderScripts($request)); $viewer->assign('STYLES', $this->getHeaderCss($request)); $viewer->assign('LANGUAGE_STRINGS', $this->getJSLanguageStrings($request)); $viewer->assign('SEARCHABLE_MODULES', Vtiger_Module_Model::getSearchableModules()); $menuModelsList = Vtiger_Menu_Model::getAll(true); $selectedModule = $request->getModule(); $menuStructure = Vtiger_MenuStructure_Model::getInstanceFromMenuList($menuModelsList, $selectedModule); // Order by pre-defined automation process for QuickCreate. uksort($menuModelsList, array('Vtiger_MenuStructure_Model', 'sortMenuItemsByProcess')); $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); $companyLogo = $companyDetails->getLogo(); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('MODULE', $selectedModule); $viewer->assign('PARENT_MODULE', $request->get('parent')); $viewer->assign('VIEW', $request->get('view')); $viewer->assign('MENUS', $menuModelsList); $viewer->assign('MENU_STRUCTURE', $menuStructure); $viewer->assign('MENU_SELECTED_MODULENAME', $selectedModule); $viewer->assign('MENU_TOPITEMS_LIMIT', $menuStructure->getLimit()); $viewer->assign('COMPANY_LOGO', $companyLogo); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $homeModuleModel = Vtiger_Module_Model::getInstance('Home'); $viewer->assign('HOME_MODULE_MODEL', $homeModuleModel); $viewer->assign('HEADER_LINKS', $this->getHeaderLinks()); $viewer->assign('ANNOUNCEMENT', $this->getAnnouncement()); $viewer->assign('CURRENT_VIEW', $request->get('view')); $viewer->assign('SKIN_PATH', Vtiger_Theme::getCurrentUserThemePath()); $viewer->assign('LANGUAGE', $currentUser->get('language')); if ($display) { $this->preProcessDisplay($request); } } }
public function getHelpbox(Vtiger_Request $request){ $viewer = $this->getViewer($request); $wikiId = $request->get('id'); $detailViewModel = Vtiger_DetailView_Model::getInstance($moduleName, $wikiId); $recordModel = $detailViewModel->getRecord(); $viewer->assign('MODULE_NAME', $request->getModule()); $viewer->assign('WIKI_ID', $wikiId); $viewer->assign('WIKI_RECORD', $recordModel); $viewer->view('Helpbox.tpl', $request->getModule()); }
function preProcess(Vtiger_Request $request, $display = true) { $recordId = $request->get('record'); $moduleName = $request->getModule(); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); // To show recording link only if callstatus is 'completed' if ($recordModel->get('callstatus') != 'completed') { $recordModel->set('recordingurl', ''); } return parent::preProcess($request, true); }
function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $id = $request->get('record'); $recordModel = Vtiger_DetailView_Model::getInstance($moduleName, $id)->getRecord(); $recordStrucure = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_DETAIL); $structuredValues = $recordStrucure->getStructure(); $viewer = $this->getViewer($request); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('RECORD', $recordModel); $viewer->assign('RECORD_STRUCTURE', $structuredValues); $viewer->assign('RESTRICTS_ITEM', ['PLL_DISCARDED', 'PLL_ACCEPTED']); $this->preProcess($request); $viewer->view('Modal.tpl', $moduleName); $this->postProcess($request); }
function preProcess(Vtiger_Request $request, $display = true) { $recordId = $request->get('record'); $moduleName = $request->getModule(); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); // To show recording link only if callstatus is 'completed' if ($recordModel->get('callstatus') != 'completed') { $recordModel->set('recordingurl', ''); } // SalesPlatform.ru begin if ($recordModel->get('callstatus') == 'completed') { $recordModel->set('recordingurl', '<audio src="index.php?module=PBXManager&action=ListenRecord&record=' . $recordId . '" controls> <a href="index.php?module=PBXManager&action=ListenRecord&record=' . $recordId . '" ><i class="icon-volume-up"></i></a> </audio>'); } // SalesPlatform.ru end return parent::preProcess($request, true); }
function process(Vtiger_Request $request) { $recordId = $request->get('record'); $moduleName = $request->getModule(); 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); $structuredValues = $recordStrucure->getStructure(); $moduleModel = $recordModel->getModule(); $viewer = $this->getViewer($request); $viewer->assign('VIEW', $request->get('view')); $viewer->assign('RECORD', $recordModel); $viewer->assign('RECORD_STRUCTURE', $structuredValues); $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks()); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('IS_AJAX_ENABLED', false); $viewer->view('SmartDetail.tpl', $moduleName); }
public function getCalendarSettings(Vtiger_Request $request) { $viewer = $this->getViewer($request); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $module = $request->getModule(); $detailViewModel = Vtiger_DetailView_Model::getInstance('Users', $currentUserModel->id); $userRecordStructure = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($detailViewModel->getRecord(), Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT); $recordStructure = $userRecordStructure->getStructure(); $allUsers = Users_Record_Model::getAll(true); $sharedUsers = Calendar_Module_Model::getCaledarSharedUsers($currentUserModel->id); $sharedType = Calendar_Module_Model::getSharedType($currentUserModel->id); $dayStartPicklistValues = Users_Record_Model::getDayStartsPicklistValues($recordStructure); $viewer->assign('CURRENTUSER_MODEL', $currentUserModel); $viewer->assign('SHAREDUSERS', $sharedUsers); $viewer->assign("DAY_STARTS", Zend_Json::encode($dayStartPicklistValues)); $viewer->assign('ALL_USERS', $allUsers); $viewer->assign('RECORD_STRUCTURE', $recordStructure); $viewer->assign('MODULE', $module); $viewer->assign('RECORD', $currentUserModel->id); $viewer->assign('SHAREDTYPE', $sharedType); $viewer->view('CalendarSettings.tpl', $request->getModule()); }
function process(Vtiger_Request $request) { $this->recordId = $request->get('relatedRecord'); $this->moduleName = $request->get('relatedModule'); $this->currentUserModel = Users_Record_Model::getCurrentUserModel(); $this->moduleModel = Vtiger_Module_Model::getInstance($this->moduleName); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($this->moduleName, $this->recordId); } $parentRecordModel = Vtiger_Record_Model::getInstanceById($this->recordId, $this->moduleName); $detailView = array(); $detailView['detailViewLinks'] = $this->getDetailViewLinks($request); $detailView['nameFields'] = $this->moduleModel->getNameFields(); $detailView['columnFields'] = $parentRecordModel->getDisplayableValues(); $fields = $this->moduleModel->getFields(); $fieldLabelList = array(); foreach ($fields as $field) { $fieldLabelList[$field->getName()] = vtranslate($field->get('label'), $this->moduleName); } $detailView['fieldLabels'] = $fieldLabelList; $response = new Vtiger_Response(); $response->setResult($detailView); $response->emit(); }
function showRelatedProductsServices(Vtiger_Request $request) { $recordId = $request->get('record'); $moduleName = $request->getModule(); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); $detailViewLinkParams = array('MODULE' => $moduleName, 'RECORD' => $recordId); $detailViewLinks = $this->record->getDetailViewLinks($detailViewLinkParams); $viewer = $this->getViewer($request); $viewer->assign('RECORDID', $recordId); $viewer->assign('RECORD', $recordModel); //$viewer->assign('MODULE_SUMMARY', $this->showModuleSummaryView($request)); $viewer->assign('DETAILVIEW_LINKS', $detailViewLinks); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('IS_AJAX_ENABLED', $this->isAjaxEnabled($recordModel)); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('LIMIT', 5); $viewer->assign('PANDS', 'yes'); $recordStrucure = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_DETAIL); $structuredValues = $recordStrucure->getStructure(); $moduleModel = $recordModel->getModule(); $viewer->assign('RECORD_STRUCTURE', $structuredValues); $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks()); echo $viewer->view('DetailViewProductsServicesContents.tpl', $moduleName, true); }
function emailEdit($request) { $viewer = $this->getViewer($request); $this->emailActionsData($request); $recordId = $request->get('record'); $moduleName = $request->getModule(); $viewer = $this->getViewer($request); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); $TO = Zend_Json::decode(html_entity_decode($recordModel->get('saved_toid'))); $CC = Zend_Json::decode(html_entity_decode($recordModel->get('ccmail'))); $BCC = Zend_Json::decode(html_entity_decode($recordModel->get('bccmail'))); $parentIds = explode('|', $recordModel->get('parent_id')); $toMailInfo = $toMailNamesList = array(); foreach ($parentIds as $index => $parentFieldId) { if (empty($parentFieldId)) { continue; } $parentIdComponents = explode('@', $parentFieldId); $parentId = $parentIdComponents[0]; if ($parentIdComponents[1] === '-1') { $parentRecordModel = Users_Record_Model::getInstanceById($parentId, 'Users'); } else { $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId); } $emailFields = array_keys($parentRecordModel->getModule()->getFieldsByType('email')); foreach ($emailFields as $emailField) { $emailValue = $parentRecordModel->get($emailField); if (in_array($emailValue, $TO)) { //expecting parent ids and to will be same order $toMailInfo[$parentId][] = $emailValue; //SalesPlatform.ru begin $toMailNamesList[$parentId][] = array('label' => html_entity_decode($parentRecordModel->getName(), ENT_COMPAT | ENT_HTML401, 'UTF-8'), 'value' => $emailValue); //$toMailNamesList[$parentId][] = array('label' => $parentRecordModel->getName(), 'value' => $emailValue); //SalesPlatform.ru end } } } $viewer->assign('TO', $TO); $viewer->assign('TOMAIL_INFO', $toMailInfo); $viewer->assign('TOMAIL_NAMES_LIST', $toMailNamesList); $viewer->assign('CC', implode(',', $CC)); $viewer->assign('BCC', implode(',', $BCC)); $viewer->assign('RECORDID', $request->get('record')); $viewer->assign('RELATED_LOAD', true); $viewer->assign('EMAIL_MODE', 'edit'); echo $viewer->view('ComposeEmailForm.tpl', $moduleName, true); }
/** * Function shows the entire detail for the record * @param Vtiger_Request $request * @return <type> */ function showModuleDetailView(Vtiger_Request $request) { $recordId = $request->get('record'); $moduleName = $request->getModule(); if (!empty($recordId)) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId); $activityType = $recordModel->getType(); if ($activityType == 'Events') { $moduleName = 'Events'; } } $detailViewModel = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); $recordModel = $detailViewModel->getRecord(); $recordStrucure = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_DETAIL); $structuredValues = $recordStrucure->getStructure(); $moduleModel = $recordModel->getModule(); if ($moduleName == 'Events') { $relatedContacts = $recordModel->getRelatedContactInfo(); foreach ($relatedContacts as $index => $contactInfo) { $contactRecordModel = Vtiger_Record_Model::getCleanInstance('Contacts'); $contactRecordModel->setId($contactInfo['id']); $contactInfo['_model'] = $contactRecordModel; $relatedContacts[$index] = $contactInfo; } } else { $relatedContacts = array(); } $viewer = $this->getViewer($request); $viewer->assign('RECORD', $recordModel); $viewer->assign('RECORD_STRUCTURE', $structuredValues); $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks()); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStrucure); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('RELATED_CONTACTS', $relatedContacts); $viewer->assign('IS_AJAX_ENABLED', $this->isAjaxEnabled($recordModel)); $viewer->assign('RECURRING_INFORMATION', $recordModel->getRecurringDetails()); if ($moduleName == 'Events') { $currentUser = Users_Record_Model::getCurrentUserModel(); $accessibleUsers = $currentUser->getAccessibleUsers(); $viewer->assign('ACCESSIBLE_USERS', $accessibleUsers); $viewer->assign('INVITIES_SELECTED', $recordModel->getInvities()); } return $viewer->view('DetailViewFullContents.tpl', $moduleName, true); }
public function postProcess(Vtiger_Request $request) { $recordId = $request->get('record'); $moduleName = $request->getModule(); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $detailViewLinkParams = array('MODULE' => $moduleName, 'RECORD' => $recordId); $detailViewLinks = $this->record->getDetailViewLinks($detailViewLinkParams); $selectedTabLabel = $request->get('tab_label'); if (empty($selectedTabLabel) && !empty($detailViewLinks['DETAILVIEWTAB']) && !empty($detailViewLinks['DETAILVIEWTAB'][0])) { $selectedTabLabel = $detailViewLinks['DETAILVIEWTAB'][0]->getLabel(); } $viewer = $this->getViewer($request); $viewer->assign('SELECTED_TAB_LABEL', $selectedTabLabel); $viewer->assign('MODULE_MODEL', $this->record->getModule()); $viewer->assign('DETAILVIEW_LINKS', $detailViewLinks); parent::postProcess($request); }
function emailEdit($request) { $viewer = $this->getViewer($request); $this->emailActionsData($request); $recordId = $request->get('record'); $moduleName = $request->getModule(); $viewer = $this->getViewer($request); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); $TO = Zend_Json::decode(html_entity_decode($recordModel->get('saved_toid'))); $CC = Zend_Json::decode(html_entity_decode($recordModel->get('ccmail'))); $BCC = Zend_Json::decode(html_entity_decode($recordModel->get('bccmail'))); $parentIds = explode('|', $recordModel->get('parent_id')); $toMailInfo = array(); foreach ($parentIds as $index => $parentFieldId) { if (empty($parentFieldId)) { continue; } $parentIdComponents = explode('@', $parentFieldId); $parentId = $parentIdComponents[0]; //expecting parent ids and to will be same order $toMailInfo[$parentId][] = $TO[$index]; } $viewer->assign('TO', $TO); $viewer->assign('TOMAIL_INFO', $toMailInfo); $viewer->assign('CC', implode(',', $CC)); $viewer->assign('BCC', implode(',', $BCC)); $viewer->assign('RECORDID', $request->get('record')); $viewer->assign('RELATED_LOAD', true); $viewer->assign('EMAIL_MODE', 'edit'); echo $viewer->view('ComposeEmailForm.tpl', $moduleName, true); }
/** * Function shows basic detail for the record * @param <type> $request */ function showModuleBasicView($request) { global $log; $log->debug("Entering Vtiger/views/Detail.php::showModuleBasicView"); $recordId = $request->get('record'); $moduleName = $request->getModule(); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); $detailViewLinkParams = array('MODULE' => $moduleName, 'RECORD' => $recordId); $detailViewLinks = $this->record->getDetailViewLinks($detailViewLinkParams); // begin tao - (2016/01/22) $recordModel->set("invoice", CRMEntity::getInstance("Accounts")->get_billing_amount($recordId)); $recordModel->set("payment", CRMEntity::getInstance("Accounts")->get_payment_amount($recordId)); // end tao - (2016/01/22) $viewer = $this->getViewer($request); $viewer->assign('RECORD', $recordModel); $viewer->assign('MODULE_SUMMARY', $this->showModuleSummaryView($request)); // $viewer->assign('DETAILVIEW_LINKS', $detailViewLinks); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('IS_AJAX_ENABLED', $this->isAjaxEnabled($recordModel)); $viewer->assign('MODULE_NAME', $moduleName); $recordStrucure = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_DETAIL); $structuredValues = $recordStrucure->getStructure(); $moduleModel = $recordModel->getModule(); $viewer->assign('RECORD_STRUCTURE', $structuredValues); $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks()); echo $viewer->view('DetailViewSummaryContents.tpl', $moduleName, true); }