anj schrieb
Dein Problem müsstest du soweit ich weiss an 4 Stellen suchen:
Es genügt eine Erweiterung der Funktion
function printPrice($priceText)
.
Ein negativer Preis kann hier ausgewertet werden und eine andere Ausgabe zur Folge haben, wie es oben in einem Beitrag beschrieben ist.
hi, vielen dank für die antworten. ich habe mich ein bisschen mit der class.tx_ttproducts beschäftigt.
die funktion priceText habe ich mir angeschaut
function printPrice($priceText)
{
if (($this->conf["usePriceTag"]) && (isset($this->conf["priceTagObj."])))
{
$ptconf = $this->conf["priceTagObj."];
$markContentArray = array();
$markContentArray["###PRICE###"] = $priceText;
$this->cObj->substituteMarkerInObject($ptconf, $markContentArray);
return $this->cObj->cObjGetSingle($this->conf["priceTagObj"], $ptconf);
}
else
return $priceText;
}
hier sagt er ja nur, dass in den marker ###PRICE### den angegebenen preis angibt, wo er den hernimmt usw.
ich habe mir die inStock Funktion ebenfalls mal angeguckt, um zu sehen, wie dort die Angabe von -1 übernommen wird. mir würde es schon reichen, wenn ich gleich hier sagen kann: "Preis auf Anfrage". das läuft aber in der inStock anders:
if ($row["inStock"] < 0) {
$markerArray["###PRODUCT_INSTOCK###"] = $this->conf["alwaysInStockMessage"];
$markerArray["###PRODUCT_INSTOCK_UNIT###"] = "";
}
else {
$markerArray["###PRODUCT_INSTOCK###"] = $row["inStock"];
$markerArray["###PRODUCT_INSTOCK_UNIT###"] = $this->conf["inStockPieces"];
}
Jetzt ist für mich als php-amateurin die frage:
Flink sagt: hier kann ich ein negativen Wert auswerten
if ($row["usePriceTag"] < 0)
$markerArray["###PRICE###"] = $this->conf["???"];
da wo ich die ??? stehen habe, kann ich da direkt eine Ausgabe
angeben?
@andrea_herzog: danke für deinen tipp, ich hatte das schon geändert, meine preise werden schon als text angezeigt. 😢
hallo
ich sitze grad am gleichen problem! hast du oder irgendwer da ne lösung gefunden?
svenja schrieb
Jetzt ist für mich als php-amateurin die frage:
Flink sagt: hier kann ich ein negativen Wert auswerten
if ($row["usePriceTag"] < 0)
$markerArray["###PRICE###"] = $this->conf["???"];
da wo ich die ??? stehen habe, kann ich da direkt eine Ausgabe
angeben?
Probiere es zuerst direkt, ohne eigens definierten TypoScript Setup:
if ($row["usePriceTag"] < 0)
$markerArray["###PRICE###"] = 'Der Preis ist kleiner als 0';
hallo flink,
ich habe es versucht, bekomme aber kein ergebnis. ich bin so kurz davor, dass rätsel zu lösen aber ich glaub ich brauch noch einmal deine hilfe:
function printPrice($priceText)
{
if ($row["usePriceTag"] < 0)
$markerArray["###PRICE###"] = 'auf Anfrage';
if (($this->conf["usePriceTag"]) && (isset($this->conf["priceTagObj."])))
{
$ptconf = $this->conf["priceTagObj."];
$markContentArray = array();
$markContentArray["###PRICE###"] = $priceText;
$this->cObj->substituteMarkerInObject($ptconf, $markContentArray);
return $this->cObj->cObjGetSingle($this->conf["priceTagObj"], $ptconf);
}
else
return $priceText;
}
das problem ist aber, dass der shop alle negativen einträge sofort in 0 umwandelt. also entweder ich sage ihm, wenn der wert 0 hat dann zeige 'auf Anfrage' oder ich muss einstellen, das er die werte nicht automatisch auf 0 stellen soll. stimmt das?
ich glaube, die erste lösung ist die einfachere lösung, oder? kannst du mir da noch einmal helfen?
tausend dank
Hallo Svenja,
svenja schrieb
das problem ist aber, dass der shop alle negativen einträge sofort in 0 umwandelt. also entweder ich sage ihm, wenn der wert 0 hat dann zeige 'auf Anfrage' oder ich muss einstellen, das er die werte nicht automatisch auf 0 stellen soll. stimmt das?
ich glaube, die erste lösung ist die einfachere lösung, oder? kannst du mir da noch einmal helfen?
tausend dank
Vielleicht wäre es dann besser, diese Korrektur anderswo durchzuführen.
/**
* Formatting a price
*/
function priceFormat($double) {
if ($double < 0)
return 'auf Anfrage';
else
return number_format($double,intval($this->conf['priceDec']),$this->conf['priceDecPoint'],$this->conf['priceThousandPoint']);
} // priceFormat
SUPER!!! hab vielen dank, flink. jetzt wird mein erster shop immer wahrscheinlicher! die ausgabe funktioniert! zwar steht jetzt noch das "euro" zeichen und die mehrwertsteuer dahinter, aber das wird schon gehen. vielleicht kann ich die ja irgendwie rauskriegen. tausend dank!
Hallo, auch wenn dieser Thread schon etwas betagter ist, so ist er dennoch das Beste was ich zu meinem Problem gefunden habe.
Ich möchte ebenfalls bestimmte Produkte als "Auf Anfrage" gekennzeichnet haben. Ich hätte es gerne, dass bei diesem Produkten auch der Button zum "In den Warenkorb" legen nicht erscheinen würde.
Jedoch ist mir leider bislang kein unkomplizierter Lösungsansatz eingefallen.
Die einzige Möglichkeit sehe ich derzeit darin, eine eigene Funktion zu schreiben, die entweder die normale Ausgabe (Preisangabe und Warenkorb-Button) oder eben einen alternativen "Auf Anfrage"-Text erzeugt.
Hat vielleicht jemand eine bessere Idee oder ist das Problem schonmal von einer anderen Seite her angegangen?
Mit Dank im Voraus für jede Antwort
PS: Typo3 4.0.2, tt_products 2.5.1
Dazu könnte man die Variante 5 - additional erweitern. Dort findet alles Platz, was als einfache Checkbox mit Ja oder Nein zu beantworten ist.
Es könnte von der Anzeige her gleich gelöst werden wie ein Einzelprodukt.
hi,
ich versuche auch gerade einen "preis auf anfrage" zu erstellen.
habe entsprechende class.tx_ttproducts.php abgeändert mit
Vielleicht wäre es dann besser, diese Korrektur anderswo durchzuführen.
/**
* Formatting a price
*/
function priceFormat($double) {
if ($double < 0)
return 'auf Anfrage';
else
return number_format($double,intval($this->conf['priceDec']),$this->conf['priceDecPoint'],$this->conf['priceThousandPoint']);
} // priceFormat
aber ich kann bisher nur negative zahlen ausgeben und mehr leider nicht.
was habe ich vergessen?
mfg
masterle