[TYPO3-german] wt_cart ignoriert Nachkommastellen auf ungecachten Seiten

Oliver Westerheide oliver at westerheide-media.de
Tue May 21 15:00:33 CEST 2013


*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



More information about the TYPO3-german mailing list