Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:modifications:german-dateformat [2014/01/02 17:43]
swarnat
en:modifications:german-dateformat [2016/11/21 14:49] (current)
swarnat
Line 1: Line 1:
 ====== deutsches Datumsformat ====== ====== deutsches Datumsformat ======
  
-Hallo,+===== vtigerCRM 6.0 =====
  
-Die erste Version meiner ​6.0 Anleitung hat leider mit dem Release Candidate jegliche Funktion eingestellt,​ weshalb ich hier eine erneute Version anbieten möchte, mit welcher man Version ​6.0 mit dem deutschem Datum betreiben kann.+**06.03.2014 UPDATE ** - Small missing line modification in last block 
 +**19.02.2016 UPDATE ** - Tested until VtigerCRM ​6.4.0 
 +**21.11.2016 UPDATE ** - Tested until VtigerCRM ​6.4.0
  
-Diese Anleitung ist nur für die neue Version 6.0 RC geeignetEine identische Anleitung für 5.3/5.4 findet Ihr hier: vTiger 5.3 / 5.4 auf deutsches Datumsformat dd.mm.yyyy umstellen+**After you have done this modifications,​ you need to clear your Browser cache!**
  
-Durch die komplett überarbeitete und deutlich komplexere Oberfläche wird dafür allerdings etwas mehr Aufwand notwendig als bisher. +==== 1. neuer Eintrag in die '​vtiger_date_format'​ Tabelle mit folgender Query: ​====
- +
-Los gehts: +
-===== vtigerCRM 6.0 RC ===== +
- +
-=== 1. neuer Eintrag in die '​vtiger_date_format'​ Tabelle mit folgender Query: ===+
  
 <code sql> <code sql>
Line 23: Line 20:
 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. 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 ===+==== 2. /​vtlib/​Vtiger/​Functions.php ​====
  
-File: /​vtlib/​Vtiger/​Functions.php +=== Function: currentUserJSDateFormat($localformat) ​===
-Function: currentUserJSDateFormat($localformat)+
 An die gut erkennbare if-Anweisung folgendes anhängen: An die gut erkennbare if-Anweisung folgendes anhängen:
  
Line 35: Line 31:
 </​code>​ </​code>​
  
-Function: currentUserDisplayDate($value)+=== Function: currentUserDisplayDate($value) ​===
  
 Innerhalb der Funktion finden: Innerhalb der Funktion finden:
Line 52: Line 48:
 </​code>​ </​code>​
  
-=== 3. /​include/​fields/​DateTimeField.php ===+==== 3. /​include/​fields/​DateTimeField.php ​====
  
-== Funktion : __convertToDBFormat(...) [Line ~95] ==+=== Funktion : __convertToDBFormat(...) [Line ~95] ===
 folgendes an passender Stelle einfügen: (If Abfragen sind gut erkennbar) folgendes an passender Stelle einfügen: (If Abfragen sind gut erkennbar)
  
Line 69: Line 65:
 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. 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] ==+=== Funktion: __convertToUserFormat((...) [Line ~157] ===
  
 folgendes an passender Stelle einfügen: (If Abfragen sind gut erkennbar) folgendes an passender Stelle einfügen: (If Abfragen sind gut erkennbar)
Line 79: Line 75:
 </​code>​ </​code>​
  
-== Funktion: ​ convertToUserFormat(...) [Line ~139] ==+=== 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. 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: Suchen:
Line 85: Line 81:
 <code php> <code php>
 if(empty($format)) { if(empty($format)) {
-                        ​$format = '​dd-mm-yyyy';​ +    ​$format = '​dd-mm-yyyy';​ 
-                }+}
 </​code>​ </​code>​
 ersetzen: ersetzen:
Line 92: Line 88:
 <code php> <code php>
 if(empty($format)) { if(empty($format)) {
-                        ​$format = '​dd.mm.yyyy';​ +    ​$format = '​dd.mm.yyyy';​ 
-                }+}
 </​code>​ </​code>​
-== Funktion: ​ convertToDBFormat(...) [Line ~139] ==+=== Funktion: ​ convertToDBFormat(...) [Line ~139] ===
  
 Suchen: Suchen:
  
-[php] +<​code ​php> 
- if(empty($format)) { +if(empty($format)) { 
- $format = '​dd-mm-yyyy';​ +     ​$format = '​dd-mm-yyyy';​ 
- +
-[/php]+</code>
 ersetzen: ersetzen:
  
-[php] +<​code ​php> 
- if(empty($format)) { +if(empty($format)) { 
- $format = '​dd.mm.yyyy';​ + $format = '​dd.mm.yyyy';​ 
- +
-[/php]+</code>
  
-===== ALT ===== +==== 4. /include/ComboStrings.php ====
- +
- +
- +
-4. include/js/​general.js +
- +
-4.1 Funktion: patternValidate(..) +
- +
-Diese Position überprüft eingegebene Datumsangaben und muss ebenfalls um dd.mm.yyyy erweitert werden. +
-Folgendes suchen: +
- +
-[php+
-case "​mm-dd-yyyy"​ : +
-case "​dd-mm-yyyy"​ : +
-     var re /​^\d{1,​2}(\-|\/​|\.)\d{1,​2}\1\d{4}$/​ +
-[/php] +
-und folgendermaßen ergänzen:​ +
- +
-[php] +
-case "​mm-dd-yyyy"​ : +
-case "​dd-mm-yyyy"​ : +
-case "​dd.mm.yyyy"​ : +
-     var re /​^\d{1,​2}(\-|\/​|\.)\d{1,​2}\1\d{4}$/​ +
-[/php] +
-4.2 Funktion splitDateVal(...) +
-Folgendes suchen: +
- +
-[php] +
-case "​dd-mm-yyyy"​ : +
-     ​dateelements[0]=dateval.substring(0,​dateval.indexOf(datesep)) +
-     ​dateelements[1]=dateval.substring(dateval.indexOf(datesep)+1,​dateval.lastIndexOf(datesep)) +
-     ​dateelements[2]=dateval.substr(dateval.lastIndexOf(datesep)+1,​dateval.length) +
-[/php] +
-daraus folgendes machen (case "​dd.mm.yyyy"​ für "​dd-mm-yyyy"​ einfügen) +
- +
-[php] +
-case "​dd-mm-yyyy"​ : +
-case "​dd.mm.yyyy"​ : +
-     ​dateelements[0]=dateval.substring(0,​dateval.indexOf(datesep)) +
-     ​dateelements[1]=dateval.substring(dateval.indexOf(datesep)+1,​dateval.lastIndexOf(datesep)) +
-     ​dateelements[2]=dateval.substr(dateval.lastIndexOf(datesep)+1,​dateval.length) +
-[/php] +
-4.3 Funktion: re_patternValidate(...) [~LIne 4262] +
- +
-Suchen: +
- +
-[php] +
-                        case "​dd-mm-yyyy"​ : +
-                                var re = /​^\d{1,​2}(-)\d{1,​2}\1\d{4}$/​ +
-[/php] +
-Daraus folgendes machen: +
- +
-[php] +
-                        case "​dd-mm-yyyy"​ : +
-                        case "​dd.mm.yyyy"​ : +
-                                var re = /​^\d{1,​2}(\-|\/​|\.)\d{1,​2}\1\d{4}$/​ +
-[/php] +
-5. include/​ComboStrings.php+
  
 Um Line 304 steht die Zuweisung Um Line 304 steht die Zuweisung
  
-[php]+<​code ​php>
 '​date_format_dom'​ => Array('​dd-mm-yyyy'​=>'​dd-mm-yyyy',​ '​date_format_dom'​ => Array('​dd-mm-yyyy'​=>'​dd-mm-yyyy',​
 '​mm-dd-yyyy'​=>'​mm-dd-yyyy',​ '​mm-dd-yyyy'​=>'​mm-dd-yyyy',​
 '​yyyy-mm-dd'​=>'​yyyy-mm-dd'​ '​yyyy-mm-dd'​=>'​yyyy-mm-dd'​
  ),  ),
-[/php]+</code>
 Daraus folgendes machen: Daraus folgendes machen:
  
-[php]+<​code ​php>
 '​date_format_dom'​ => Array('​dd-mm-yyyy'​=>'​dd-mm-yyyy',​ '​date_format_dom'​ => Array('​dd-mm-yyyy'​=>'​dd-mm-yyyy',​
                            '​dd.mm.yyyy'​=>'​dd.mm.yyyy',​                            '​dd.mm.yyyy'​=>'​dd.mm.yyyy',​
Line 187: Line 126:
                             '​yyyy-mm-dd'​=>'​yyyy-mm-dd'​                             '​yyyy-mm-dd'​=>'​yyyy-mm-dd'​
                      ),                      ),
-[/php] +</code>
-6. include/​js/​QuickCreate.js+
  
-Suchen:+==== 5. /​modules/​Calendar/​RepeatEvents.php ====
  
-var re /​^\d{1,​2}(\-|\/​|\.)\d{1,​2}\1\d{4}$/​+=== Function: formattime ===
  
-In die dazugehörigen Case-Möglichkeiten ​einfügen:+Diesmal passend in die switch-Anweisung folgendes ​einfügen: 
 +<code php> 
 +case '​dd.mm.yyyy':​ $format_string = 'd.m.Y H:i'; break; 
 +</​code>​
  
-case "dd.mm.yyyy" :+==== 6/​modules/​Vtiger/​helpers/​Util.php ====
  
-7modules/​Reports/​Reports.js+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, 18Dec 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"​.
  
-7.1 Funktion re_patternValidate(..)+== Function: formatDateTimeIntoDayString($dateTime) [~213] == 
 +Search: 
 +<code php> 
 +$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;​ 
 +</​code>​ 
 +Replace with: 
 +<code php> 
 +        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;​ 
 +        }
  
-Suche:+</​code>​
  
-[php] +==== 7. /resources/app.js ​====
-case "​mm-dd-yyyy"​ : +
-case "​dd-mm-yyyy"​ : +
-<em id="​__mceDel"><​em id="​__mceDel"> ​    var re = /^\d{1,​2}(-)\d{1,​2}\1\d{4}$/ +
-<em id="​__mceDel"><​em id="​__mceDel"><​em id="​__mceDel"><​em id="​__mceDel">​[/​php] +
-Folgende Option als case hinzufügen:​+
  
-[php] +=== FunctionconvertToDatePickerFormat(dateFormat) ===
-case "​dd.mm.yyyy" ​: +
-[/php] +
-8. vtiger6/​resources/​app.js+
  
-8.1 Funktion convertToDatePickerFormat [Line ~320]+Auch hier ist die if-Anweisung wieder gut zu erkennen, welche durch folgendes erweitert werden muss:
  
-An die Abfragen folgende Abfrage anhängen:+<code javascript>​ 
 + else if (dateFormat == '​dd.mm.yyyy'​) { 
 + return '​d.m.Y';​ 
 +
 +</​code>​
  
-[php] +== Function: ​convertTojQueryDatePickerFormat ​==
-else if (dateFormat ​== '​dd.mm.yyyy'​) { +
-return '​d.m.Y';​ +
- } +
-[/php] +
-8.2 Funktion ​convertTojQueryDatePickerFormat ​[Line ~333]+
  
-Komplette ​Funktion ​mit folgenden Code ersetzen:+Search:  
 +<code js> 
 +var splitDateFormat = dateFormat.split('​-'​);​ 
 +</​code>​ 
 +Replace with: 
 +<code js> 
 +  var dotMode = false; 
 +  if(dateFormat.indexOf("​."​) != -1 && dateFormat.indexOf("​-"​) == -1) { 
 +      dotMode = true; 
 +  } 
 +  var splitDateFormat = dateFormat.split(dotMode?'​.':'​-'​);​ 
 +</​code>​ 
 +Search: 
 +<code js> 
 +  var joinedDateFormat =  splitDateFormat.join('​-'​);​ 
 +</​code> ​  
 +Replace with: 
 +<code js> 
 +  var joinedDateFormat =  splitDateFormat.join(dotMode?'​.':'​-'​);​ 
 +</​code> ​  
 + 
 +==== 8. /​layouts/​vlayout/​modules/​Vtiger/​resources/​dashboards/​Widget.js ==== 
 + 
 +=== Funktion ​convertToDateRangePicketFormat === 
 + 
 +Wieder an das Ende der if-Bedingung einfügen:​ 
 +<code js> 
 +else if(userDateFormat == '​dd.mm.yyyy'​) { 
 +       ​return '​dd.MM.yyyy';​ 
 +
 +</​code>​ 
 + 
 +==== 9. /​resources/​helper.js ==== 
 + 
 +=== Function: getDateInstance : function(dateTime,​dateFormat) [~Zeile 53] === 
 + 
 +Search: 
 +<code js> 
 +var splittedDate = dateComponent.split("​-"​);​ 
 +var splittedDateFormat = dateFormat.split("​-"​);​ 
 +</​code>​ 
 +Replace with: 
 +<code js> 
 +var dotMode = false; 
 +if(dateComponent.indexOf("​."​) != -1 && dateComponent.indexOf("​-"​) == -1) { 
 +      dotMode = true; 
 +
 +var splittedDate = dateComponent.split(dotMode?"​.":"​-"​);​ 
 +var splittedDateFormat = dateFormat.split(dotMode?"​."​:"​-"​);​ 
 +</​code>​
  
-[php] 
-convertTojQueryDatePickerFormat:​ function(dateFormat){ 
- var i = 0; 
- ​if(dateFormat.indexOf("​."​) != -1) { 
-   var splitDateFormat = dateFormat.split('​.'​);​ 
-   var separator = "​.";​ 
- } else { 
-   var splitDateFormat = dateFormat.split('​-'​);​ 
-   var separator = "​-";​ 
- } 
- ​for(var i in splitDateFormat){ 
-   var sectionDate = splitDateFormat[i];​ 
-   var sectionCount = sectionDate.length;​ 
-   ​if(sectionCount == 4){ 
-     var strippedString = sectionDate.substring(0,​2);​ 
-     ​splitDateFormat[i] = strippedString;​ 
-   } 
- } 
- var joinedDateFormat = splitDateFormat.join(separator);​ 
- ​return joinedDateFormat;​ 
- }, 
-[/php] 
-Stefan