$linkParams - parameters which will be used to calicaulate the params * @return - array of link models in the format as below * array('linktype'=>list of link models); */ public function getDetailViewLinks($linkParams) { $currentUserModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $linkModelList = parent::getDetailViewLinks($linkParams); $recordModel = $this->getRecord(); $invoiceModuleModel = Vtiger_Module_Model::getInstance('Invoice'); $quoteModuleModel = Vtiger_Module_Model::getInstance('Quotes'); if($currentUserModel->hasModuleActionPermission($invoiceModuleModel->getId(), 'EditView')) { $basicActionLink = array( 'linktype' => 'DETAILVIEW', 'linklabel' => vtranslate('LBL_CREATE').' '.vtranslate($invoiceModuleModel->getSingularLabelKey(), 'Invoice'), 'linkurl' => $recordModel->getCreateInvoiceUrl(), 'linkicon' => '' ); $linkModelList['DETAILVIEW'][] = Vtiger_Link_Model::getInstanceFromValues($basicActionLink); } if($currentUserModel->hasModuleActionPermission($quoteModuleModel->getId(), 'EditView')) { $basicActionLink = array( 'linktype' => 'DETAILVIEW', 'linklabel' => vtranslate('LBL_CREATE').' '.vtranslate($quoteModuleModel->getSingularLabelKey(), 'Quotes'), 'linkurl' => $recordModel->getCreateQuoteUrl(), 'linkicon' => '' ); $linkModelList['DETAILVIEW'][] = Vtiger_Link_Model::getInstanceFromValues($basicActionLink); } $CalendarActionLinks[] = array(); $CalendarModuleModel = Vtiger_Module_Model::getInstance('Calendar'); if($currentUserModel->hasModuleActionPermission($CalendarModuleModel->getId(), 'EditView')) { $CalendarActionLinks[] = array( 'linktype' => 'DETAILVIEW', 'linklabel' => 'LBL_ADD_EVENT', 'linkurl' => $recordModel->getCreateEventUrl(), 'linkicon' => '' ); $CalendarActionLinks[] = array( 'linktype' => 'DETAILVIEW', 'linklabel' => 'LBL_ADD_TASK', 'linkurl' => $recordModel->getCreateTaskUrl(), 'linkicon' => '' ); } foreach($CalendarActionLinks as $basicLink) { $linkModelList['DETAILVIEW'][] = Vtiger_Link_Model::getInstanceFromValues($basicLink); } return $linkModelList; } /** * Function to get the detail view widgets * @return - List of widgets , where each widget is an Vtiger_Link_Model */ public function getWidgets() { $userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $widgetLinks = parent::getWidgets(); $widgets = array(); $documentsInstance = Vtiger_Module_Model::getInstance('Documents'); if($userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'DetailView')) { $createPermission = $userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'EditView'); $widgets[] = array( 'linktype' => 'DETAILVIEWWIDGET', 'linklabel' => 'Documents', 'linkName' => $documentsInstance->getName(), 'linkurl' => 'module='.$this->getModuleName().'&view=Detail&record='.$this->getRecord()->getId(). '&relatedModule=Documents&mode=showRelatedRecords&page=1&limit=5', 'action' => ($createPermission == true) ? array('Add') : array(), 'actionURL' => $documentsInstance->getQuickCreateUrl() ); } $contactsInstance = Vtiger_Module_Model::getInstance('Contacts'); if($userPrivilegesModel->hasModuleActionPermission($contactsInstance->getId(), 'DetailView')) { $createPermission = $userPrivilegesModel->hasModuleActionPermission($contactsInstance->getId(), 'EditView'); $widgets[] = array( 'linktype' => 'DETAILVIEWWIDGET', 'linklabel' => 'LBL_RELATED_CONTACTS', 'linkName' => $contactsInstance->getName(), 'linkurl' => 'module='.$this->getModuleName().'&view=Detail&record='.$this->getRecord()->getId(). '&relatedModule=Contacts&mode=showRelatedRecords&page=1&limit=5', 'action' => ($createPermission == true) ? array('Add') : array(), 'actionURL' => $contactsInstance->getQuickCreateUrl() ); } $productsInstance = Vtiger_Module_Model::getInstance('Products'); if($userPrivilegesModel->hasModuleActionPermission($productsInstance->getId(), 'DetailView')) { $createPermission = $userPrivilegesModel->hasModuleActionPermission($productsInstance->getId(), 'EditView'); $widgets[] = array( 'linktype' => 'DETAILVIEWWIDGET', 'linklabel' => 'LBL_RELATED_PRODUCTS', 'linkName' => $productsInstance->getName(), 'linkurl' => 'module='.$this->getModuleName().'&view=Detail&record='.$this->getRecord()->getId(). '&relatedModule=Products&mode=showRelatedRecords&page=1&limit=5', 'action' => ($createPermission == true) ? array('Add') : array(), 'actionURL' => $productsInstance->getQuickCreateUrl() ); } foreach ($widgets as $widgetDetails) { $widgetLinks[] = Vtiger_Link_Model::getInstanceFromValues($widgetDetails); } return $widgetLinks; } }