vtiger Standard Sortierung der Listen

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

Dieser Beitrag hat 4 Kommentare

  1. Sören Hüttemann

    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

  2. Dougi

    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

  3. Dougi

    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

Schreibe einen Kommentar