Produktdetailseite [details.tpl] - Preis Nachkommstallen hochstellen mit jQuery (suche Smarty Ersatz)

Hallo zusammen,

in der [B]details.tpl[/B] findet man folgenden Abschnitt (angepasst) bzgl. dem Preis:


[{oxhasrights ident="SHOWARTICLEPRICE"}]
	...
	[{if $product->getFPrice() }]
		<p id="product-price">
			<strong>[{ $product->getFPrice() }] [{ $currency->sign}]</strong>
		</p>
	[{/if}]
	...
[{/oxhasrights}]

Über jQuery und einer Regular Expression Abfrage wrappe ich die Nachkommastellen und style diese direkt, sodass diese hochgestellt werden.


styleProductPrice: function () {
	/* Preis auf Produktdetailseite */
	/* match '10' = /[0-9]{2}\s/ */
	$('#product-price strong').each( function() {
		var priceFractionalDigits_NoMarkup = $(this).text().match(/[0-9]{2}\s/);
		var priceFractionalDigits_WithMarkup = '<sup>' + priceFractionalDigits_NoMarkup + ' </sup>';
		$(this).html( $(this).text().replace( priceFractionalDigits_NoMarkup, priceFractionalDigits_WithMarkup ) );
	});
	$('#product-price strong sup').css({
		'font-size' : '70%',
		'vertical-align' : '0.325em'
	});
}

[B]Frage:[/B] Gibt es ein Smarty Ersatz um direkt auf die Nachkommastellen des Preises zuzugreifen?


[{oxhasrights ident="SHOWARTICLEPRICE"}]
	...
	[{if $product->getFPrice() }]
		<p id="product-price">
			<strong>[{ $product->getFPrice() }] [{ $currency->sign}]</strong>
		</p>
	[{/if}]
	...
[{/oxhasrights}]

[B]Nachtrag:[/B] Um mein Anliegen besser zu umschreiben, hier noch ein Bild …

Ja, das geht auch mit smarty, und zwar so (ungetestet):


[{if $product->getFPrice() }]
    <p id="product-price">
    [{$product->getFPrice()|regex_replace:"/(\d{2})$/":"<sup>\\1</sup>"}] [{ $currency->sign}]
    </p>
[{/if}]

Achtung: Der Zugriff mit $1, $2 etc. auf Matches funktioniert mit smarty nicht; es muss die Schreibweise \1, \2 etc. verwendet werden. Das herauszufinden, hat mich vor einigen Monaten mindestens eine Stunde meiner Lebenszeit gekostet, weil es nicht dokumentiert ist (war?).

Die Formatierung dann im CSS:


#product-price sup {
    font-size: 70%;
    vertical-align: .325em;
}

OT: Je länger ich damit arbeite, umso mehr gelange ich zu der Überzeugung, dass smarty eine vollkommen überflüssige und nervende Angelegenheit ist. Wurde PHP nicht mal als Template-System erfunden? Wenn oxid sich dazu durchringen könnte, diesen Ballast abzuwerfen, wäre das ein Segen!

VG, Udo

G E N I A L ! You made my day!

Vielen Dank. Man lernt echt nie aus …

[QUOTE=Udo;14263]OT: Je länger ich damit arbeite, umso mehr gelange ich zu der Überzeugung, dass smarty eine vollkommen überflüssige und nervende Angelegenheit ist. Wurde PHP nicht mal als Template-System erfunden? Wenn oxid sich dazu durchringen könnte, diesen Ballast abzuwerfen, wäre das ein Segen! VG, Udo[/QUOTE]
Bloß nicht!

Ohne Smarty wäre OXID nur noch die Hälfte wert (höchstens)!