26.09.2014 UPDATE - VtigerCRM 6.1 Kompatibilität geprüft
INSERT INTO `vtiger_date_format` (`date_formatid`, `date_format`, `sortorderid`, `presence`) VALUES (4, 'dd.mm.yyyy', 0, 1);
Mit dem Wert in der 3. Spalte könnt Ihr die Sortierung der Datumsformate anpassen. Da ich möchte, dass er direkt an oberster Stelle steht, habe ich eine 0 eingesetzt.
An die gut erkennbare if-Anweisung folgendes anhängen:
elseif ($current_user->date_format == 'dd.mm.yyyy') { $dt_popup_fmt = "%d.%m.%Y"; }
Innerhalb der Funktion finden:
if ($dat_fmt == '') { $dat_fmt = 'dd-mm-yyyy'; }
Den Abschnitt folgendermaßen anpassen:
if ($dat_fmt == '') { $dat_fmt = 'dd.mm.yyyy'; }
folgendes an passender Stelle einfügen: (If Abfragen sind gut erkennbar)
elseif ($format == 'dd.mm.yyyy') { if(strpos($date, "-") !== false) { list($d, $m, $y) = explode('-', $date); } else { list($d, $m, $y) = explode('.', $date); } }
An dieser Stelle wird leider ab und zu ein Format dd-mm-yyyy und die Einstellung des Users dd.mm.yyyy übergeben. Deshalb die zusätzlichen Zeilen, welche das nochmals prüfen.
folgendes an passender Stelle einfügen: (If Abfragen sind gut erkennbar)
elseif ($format == 'dd.mm.yyyy') { $date[0] = $d . '.' . $m . '.' . $y; }
An dieser Stelle wird das Standard-Format des Vtigers auf dd.mm.yyyy gesetzt. Diese Einstellung ist besonders für die Erweiterung PDFMaker relevant, da diese für Datumsausgaben in PDF's genutzt wird, welche aus einem Workflow genutzt werden.
Suchen:
if(empty($format)) { $format = 'dd-mm-yyyy'; }
ersetzen:
if(empty($format)) { $format = 'dd.mm.yyyy'; }
Suchen:
if(empty($format)) { $format = 'dd-mm-yyyy'; }
ersetzen:
if(empty($format)) { $format = 'dd.mm.yyyy'; }
Um Line 304 steht die Zuweisung
'date_format_dom' => Array('dd-mm-yyyy'=>'dd-mm-yyyy', 'mm-dd-yyyy'=>'mm-dd-yyyy', 'yyyy-mm-dd'=>'yyyy-mm-dd' ),
Daraus folgendes machen:
'date_format_dom' => Array('dd-mm-yyyy'=>'dd-mm-yyyy', 'dd.mm.yyyy'=>'dd.mm.yyyy', 'mm-dd-yyyy'=>'mm-dd-yyyy', 'yyyy-mm-dd'=>'yyyy-mm-dd' ),
Diesmal passend in die switch-Anweisung folgendes einfügen:
case 'dd.mm.yyyy': $format_string = 'd.m.Y H:i'; break;
Diese Anpassung ist nur dann notwendig, wenn Ihr auch die Ausgaben der Form „Wed, Dec 18, 2013 at 15:50“ anpassen möchtet, sodass am Ende „Wed, 18. Dec 2013 at 15:50 Uhr“ erscheint.
Diese Ausgabe richtet sich mit dieser Anpassung besser an der Spracheinstellung des vtigerCRM aus. Die Wochentage bzw. Monatsnamen werden sicherlich noch übersetzt, genau wie das kleine „at“.
Search:
$formatedDate = vtranslate('LBL_'.date('D', $date)). ', ' .vtranslate('LBL_'.date('M', $date)). ' ' .date('d', $date). ', ' .date('Y', $date); //Adding time details $formatedDate .= ' ' .vtranslate('LBL_AT'). ' ' .$displayTime;
Replace with:
if($currentUser->get("language") == "de_de") { $formatedDate = vtranslate('LBL_'.date('D', $date)). ', ' .date('d', $date). '. ' .vtranslate('LBL_'.date('M', $date)). ' ' .date('Y', $date); //Adding time details $formatedDate .= ' um ' .$displayTime. ' Uhr'; } else { $formatedDate = vtranslate('LBL_'.date('D', $date)). ', ' .vtranslate('LBL_'.date('M', $date)). ' ' .date('d', $date). ', ' .date('Y', $date); //Adding time details $formatedDate .= ' ' .vtranslate('LBL_AT'). ' ' .$displayTime; }
Auch hier ist die if-Anweisung wieder gut zu erkennen, welche durch folgendes erweitert werden muss:
else if (dateFormat == 'dd.mm.yyyy') { return 'd.m.Y'; }
Search:
var splitDateFormat = dateFormat.split('-');
Replace with:
var dotMode = false; if(dateFormat.indexOf(".") != -1 && dateFormat.indexOf("-") == -1) { dotMode = true; } var splitDateFormat = dateFormat.split(dotMode?'.':'-');
Search:
var joinedDateFormat = splitDateFormat.join('-');
Replace with:
var joinedDateFormat = splitDateFormat.join(dotMode?'.':'-');
Wieder an das Ende der if-Bedingung einfügen:
else if(userDateFormat == 'dd.mm.yyyy') { return 'dd.MM.yyyy'; }
Search:
var splittedDate = dateComponent.split("-"); var splittedDateFormat = dateFormat.split("-");
Replace with:
var dotMode = false; if(dateComponent.indexOf(".") != -1 && dateComponent.indexOf("-") == -1) { dotMode = true; } var splittedDate = dateComponent.split(dotMode?".":"-"); var splittedDateFormat = dateFormat.split(dotMode?".":"-");