Некоторые администраторы задаются вопросом - как убрать вкладку "История" из карточки контакта/контрагента/сделки и т.д. Часто в этой вкладке присутствует ненужная информация, которая хранит всю историю об объекте и её показывать всем пользователям не нужно. Поэтому, эту вкладку в целях безопасности целесообразно отключить или оставить только администратору.
Чтобы сделать это, нужно пройти следующие этапы:
1. Открываем файл modules/Vtiger/models/DetailView.php.
2. Находим функцию public function getDetailViewRelatedLinks() {
3. Добавляем в неё строчку global $current_user;
4. Находим блок
if($parentModuleModel->isTrackingEnabled()) {
$relatedLinks[] = array(
'linktype' => 'DETAILVIEWTAB',
'linklabel' => 'LBL_UPDATES',
'linkurl' => $recordModel->getDetailViewUrl().'&mode=showRecentActivities&page=1',
'linkicon' => ''
);
}
И меняем его на:
if($current_user->id == '2') {
$relatedLinks[] = array(
'linktype' => 'DETAILVIEWTAB',
'linklabel' => 'LBL_UPDATES',
'linkurl' => $recordModel->getDetailViewUrl().'&mode=showRecentActivities&page=1',
'linkicon' => ''
);
}
В итоге наша функция будет иметь следующий вид:
public function getDetailViewRelatedLinks() {
global $current_user;
$recordModel = $this->getRecord();
$moduleName = $recordModel->getModuleName();
$parentModuleModel = $this->getModule();
$relatedLinks = array();
if($parentModuleModel->isSummaryViewSupported()) {
$relatedLinks = array(array(
'linktype' => 'DETAILVIEWTAB',
'linklabel' => vtranslate('LBL_SUMMARY', $moduleName),
'linkKey' => 'LBL_RECORD_SUMMARY',
'linkurl' => $recordModel->getDetailViewUrl() . '&mode=showDetailViewByMode&requestMode=summary',
'linkicon' => ''
));
}
//link which shows the summary information(generally detail of record)
$relatedLinks[] = array(
'linktype' => 'DETAILVIEWTAB',
'linklabel' => vtranslate('LBL_DETAILS', $moduleName),
'linkKey' => 'LBL_RECORD_DETAILS',
'linkurl' => $recordModel->getDetailViewUrl().'&mode=showDetailViewByMode&requestMode=full',
'linkicon' => ''
);
if($current_user->id == '2') {
$relatedLinks[] = array(
'linktype' => 'DETAILVIEWTAB',
'linklabel' => 'LBL_UPDATES',
'linkurl' => $recordModel->getDetailViewUrl().'&mode=showRecentActivities&page=1',
'linkicon' => ''
);
}
$relationModels = $parentModuleModel->getRelations();
foreach($relationModels as $relation) {
//TODO : Way to get limited information than getting all the information
$link = array(
'linktype' => 'DETAILVIEWRELATED',
'linklabel' => $relation->get('label'),
'linkurl' => $relation->getListUrl($recordModel),
'linkicon' => '',
'relatedModuleName' => $relation->get('relatedModuleName'),
'linkid' => $relation->getId()
);
$relatedLinks[] = $link;
}
return $relatedLinks;
}