Dokumente nur unter Einträgen anzeigen

Hey!

Nachdem der erste Stress bzgl. des Shops abgeklungen ist, konnte ich mich wieder einmal um ein Problem kümmern, welches relativ schnell zu lösen war und ich hier kurz beschreiben möchte.

Es ging darum, die Möglichkeit zu bieten, Dokumente so zu erstellen, dass Sie nur unter den jeweiligen Einträgen sichtbar waren, welchen Sie zugeordnet wurden.

Damit sollte die Übersicht über alle global wichtigen Dokumente doch erheblich verbessert werden.
Dazu kommt, dass viele Unterlagen wirklich nur in Zusammenhang mit einem Unternehmen Sinn ergeben.

Ich bin also losgegangen und wollte ein neues Feld im Layout Manager der Dokumente anlegen. … Ging nur nicht …

Was die Entwickler vom vtiger sich dabei gedacht haben, werden Sie wohl nicht verraten, aber alle notwendigen Tabellen waren vorhanden, sodass ich mir kurzerhand ein kleines Script gebastelt habe, welches das Feld über Umwege ins System einfügt:


<?php
/**

Attention: Don't call this script with Google Chrome !!!

**/

$Vtiger_Utils_Log = true;
include_once('vtlib/Vtiger/Menu.php');
include_once('vtlib/Vtiger/Module.php');

$module = Vtiger_Module::getInstance('Documents');
$block1 = Vtiger_Block::getInstance('LBL_NOTE_INFORMATION',$module);

$field = new Vtiger_Field();

$field->label = 'LBL_ONLY_RECORD_RELATED';
$field->name = 'only_record_related';
$field->table = 'vtiger_notes';
$field->column = 'only_record_related';
$field->columntype = 'VARCHAR(3)';
$field->presence = 2;
$field->uitype = 56;
$field->displaytype = 1;
$field->typeofdata = 'C~O';

/**
 Change this for default handling
 1 - Show all new files only in records
 0 - Show this file in Documents ListView
**/
$field->defaultvalue = 0;

$block1->addField($field);

Ihr könnt in diesem Script das Standardverhalten einstellen, welches euer System später haben soll (defaultvalue).

Dieses Script direkt ins Root-Verzeichnis eures vtiger-Systems, in welchem auch die index.php und vtigercron.php liegt, kopieren und im Browser ausführen.
Bitte beachtet den Hinweis, dass der Google Chrome Browser dieses Feld doppelt erstellt, da seine Caching-Routinen die Datei nochmals ausführen.

Weiterhin müsst Ihr für den gewünschten Effekt nur zwei Dateien bearbeiten:

/modules/Documents/ListView.php

Suchen:


$query = $queryGenerator->getQuery();

Komplette Zeile ersetzen mit:


$query = $queryGenerator->getQuery()." AND (only_record_related = 0 OR only_record_related IS NULL)";

/modules/Documents/language/de_de.lang.php

Suchen:

 ) ;

Zuvor einfügen:

'LBL_ONLY_RECORD_RELATED' => "Nur in Einträgen anzeigen",

Diesen Text könnt Ihr natürlich noch anpassen.

Ihr habt jetzt in euren Dokumenten ein neues Auswahlfeld, über welchen Ihr regeln könnt, ob ein Dokument global sichtbar sein soll.

Diese Erweiterung wird auch in der nächsten Version meiner vtiger WebDAV extension berücksichtig!

Aber Achtung!

Wenn Ihr den Haken setzt und das Dokument mit KEINEM Eintrag verbunden ist, könnt Ihr auf dieses Dokument nicht weiter zugreifen, da es nirgendwo angezeigt wird.

Für Fehler, welche mit dieser Extension passieren seid Ihr wie immer selbst verantwortlich!

 

Stefan

Schreibe einen Kommentar