*Schluck*
Jetzt sind wir an einem Punkt, welcher meine Kenntnisse (noch) übersteigt:)
Also:
Es kann in den Konstanten von wt_cart diverses eingestellt werden, z.B.
Decimal (e.g. 2). This setting will...[plugin.wtcart.main.decimal]
oder
Decimal symbol (e.g. , or .). This ...[plugin.wtcart.main.dec_point]
Das Trennsymbol lässt sich durch jedes beliebige Zeichen ersetzen, wenn
ich bei der Anzahl der Dezimalstellen aber eine 0 eintrage, sollten nach
meinem Verständnis gar keine Nachkommstellen angezeigt werden oder?
Anscheinend ist es aber egal, was ich dort für eine Zahl eingebe, das
Output ist immer gleich, z.B. 11,75 €
Offensichtlich liegt hier der Hase im Pfeffer. Hier ist noch die
Funktion, von der ich glaube, dass sie den Betrag zusammenzimmert:
/**
* number Format for typoscript
*
* @return string formatted number
*/
public function user_wtcart_numberFormat($content = '', $conf =
array()) {
global $TSFE;
$local_cObj = $TSFE->cObj; // cObject
if (!$content)
{
$conf = $conf['userFunc.']; // TS configuration
$content = $local_cObj->cObjGetSingle($conf['number'],
$conf['number.']); // get number
}
return number_format(doubleval($content), $conf['decimal'],
$conf['dec_point'], $conf['thousands_sep']);
}
Und meine Suche nach sprintf hat mich unter Anderem hierhin geführt:
public function beforeClearSessionHook(array $field = array(), $form,
$mail = NULL, Tx_Powermail_Controller_FormsController $controller =
NULL, Tx_WtCart_Forms $cartController = NULL,
Tx_Powermail_Domain_Repository_MailsRepository $mailsRepository = NULL){
$errorNumber = 0;
if
(isset($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey]['beforeClearSession']))
{
$session = $GLOBALS['TSFE']->fe_user->getKey('ses', 'wt_cart_' .
$GLOBALS['TSFE']->id);
if ($session) {
foreach
($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey]['beforeClearSession']
as $userFunc) {
$params = array(
'field' => $field,
'form' => $form,
'mail' => $mail,
'mailController' => $controller,
'mailsRepository' =>
$mailsRepository,
'cart' =>
unserialize($session),
'cartController' =>
$cartController
);
$errorNumber =
t3lib_div::callUserFunction($userFunc, $params, $this);
//ignore class/method/function not
found debug message
if($errorNumber === FALSE) $errorNumber
= 0;
if ($errorNumber > 0) {
if (TYPO3_DLOG) {
$msg = sprintf("Aborting clear session because \"%s\" threw
error(%d).", $userFunc, $errorNumber);
t3lib_div::devLog($msg,
$this->extKey);
}
break;
}
}
}
}
return $errorNumber;
}
Am 21.05.13 13:49, schrieb David Bruchmann:
Am 21.05.13 11:36, schrieb David Bruchmann:
Dann würde ich es mal als Bug posten.
Ein Rundungsproblem wie Du es beschrieben hast wird ja schon durch ein
einfaches
intval() oder (int) Value
hervorgerufen, wenn die Zahl anschließend mit zwei Nullstellen
formatiert wird, siehts halt anders aus aber bleibt falsch.
da ja die Nachkommastellen abgeschnitten werden würde ich mal das
Trennzeichen unter die Lupe nehmen. Im Deutschen wird da ja auch
abweichend zum üblichen Handling das Komma statt eines Punktes
verwendet. Kommas wiederum werden häufig als Trennzeichen für Listen
benutzt.
meine erste Idee bei der Problembeschreibung war: da wird nur der Teil
vor dem Komma benutzt und direkt für/in(?) der Ausgabe addiert (evtl.
sogar im Javascript?)
beim Speichern wird wohl wieder Float benutzt und dann die Summe für
die gecachte Seite aus den float-Zahlen korrekt berechnet.
bernd
unter diesem Aspekt mal die EInstelluneg für sprintf() bzw.
entsprechende wrapper-funktion prüfen, evtl. läßt sich das in der
Erweiterung per TypoScript einstellen - oder die Funktion verwendet
globale Einstellungen dafür aus den locals oder aus dem TypoScript-Setup
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german