Franz Holzinger

Verse of the day

Lieblich und schön sein ist nichts; ein Weib, das den HERRN fürchtet, soll man loben.
Sprueche 31:30

© Bible Gateway's Verse of the Day


Autor  
21-12-11 15:44:33 Template und Staffelpreise Anzeige/Ausbelden
Guillermo Kunst
Hallo, wir nutzen die Staffelpreise bei den Produkten. Manchmal gibt es Produkte wo keine Staffelpreise eingesetzt werden. Mit welchen Markern wird das gesteuert. Wir haben die Class tx_ttproducts_graduated_price_view gedumpt und finden dort die SubMarker GRADPRICE_FORMULA_ITEMS. Leider werden die Daten die innerhalb der Marker stehen ausgegeben obwohl KEINE Staffelpreise bei einzelnen Produkten genutzt werden. Gib es eine Liste der Marker rund um die Staffelpreise?
21-12-11 20:14:53 Subpart Marker ###GRADPRICE_FORMULA_ITEMS###
Franz Holzinger
Der Subpart Marker ###GRADPRICE_FORMULA_ITEMS### wird geleert, wenn es zu einem Produkt keinen Staffelpreis gibt. Das bedeutet, dass der gesamte Inhalt innerhalb von

<!-- ###GRADPRICE_FORMULA_ITEMS### begin -->

<!-- ###GRADPRICE_FORMULA_ITEMS### end -->

durch einen Leerstring ersetzt wird.


21-12-11 20:30:59 Subpart Marker ###GRADPRICE_FORMULA_ITEMS###
Guillermo Kunst
Geht leider nicht. Ich werde wahnsinnig. Verwende die letzte 2.9.1 Version. Das hatte ich auch dem Source so gesehen aber der Text bleibt einfach stehen. In der DB steht zum Produkt bei graduated_price_uid 0 drin. Also kein Staffelpreis. Beim Debug hatte ich aber festgestellt dass in der Funktion getRowMarkerArray bei einer der Variable &$markerArray oder &$tagArray GRADPRICE_FORMULA_ITEMS = 14 steht??

21-12-11 20:45:24 Marker
Franz Holzinger
Kann es sein, dass TYPO3 ein Problem damit hat, wenn es auch einen Marker ###GRADPRICE_FORMULA_ITEMS### gibt?

Dann könnte man das folgendermaßen korrigieren:

foreach ($tagArray as $value => $k1) {
$keyMarker = '###' . $value . '###';
if (strstr($value, $this->marker . '_') && !$markerArray[$keyMarker] && $value != 'GRADPRICE_FORMULA_ITEMS') {
$markerArray[$keyMarker] = '';
}
}

Der Programmcode für den Subpart Marker befindet sich in der Funktion getItemSubpartArrays.
21-12-11 21:30:34 Marker
Guillermo Kunst
In welcher Class bzw. in welcher Datei? tx_ttproducts_graduated_price_view?
21-12-11 21:54:30 Beispiel
Franz Holzinger
Diese Funktionen befinden sich in view/class.tx_ttproducts_graduated_price_view.php .
22-12-11 10:57:04 Marker
Guillermo Kunst
Hallo Herr Holzinger, sorry geht noch immer nicht. Der Patch kann eigentlich nicht greifen da in der Funktion getItemSubpartArrays die Variable $markerArray nicht vorhanden ist?

Es wirkt so dass das Problem viel früher auftaucht da die Variable $subpartArray['###GRADPRICE_FORMULA_ITEMS###'] = ''; richtig mit Nichts belegt wird aber keine Auswirkung hat. An welcher Stelle wird eigentlich diese Class angesprochen? Viele Dank
22-12-11 11:38:23 Debuggen
Franz Holzinger
Das ist nur ein Korrektur Vorschlag gewesen. Es müsste genau debuggt werden, warum und wo der gesetzte Subpart Marker ###GRADPRICE_FORMULA_ITEMS### später wieder überschrieben wird. Wenn Hallo Herr Holzinger, sorry geht noch immer nicht. Der Patch kann eigentlich nicht greifen da in der Funktion getItemSubpartArrays die Variable $markerArray nicht vorhanden ist?

Es wirkt so dass das Problem viel früher auftaucht da die Variable $subpartArray['###GRADPRICE_FORMULA_ITEMS###'] = ''; ist, dann ist alles richtig und der Subpart im Shop Template muss auf einen leeren Inhalt gesetzt werden. Andernfalls ist die TYPO3 Ersetz Funktion fehlerhaft.
23-12-11 14:49:50 Debuggen
Guillermo Kunst
Glaube den Fehler gefunden zu haben? Bin aber mit dem BugFix nicht so sicher: In der Class view/class.tx_ttproducts_graduated_price_view.php wird die Funktion getItemSubpartArrays aufgerufen und die Variable $subpartArray wird nicht als Array übergeben sondern als String mit dem Feldnamen für die Staffelpreis UID. Habe die Anzahl der Parameter angesehen und festgestellt dass die Funktion mit zuwenig Parameter aufgerufen. Es fehlen die Variablen $this->marker und $functablename aus der Class tx_ttproducts_table_base_view. Daher greift der SubPart GRADPRICE_FORMULA_ITEMS nicht.

Habe die zwei Variablen in die Parameterliste reingesetzt und nun wird der Subpart ausgeblendet wenn keine Staffelrpeise da sind.

Was machen wir nun?

Danke und viele Grüße

Guillermo
24-12-11 12:47:04 Korrektur zu tt_products 2.9.1
Franz Holzinger
In der Datei tt_products/view/field/class.tx_ttproducts_field_graduated_price_view.php muss die Definition der Funktion getItemSubpartArrays geändert werden:


class tx_ttproducts_field_graduated_price_view extends tx_ttproducts_field_base_view {

public function getItemSubpartArrays (
&$templateCode,
$marker,
$functablename,
&$row,
$fieldname,
$tableconf,
&$subpartArray,
&$wrappedSubpartArray,
&$tagArray,
$theCode = '',
$basketExtra = array(),
$id = '1'
) {
< Zurück zum Forum