Webform Calculator – Dezimalzahlen mit Komma statt Punkt und zwei Stellen hinter Komma
Eingetragen von jarek (23)
am 19.12.2014 - 17:07 Uhr in
am 19.12.2014 - 17:07 Uhr in
Hallo,
ich arbeite gerade an einem Formular in dem zwei Zahlen addiert werden sollen.
Mit Webform Calculator wird richtig gerechnet, doch ich bekomme es nicht hin es richtig zu formatieren z.B. 10,00.
Egal wie ich es bei den Zahlen einstelle erscheint immer ein Punkt und kein Komma und nur eine Stelle hinter Komma.
Was kann ich da noch machen?
Vielen Dank und liebe Grüße
Jarek
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich habe das Modul noch nicht
am 19.12.2014 - 17:48 Uhr
Ich habe das Modul noch nicht genutzt. Wenn es in dem Modul aber keine Einstellung für so etwas gibt, mach dazu in der Issue-Queue des Moduls einen neuen Issue auf. Schau aber erst mal nach, ob nicht schon jemand anderes so etwas wollte.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hallo Werner! Vielen Dank für
am 19.12.2014 - 20:23 Uhr
Hallo Werner!
Vielen Dank für Dein Vorschlag, heute bin ich schon zu müde aber ich werde es ausprobieren... :-).
Die vielen Modulen sind schon toll. Doch diese bauen meistens auf anderen Modulen auf und es reich eine kleine Änderung in irgendeinem dieser Module, schon hat man den Salat.
Ich muss mich wohl mehr mit der Programmierung von Modulen befassen :-).
LG Jarek
Sollte jemand mit diesem
am 27.01.2015 - 17:26 Uhr
Sollte jemand mit diesem Modul mal arbeiten wollen und ein Komma statt Punkt mit zwei Stellen hinter Komma wünschen kann er dies wie folgt tun.
In der Datei webform_calculator.js folgende Funktion ändern:
Drupal.webformCalculator.round = function(number, places) {
/* alt: var multiplier = Math.pow(10, places);
return (Math.round(number * multiplier) / multiplier); */
var j = (Math.round(number * 100) / 100).toString();
j += (j.indexOf('.') == -1)? '.00' : '00';
var p = j.indexOf('.');
return j.substring(0, p) + ',' + j.substring(p+1, p+3);
}
Diese Funktion ist nur für die Ausgabe im Formular zuständig.
In der Datei webform_calculator.module noch folgende Funktion ändern:
function webform_calculator_eval($formula, $precision = 2) {
eval("\$result = $formula;");
/* alt: return round($result, $precision); */
return number_format($result, 2, ",", ".");
}
Diese Fuktion speichert die Zahl in der DB.
Bei mir funktioniert es einwandfrei… :-).
Viele Grüße
Jarek
Dann mach Dir aber unbedingt
am 27.01.2015 - 17:31 Uhr
Dann mach Dir aber unbedingt einen Knoten ins Taschentuch, damit Du Dich bei jedem Update vom Webform-Modul daran erinnerst, daß Du diese Änderungen wieder einbauen mußt!!
Wenn es nur um die Ausgabe geht, macht man so etwas in einer Preprozess-Funktion im Theme oder einem eigenen Modul. Damit bleibt man updatefähig.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Die Lösung ist nicht so elegant :-)
am 29.01.2015 - 14:12 Uhr
Hallo Werner,
ich weiß, die Lösung ist nicht so elegant :-).
Zu dem Modul gibt es bereits einen Ticket (https://www.drupal.org/node/2354949) um es um diese Funktionen zu erweitern – ich muss wohl mehr in dieser Richtung machen .
Die beiden Dateien habe ich sicherheitshalber auch noch als .zip im Ordner liegen :-).
Würde es eventuell auch helfen dem Verzeichnis die Schreibrechte (auf 555 ändern) zu entziehen?
Viele Grüße
Jarek