Dies ist eine alte Version des Dokuments!
Diese Seite wurde noch nicht vollständig übersetzt. Bitte helfen Sie bei der Übersetzung.
(diesen Absatz entfernen, wenn die Übersetzung abgeschlossen wurde)
deutsches Datumsformat
vtigerCRM 6.0
06.03.2014 UPDATE - Small missing line modification in last block
1. neuer Eintrag in die 'vtiger_date_format' Tabelle mit folgender Query:
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.
2. /vtlib/Vtiger/Functions.php
Function: currentUserJSDateFormat($localformat)
An die gut erkennbare if-Anweisung folgendes anhängen:
elseif ($current_user->date_format == 'dd.mm.yyyy') { $dt_popup_fmt = "%d.%m.%Y"; }
Function: currentUserDisplayDate($value)
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'; }
3. /include/fields/DateTimeField.php
Funktion : __convertToDBFormat(...) [Line ~95]
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.
Funktion: __convertToUserFormat((...) [Line ~157]
folgendes an passender Stelle einfügen: (If Abfragen sind gut erkennbar)
elseif ($format == 'dd.mm.yyyy') { $date[0] = $d . '.' . $m . '.' . $y; }
Funktion: convertToUserFormat(...) [Line ~139]
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'; }
Funktion: convertToDBFormat(...) [Line ~139]
Suchen:
if(empty($format)) { $format = 'dd-mm-yyyy'; }
ersetzen:
if(empty($format)) { $format = 'dd.mm.yyyy'; }
4. /include/ComboStrings.php
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' ),
5. /modules/Calendar/RepeatEvents.php
Function: formattime
Diesmal passend in die switch-Anweisung folgendes einfügen:
case 'dd.mm.yyyy': $format_string = 'd.m.Y H:i'; break;
6. /modules/Vtiger/helpers/Util.php
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“.
Function: formatDateTimeIntoDayString($dateTime) [~213]
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; }
7. /resources/app.js
Function: convertToDatePickerFormat(dateFormat)
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'; }
Function: convertTojQueryDatePickerFormat
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?'.':'-');
8. /layouts/vlayout/modules/Vtiger/resources/dashboards/Widget.js
Funktion convertToDateRangePicketFormat
Wieder an das Ende der if-Bedingung einfügen:
else if(userDateFormat == 'dd.mm.yyyy') { return 'dd.MM.yyyy'; }
9. /resources/helper.js
Function: getDateInstance : function(dateTime,dateFormat) [~Zeile 53]
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?".":"-");