Zum Inhalt springen

HOW-TO: Eigene Felder in tt_products 2.5.0 definieren

Erstellt am 7. September 2006 · 7 Antworten · letzte Antwort am 2. Februar 2011

Tags: TCA, Tipp

Unbekannter Benutzer ·

So ging es bei mir:

1.) Alte Version sichern !

2.) neues Feld 'meinFeldname' per Kickstarter erstellen oder direkt in der DB anlegen

3.) in der tca.php:

'meinFeld' => Array (
			'exclude' => 1,
			'label' => 'LLL:EXT:lang/locallang_db.xml:tt_products.meinFeld',
			'config' => Array (
				'type' => 'input',
				'size' => '40',
				'max' => '256'
				)
			),

einfügen.

4.) in der tca.php oben einfügen:

$TCA['tt_products'] = Array (
	'ctrl' => $TCA['tt_products']['ctrl'],
	'interface' => Array (
		'showRecordFieldList' => 'hidden,starttime,endtime,fe_group,title,subtitle,...,meinFeld'

und weiter unten im tt_products-Array noch vor '$TCA['tt_products_language'] = Array (...' ändern

'types' => Array (
		'0' => Array('showitem' => 'title;;5;;3-3-3, itemnumber;;3, category, price;;4,weight;;6, note;;;richtext[]:rte_transform[mode=ts_css|imgpath=uploads/tx_ttproducts/rte/], note2;;;richtext[]:rte_transform[mode=ts_css|imgpath=uploads/tx_ttproducts/rte/],image;;;;4-4-4,datasheet,;;;;1-1-1,hidden;;1,' .
				'--div--;LLL:EXT:tt_products/locallang_db.xml:tt_products.variants,color,size,gradings;;7,description,additional,'.
				'--div--;LLL:EXT:tt_products/locallang_db.xml:tt_products.relations,prod_uid,related_uid,'.
				'--div--;LLL:EXT:tt_products/locallang_db.xml:tt_products.shippingdiv,shipping,shipping2,handling,meinFeld')

5.) in der locallang_db.xml einfügen:

<label index="tt_products">Products</label>
...
<label index="tt_products.meinFeld">meinFeld Beschreibung</label>
...

6. ) in der class.tx_ttproducts_article_base.php die Funktion: function getItemMarkerArray (&$item, &$markerArray, ...) suchen und dann nach
z. B.
$markerArray['###PRICE2_NO_TAX###'] = $price2NoTax; einfügen

$markerArray['###MEINFELD###'] = $row['meinFeldname'];

7.) Speichern!

8. )Cache löschen!

9.) Einträge in der Datenbank für 'meinFeldname' vornehmen.

10.) Den neuen Marker ###MEINFELD### im <!-- ###ITEM_SINGLE_DISPLAY### --> Bereich des Templates einfügen

Damit lief es bei mir unter tt_products 2.5.0

Im SINGLE-Display wird der Marker für das neue Feld damit ersetzt (zumindest bei mir).

Hoffe es hilft.

Wäre schön wenn nun jemand beschreibt wie das auch in der LIST-Ansicht geht, da bin ich nämlich noch nicht weiter.

Gruß und viel Erfolg,

Stefan

nagus · · Beste Antwort

hallo!

ich wollte deine methode für die erweiterung der varianten verwenden... will aber leider nicht so ganz 🙁

könnte mir bitte jemand behilflich sein beim erweitern der varianten? (also außer farbe und größe... z.b. schriftfarbe, schriftart, schriftposition, etc... )

vielen dank im voraus!

lous ·

Also ich hoffe man darf hier noch posten ;D

Und zwar wollte ich wissen, wie man die custom felder in der listen ansicht anzeigen lassen kann?
Bisher gehts ja nur in der single ansicht.

Wäre über jede Hilfe dankbar

besten gruss 😃

torkel ·

Hallo

ich habe genau das gleiche Problem wie lous. Ich habe mir in der Tabelle tt_products ein paar Felder erweitert und nun habe ich das Prolbem mit dem Marker.

In der Detail-View funktioniert es wunderbar, aber in der ListView werden mir die Werte einfach nicht angezeigt.

kann mir da jemand helfen?

Grüsse

icy ·

Wie funktioniert das eigentlich in einer eigenen Extension? die Datenbankfelder habe ich angelegt, lassen sich im Backend auch befüllen, nur die entsprechenden Marker lassen sich nicht nutzen.
Ich habe dazu versucht, den hook getItemMarkerArray zu nutzen, der in der Konfiguration auch angemeldet zu sein scheint...

Gruß, Icy

Ftdesigner ·

Hallo Leuts,

Seit nun knapp 4 Jahren ist das nun ein problem. Neue Felder einfügen scheint für alle irgendwie ein Problem zu sein.

Nun also auch zu meinem:
Ich habe alles so gemacht, wie Stefan74 beschrieben hat. Bei mir funktioniert alles prima.
Aber nicht, wenn ich den neu gesetzten Feldern ein Artikel zuweisen möchte.
Sprich: wenn ich <!---###display_variant12###---> vor und nach dem Feld einfüge und ne Dropdownbox einfüge, dann wird das
Produkt nicht mehr in den Warenkorb gelegt.

Hat dafür jemand evt. ne Lösung?

Ich bin hier fast am verzweifeln, habe unter diesem Thema auch ein eigenes Thema erstellt:
http://www.typo3forum.net/forum/tt_products/46136-artikel-probleme.html

Doch bis anhin konnte mir niemand helfen.

Ich wäre ewig froh, wenn mir da vieleicht jemand ein Tipp geben könnte.

Grüße aus der Hölle der Verzweiflung

Ftdesigner

jk87 ·

Damit der eigene Marker in allen Ansichten ausgegeben wird, muss der Marker unter tt_products 2.6.2 wie folgt definiert werden:

$markerArray['###'.$this->marker.'_MEINFELD###'] = $row['meinFeldname'];

Dementsprechend muss dann der Marker "###PRODUCT_MEINFELD###" gesetzt werden.

Gruß,
jk

hankwatson ·

da ich auch gerade danach gesucht habe: im TYPOSCRIPT müssen die neuen Felder registriert werden:

plugin.tt_products.conf.tt_products.ALL.requiredFields = uid,pid,category,price,price2,tax,inStock,datasheet,nuesfeldausdb1,neuesfeldausdb2,...