Differences

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

Link to this comparison view

Next revision
Previous revision
en:modifications:german-dateformat [2014/01/02 17:36]
swarnat created
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. +
- +
-Los gehts: +
-===== vtigerCRM 6.0 RC =====+
  
 ==== 1. neuer Eintrag in die '​vtiger_date_format'​ Tabelle mit folgender Query: ==== ==== 1. neuer Eintrag in die '​vtiger_date_format'​ Tabelle mit folgender Query: ====
Line 25: Line 22:
 ==== 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>​
  
- +=== FunctioncurrentUserDisplayDate($value) ===
- +
-===== ALT ===== +
- +
-2. /​include/​utils/​CommonUtils.php +
- +
-2.1 Funktion ​parse_calendardate(...[Line ~221] +
- +
-In if-Anweisung integrieren,​ bzw. einfach dahinter schreiben:​ +
- +
-[php] +
-elseif($current_user->​date_format ​== '​dd.mm.yyyy'​) +
-        { +
-                $dt_popup_fmt ​"​%d.%m.%Y";​ +
-        } +
-[/php] +
-2.2 Funktion getValidDisplayDate+
  
 Innerhalb der Funktion finden: Innerhalb der Funktion finden:
  
-[php]+<​code ​php>
 if ($dat_fmt == ''​) { if ($dat_fmt == ''​) {
 $dat_fmt = '​dd-mm-yyyy';​ $dat_fmt = '​dd-mm-yyyy';​
 } }
-[/php]+</code>
 Den Abschnitt folgendermaßen anpassen: Den Abschnitt folgendermaßen anpassen:
  
-[php]+<​code ​php>
 if ($dat_fmt == ''​) { if ($dat_fmt == ''​) {
 $dat_fmt = '​dd.mm.yyyy';​ $dat_fmt = '​dd.mm.yyyy';​
 } }
-[/php] +</code>
-3. /​include/​fields/​DateTimeField.php+
  
-3.Funktion : __convertToDBFormat(...) [Line ~95]+==== 3. /​include/​fields/​DateTimeField.php ==== 
 + 
 +=== 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)
  
-[php]+<​code ​php>
 elseif ($format == '​dd.mm.yyyy'​) { elseif ($format == '​dd.mm.yyyy'​) {
        ​if(strpos($date,​ "​-"​) !== false) {        ​if(strpos($date,​ "​-"​) !== false) {
Line 80: Line 61:
        }        }
 } }
-[/php] +</code> 
-An dieser Stelle wird leider ab und zu ein Format dd-mm-yyyy und die Einstellung des Users dd.mm.yyyy übergeben. Deshalb ​nochmal der Check.+ 
 +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.
  
-3.2 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)
  
-[php]+<​code ​php>
 elseif ($format == '​dd.mm.yyyy'​) { elseif ($format == '​dd.mm.yyyy'​) {
                         $date[0] = $d . '​.'​ . $m . '​.'​ . $y;                         $date[0] = $d . '​.'​ . $m . '​.'​ . $y;
 } }
-[/php] +</code> 
-3.3 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 Extension ​PDFMaker relevant, da diese für Datumsausgaben in PDF's aus einem Workflow genutzt ​wird.+=== 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: 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> 
-3.4 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>
-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] +==== 4. /​include/​ComboStrings.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 195: 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