Willkommen zu einem weiterem Teil meiner Tipps rund um das CRM System vTiger.
Diesmal möchte ich die kleine Sache beschreiben, wie es möglich ist, dass die Sortierung der Listen von jedem Benutzer selbstständig per Filtereinstellungen gesetzt werden kann. Diese Funktionalität fehlt leider im System und ist doch relativ wichtig, da verschiedene Mitarbeiter gerne verschiedene Prioritäten setzen möchten.
Als schnelle aber gute Lösung habe ich es so umgesetzt, dass die Liste grundsätzlich nach der ersten Spalte des Filters sortiert ist. So kann jeder Mitarbeiter die Listen leicht & ohne Probleme seinen Bedürfnissen anpassen.
Diese Beschreibung lässt sich grundsätzlich für jedes Modul mit einer ListView.php umsetzen, sodass diese Anleitung als universell betrachtet werden kann. Dazu einzig an der gekennzeichneten Stelle den Modulnamen in Großbuchstaben einsetzen.
Also los gehts:
/modules/<modulname>/ListView.php
Folgende Stelle suchen:
[php]
if(ListViewSession::hasViewChanged($currentModule,$viewid)) {
[/php]
Hier folgende Zeilen einfügen:
[php]
/** CHANGE BY SWARNAT 18.04.2011 START */
$viewChange = true;
/** CHANGE BY SWARNAT 18.04.2011 ENDE */
[/php]
An der zweiten Zeile in dieser IF-Bedingung sieht man den Aufbau des Namen der SESSION-Variable, welchen wir gleich einsetzen müssen.
z.B. bei Potentialen:
[php]
$_SESSION[‚POTENTIALS_ORDER_BY‘] = “;
[/php]
Daraufhin folgende Zeile suchen:
[php]
if($order_by == ’smownerid‘)
[/php]
In den ELSE-Pfad dieser Bedingung gleich zu Beginn folgendes einfügen: (Hier die Benennung der Variable beachten!)
[php]
/** CHANGE BY SWARNAT 18.04.2011 START */
if(empty($_REQUEST["order_by"]) && (empty($_REQUEST["start"]) ||
($_REQUEST["start"] == "1" && $viewChange == true)))
{
$fields = $queryGenerator->getFields();
$order_by = $fields[0];
$sorder = "DESC";
$_SESSION[‚<MODULNAME>_ORDER_BY‘] = $order_by;
$_SESSION[‚<MODULNAME>_ORDER‘] = $sorder;
}
/** CHANGE BY SWARNAT 18.04.2011 ENDE */
[/php]
Das wars auch schon.
Nachdem man diese Schritte für alle Module wiederholt hat, ist vTiger wieder um eine Funktion reicher!
Bis zum nächsten Artikel!
Stefan
Ist es auch möglich damit die Sortierung auf der Homepage zu beeinflussen?
Ich versuche seit geraumer Zeit herauszufinden, wie ich bei selbst eingefügten Modulen (Kalender) die Einträge Zeitlich sortiert anzeigen lassen kann.
Bin für jeden Tip dankbar,
Sören
Hallo Stefan,
ich habe nachden Änderung folgendes Fehlverhalten festgestellt:
Eine gefilterte Listenansicht wird für eine Massenänderung nicht berücksichtigt. Bzw. die Massenänderung auf alle Einträge im System angewendet.
Gruß Dougi
Hy Dougi,
Sogern ich das durch meine Modifikation verursacht hätte und somit grundsätzlich beheben könnte, so ungern muss ich sagen, das dieser gravierende Fehler im VtigerCRM direkt steckt.
Patch von Joe Bordes findest du hier:
http://vtiger-crm.2324883.n4.nabble.com/error-in-select-all-and-mass-edit-td3722.html
Ich hoffe, du hattest ein Backup von den überschriebenen Daten.
Stefan
Hallo Stefan,
danke für das Feedback.
Ja das mit dem Bug habe ich in der Zwischenzeit auch rausgefunden und entsprechend korrigiert.
Selbstverständlich ziehe ich jede Nacht zwei Backups.
Viele Grüße,
Dougi
PS: Danke für den Link