©Sergey Emelyanov 2025 | Alle Rechte vorbehalten
Einige Administratoren fragen sich, wie man die Registerkarte „Historie“ aus der Detailansicht – sei es eines Kontakts, eines Geschäftspartners, einer Verkaufschance etc. – entfernt. In dieser Registerkarte wird häufig unnötige Information – nämlich die gesamte Änderungsverlaufshistorie des jeweiligen Objektes – gespeichert, die nicht für alle Benutzer sichtbar sein sollte. Aus Sicherheits- und Übersichtlichkeitsgründen ist es daher sinnvoll, diese Registerkarte entweder komplett zu deaktivieren oder ausschließlich Administratoren zugänglich zu machen.
Im Folgenden zeige ich Ihnen, wie Sie diesen Eingriff vornehmen können:
modules/Vtiger/models/DetailView.php
public function getDetailViewRelatedLinks() {
global $current_user;
if($parentModuleModel->isTrackingEnabled()) {
$relatedLinks[] = array(
'linktype' => 'DETAILVIEWTAB',
'linklabel' => 'LBL_UPDATES',
'linkurl' => $recordModel->getDetailViewUrl().'&mode=showRecentActivities&page=1',
'linkicon' => ''
);
}
Um die Registerkarte „Historie“ nur dem Administrator (als Beispiel, Benutzer mit der ID „2“) anzuzeigen, ersetzen Sie diesen Block durch folgenden Code:
if($current_user->id == '2') {
$relatedLinks[] = array(
'linktype' => 'DETAILVIEWTAB',
'linklabel' => 'LBL_UPDATES',
'linkurl' => $recordModel->getDetailViewUrl().'&mode=showRecentActivities&page=1',
'linkicon' => ''
);
}
Damit wird die Registerkarte Now updates (Historie) ausschließlich angezeigt, wenn der aktuell angemeldete Benutzer die ID „2“ besitzt – typischerweise unser Administrator. Alle anderen Benutzer sehen diese Registerkarte nicht.
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, der die Detailinformation anzeigt
$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: Informationsmenge reduzieren
$link = array(
'linktype' => 'DETAILVIEWRELATED',
'linklabel' => $relation->get('label'),
'linkurl' => $relation->getListUrl($recordModel),
'linkicon' => '',
'relatedModuleName' => $relation->get('relatedModuleName'),
'linkid' => $relation->getId()
);
$relatedLinks[] = $link;
}
return $relatedLinks;
}
Mit dieser Änderung wird die Registerkarte „Historie“ in der Detailansicht eines Datensatzes in VtigerCRM nur noch dem Administrator (oder dem Benutzer mit der ID „2“) angezeigt. Dadurch wird verhindert, dass alle Benutzer die vollständige Objekthistorie einsehen – was aus Sicherheitsgründen sinnvoll ist. Sie können diesen Ansatz anpassen, wenn Sie mehreren Benutzer-IDs oder benutzerdefinierten Rollen Zugriff gewähren möchten.
Ich hoffe, diese Anleitung hilft Ihnen dabei, die gewünschte Anpassung in Ihrem VtigerCRM vorzunehmen. Viel Erfolg!
©Sergey Emelyanov 2025 | Alle Rechte vorbehalten