Gleichzeitig Suchen und Sortieren im vtigerCRM 5.4.0

  • Beitrags-Autor:
  • Beitrags-Kategorie:EDV / vTiger
  • Beitrags-Kommentare:0 Kommentare

Hallo,

Heute gibt es einen kleinen Fix für ein Problem, welches ich diese Woche lösen musste. Dabei war es für mich relativ unerklärlich, weshalb dieses Problem bisher niemandem aufgefallen ist.

Sobald man die erweiterte Suche innerhalb eines Modules nutze, wird dadurch die Sortier-Funktion „zerstört“, sodass man die Ergebnislisten nur in der Standardsortierung betrachten kann.

Meine Lösung deckt auch nur 95% der Module ab.
In den Dokumenten, Kalender, eMails dürfte er keine Auswirkungen haben, bzw. nichts kaputt machen, was nicht schon kaputt ist.

Um diesen Bug zu beheben sind folgende Änderungen an Dateien notwendig:

Datei: include/QueryGenerator/Querygenerator.php

Folgende Zeilen suchen:

$json = new Zend_Json();
$advft_criteria = $_REQUEST['advft_criteria'];
 if(!empty($advft_criteria)) $advft_criteria = $json->decode($advft_criteria);
 $advft_criteria_groups = $_REQUEST['advft_criteria_groups'];
 if(!empty($advft_criteria_groups)) $advft_criteria_groups = $json->decode($advft_criteria_groups);

Durch folgendes ersetzen:


/* changed by swarnat - Sort with advanced search START */
 $json = new Zend_Json();
 if(!empty($_REQUEST['advft_criteria'])) {
 if(substr($_REQUEST['advft_criteria'], 0, 1) == "[") {
 $advft_criteria = $_REQUEST['advft_criteria'];
 } else {
 $advft_criteria = base64_decode($_REQUEST['advft_criteria']);
 $_REQUEST['advft_criteria'] = $advft_criteria;
 }
 }
 if(!empty($advft_criteria)) $advft_criteria = $json->decode($advft_criteria);

if(!empty($_REQUEST['advft_criteria_groups'])) {
 if(substr($_REQUEST['advft_criteria_groups'], 0, 1) == "[") {
 $advft_criteria_groups = $_REQUEST['advft_criteria_groups'];
 } else {
 $advft_criteria_groups = base64_decode($_REQUEST['advft_criteria_groups']);
 $_REQUEST['advft_criteria_groups'] = $advft_criteria_groups;
 }
 }
 if(!empty($advft_criteria_groups)) $advft_criteria_groups = $json->decode($advft_criteria_groups);
 /* changed by swarnat - Sort with advanced search END */

Datei: include/utils/SearchUtils.php

Suchen:

$urlString .= '&advft_criteria='.$advft_criteria.'&advft_criteria_groups='.$advft_criteria_groups.'&searchtype=advance';

Ersetzen mit:


/* changed by swarnat - Sort with advanced search START */
 $urlString .= '&advft_criteria='.base64_encode($advft_criteria).'&advft_criteria_groups='.base64_encode($advft_criteria_groups).'&searchtype=advance';
 /* changed by swarnat - Sort with advanced search END */

Stefan

Schreibe einen Kommentar