Preis "auf Anfrage"

Autor Nachricht
Verfasst am: 05.09.2005 [17:59]
svenja

[Themenersteller]
dabei seit: 25.08.2005
Beiträge: 12

Hallo

ich habe zk_products ausprobiert und bin auf ein Problem gestoßen, für das ich keine hilfe im netz finde.
ich habe mir meinen shop aufgesetzt, in dem man bilder kaufen kann. für manche bilder möchte ich aber auf eine preisangabe verzichten und dafür "auf anfrage" stehen haben. Aber im modul sind in diesen feldern nur zahlen zugelassen, wenn ich buchstaben eingebe dan kommt 0.00 euro!
wie kann ich buchstaben oder sonderzeichen in dem Preisfeld zulassen?

liebe grüße
Verfasst am: 06.09.2005 [11:32]
Andrea_Herzog

dabei seit: 06.09.2004
Beiträge: 400

Hallo Svenja,

habe das Problem auch.

Ich weiss nicht, ob dir das hilft, denn ich setze zk-products nicht ein, sondern tt_products.

Aber ich habe in der ext_typoscript_constants.txt folgendes gefunden. Da scheint es die Möglichkeit zu geben, einen grafischen Preis zu setzen.

cat=plugin.products//; type=boolean; label=Use Price Tag: Print a graphical price tag instead of the normal text field
usePriceTag = 0


In der ext_typoscript_setup.txt steht dann dies:

usePriceTag = {$plugin.tt_products.usePriceTag}
useStaticInfoCountry = {$plugin.tt_products.useStaticInfoCountry}

priceTagObj = IMAGE
priceTagObj.wrap = |
priceTagObj.file = GIFBUILDER
priceTagObj.file {
backColor = #C4C400
XY = [10.w]+10,[10.h]+5
10 = TEXT
10 {
text = ###PRICE###
offset = 0,14
fontColor = #222222
fontSize = 16
align = center
niceText = 1
}
}



Das habe ich aber noch nicht probiert.


Ich habe übrigens auch mal in der tca.php im Array price den eval= auskommentiert (dann wird der Text zumindest im BE angezeigt). Reicht also nicht aus.

Bist du schon weiter gekommen?
Oder weiss jemand anders etwas?


Gruß

Andrea
Verfasst am: 06.09.2005 [11:46]
anj


dabei seit: 09.08.2005
Beiträge: 312

Hallo Svenja!


Dein Problem müsstest du soweit ich weiss an 4 Stellen suchen:

    Datenbank

    class.tx_ttproducts.php

    tca.php

    ext_tables.php



In der Datenbank sollte es standardmässig varchar(20) sein ... also wäre es für TEXT ok.

in der zk_products extension solltest du mal nach dem feld price sehen ob es irgendwie werte die keine integer sind nicht ausgibt.

In der tca.php bzw. ext_tables.php solltest du schauen wie das price feld eingestellt wird (integer oder char?)

Das wäre die kompliziertere Variante. Am schnellsten wäre es glaub ich einfach die class.tx_ttproducts.php zu erweitern:

Std. mässig hast du bei der Eingabe einer "-1" im Preis eine AUSGABE: Auf Lager

Vielleicht kannst du einfach das ganze erweitern z.b. auf die "-2" -> AUSGABE Auf Anfrage ???

gruss

aNj



www.derjon.com,www.pixelmotor.de


system_control: IMAP,Linux(useradd),CVS
TemplaVoila Tutorial Deutsch (doc_tv_de): www.pixelmotor.de/developer/wiki/typo3
listflexcontent: TV Inhalt rekursiv auslesen
Verfasst am: 07.09.2005 [00:53]
Flink


dabei seit: 17.12.2003
Beiträge: 1634

anj schrieb:

Dein Problem müsstest du soweit ich weiss an 4 Stellen suchen:

    Datenbank

    class.tx_ttproducts.php

    tca.php

    ext_tables.php



Es genügt eine Erweiterung der Funktion
Php:Zeilennummerierung:  An / Aus

  1. 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.


WJT goes on...
Nightfever in Köln
Verfasst am: 07.09.2005 [10:12]
svenja

[Themenersteller]
dabei seit: 25.08.2005
Beiträge: 12

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
Php:Zeilennummerierung:  An / Aus

  1. function printPrice($priceText)
  2.         {
  3.                 if (($this->conf["usePriceTag"]) && (isset($this->conf["priceTagObj."])))
  4.                 {
  5.                         $ptconf = $this->conf["priceTagObj."];
  6.                         $markContentArray = array();
  7.                         $markContentArray["###PRICE###"] = $priceText;
  8.                         $this->cObj->substituteMarkerInObject($ptconf, $markContentArray);
  9.                         return $this->cObj->cObjGetSingle($this->conf["priceTagObj"], $ptconf);
  10.                 }
  11.                 else
  12.                         return $priceText;
  13.         }


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:
Php:Zeilennummerierung:  An / Aus

  1. if ($row["inStock"] < 0) {
  2.                 $markerArray["###PRODUCT_INSTOCK###"] = $this->conf["alwaysInStockMessage"];
  3.                 $markerArray["###PRODUCT_INSTOCK_UNIT###"] = "";
  4.            }
  5.            else {
  6.                 $markerArray["###PRODUCT_INSTOCK###"] = $row["inStock"];
  7.                 $markerArray["###PRODUCT_INSTOCK_UNIT###"] = $this->conf["inStockPieces"];
  8.            }


Jetzt ist für mich als php-amateurin die frage:
Flink sagt: hier kann ich ein negativen Wert auswerten
Php:Zeilennummerierung:  An / Aus

  1. if ($row["usePriceTag"] < 0)
  2. $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. icon_cry.gif
Verfasst am: 08.09.2005 [09:15]
donvito

dabei seit: 22.10.2004
Beiträge: 149

hallo

ich sitze grad am gleichen problem! hast du oder irgendwer da ne lösung gefunden?
Verfasst am: 08.09.2005 [22:45]
Flink


dabei seit: 17.12.2003
Beiträge: 1634

svenja schrieb:

Jetzt ist für mich als php-amateurin die frage:
Flink sagt: hier kann ich ein negativen Wert auswerten
Php:Zeilennummerierung:  An / Aus

  1. if ($row["usePriceTag"] < 0)
  2. $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:
Php:Zeilennummerierung:  An / Aus

  1. if ($row["usePriceTag"] < 0)
  2. $markerArray["###PRICE###"] = 'Der Preis ist kleiner als 0';





WJT goes on...
Nightfever in Köln
Verfasst am: 09.09.2005 [09:39]
svenja

[Themenersteller]
dabei seit: 25.08.2005
Beiträge: 12

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:
Php:Zeilennummerierung:  An / Aus

  1. function printPrice($priceText)
  2.         {
  3.         if ($row["usePriceTag"] < 0)
  4.         $markerArray["###PRICE###"] = 'auf Anfrage';             
  5.                 if (($this->conf["usePriceTag"]) && (isset($this->conf["priceTagObj."])))
  6.                 {
  7.                         $ptconf = $this->conf["priceTagObj."];
  8.                         $markContentArray = array();
  9.                         $markContentArray["###PRICE###"] = $priceText;
  10.                         $this->cObj->substituteMarkerInObject($ptconf, $markContentArray);
  11.                         return $this->cObj->cObjGetSingle($this->conf["priceTagObj"], $ptconf);
  12.                 }
  13.                 else
  14.                         return $priceText;
  15.         }


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
Verfasst am: 09.09.2005 [10:40]
Flink


dabei seit: 17.12.2003
Beiträge: 1634

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.

Php:Zeilennummerierung:  An / Aus

  1. /**
  2.  * Formatting a price
  3.  */
  4. function priceFormat($double)   {
  5. if ($double < 0)
  6.         return 'auf Anfrage';   
  7. else
  8.         return number_format($double,intval($this->conf['priceDec']),$this->conf['priceDecPoint'],$this->conf['priceThousandPoint']);
  9. } // priceFormat


[Dieser Beitrag wurde 1 mal bearbeitet. Zuletzt am 09.09.2005 um 10:40]

WJT goes on...
Nightfever in Köln
Verfasst am: 09.09.2005 [11:40]
svenja

[Themenersteller]
dabei seit: 25.08.2005
Beiträge: 12

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!




 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 07.07.
in Espelkamp:
Montag, 04.08.

TYPO3 Intensivschulung
in Espelkamp:
Mi., 06.08. - Fr., 08.08.
in Würzburg:
Mo., 18.08. - Mi., 20.08.
in Köln:
Mo., 01.09. - Mi., 03.09.
in Berlin:
Mi., 24.09. - Fr., 26.09.

TYPO3 Extensionschulung
in Berlin:
Mo., 14.07. - Mi., 16.07.
in Espelkamp:
Mo., 11.08. - Mi., 13.08.