Zum Inhalt springen

shop singel ansicht

Erstellt am 13. März 2006 · 5 Antworten · letzte Antwort am 13. März 2006

Tags: PHP, Frage

club-basic ·

Hallo

Ich möchte in der singelansicht natürlich auch die Auswahl Grösse und Farbe haben. Leider klappt das nicht, da der marker <!-- ###display_variant1### KLAPPT NICHT--> und <!-- ###display_variant2### KLAPPT NICHT--> nichts ausgibt.

Nun habe ich mich durch die untiefen von tt_produkts gewagt und mir die Datei class.tx_ttproducts_single_view.php vorgenommen.

Hier habe ich nun folgende sql eingebaut:
$id = t3lib_div::_GP('tt_products');
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*","tt_products ", "uid = '".$id."' ");
$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
$size = $row['size'];
$color = $row['color'];

#Abfrage und Ausgabe:
if($size != ""){
$markerArray['###display_size_name###'] = "Größ:";
$markerArray['###display1_size###'] = "<select name="ttp_basket[$id][​size]">";
$markerArray['###display2_size###'] = "</select>";
}else {
# wenn nicht dann leeren marker
$markerArray['###display_size_name###'] = "";
$markerArray['###display1_size###'] = "";
$markerArray['###display2_size###'] = "";
$markerArray['###PRODUCT_SIZE###'] = "";
}
if($color != ""){
$markerArray['###display_color_name###'] = "Farbe:";
$markerArray['###displa1_color###'] = "<select name="ttp_basket[$id][​size]">";
$markerArray['###display2_color###'] = "</select>";
}else {
# wenn nicht dann leeren marker
$markerArray['###display_color_name###'] = "";
$markerArray['###display1_color###'] = "";
$markerArray['###display2_color###'] = "";
$markerArray['###PRODUCT_COLOR###'] = "";
}

Die marker habe ich dann im template gesetzt.
<br /><br /><br /><br /><hr /><br /><br /><br />
<h3>ITEM_SINGLE_DISPLAY</h3>
<em>This subpart is used to display single products.</em><br />
<br />
<br />
<!-- ###ITEM_SINGLE_DISPLAY### begin This subpart is used to display single products. -->
......
....
<form method="post" action="index.php?###PID_BASKET###">

<div><!--###LINK_ITEM###-->###GW1B###<b>###PRODUCT_TITLE###</b>###GW1E###<!--###LINK_ITEM###--></div>
<div style="float:left; width:200px; ">###PRODUCT_IMAGE### </div>
<div style="float:left; width:350px;">
<div style="padding-left:10px;">
###GW1B###
<b>Info:</b><br />
###PRODUCT_NOTE###<br />
###GW1E###
</div>
<div align="right">
###GW2B### ###display_color_name### ###GW2E### ###display1_color### ###PRODUCT_COLOR### ###display2_color###<br />

<!-- ###display_variant1### KLAPPT NICHT-->

<select style="font-size: 10px" name="###FIELD_COLOR_NAME###" rows="1">###PRODUCT_COLOR###</select><br />
<!-- ###display_variant1### -->

</div>
<div align="right">
<!-- -->
###GW2B### ###display_size_name### ###GW2E### ###display1_size### ###PRODUCT_SIZE### ####display2_size### <br />
<!-- ###display_variant2### KLAPPT NICHT -->
###GW2B### Größ: ###GW2E### <select style="font-size: 10px" name="###FIELD_SIZE_NAME###" rows="1">###PRODUCT_SIZE###</select><br />
<!-- ###display_variant2### -->

</div>
<div style="float:right;">
<input name="###FIELD_NAME###" type="hidden" id="###FIELD_NAME###" value="1" />
<input type="Submit" name="order" style="width:140px" value="In den Warenkorb" />
<!--<input type="submit" name="order" value="In den Warenkorb" onclick="if (!document.forms['###FORM_NAME###']['###FIELD_NAME###'].value!=''){document.forms['###FORM_NAME###']['###FIELD_NAME###'].value=1;};" />-->
<p style="font-size: 10px;"><a href="mailto:###SHOPADMIN_EMAIL###?subject=Frage zum Artikel: ###PRODUCT_TITLE###&body=Ich habe folgenden Artikel

gesehen: ###PRODUCT_TITLE### %0AMeine Fragen: "><b>Fragen zum Artikel</b></a></p>
</div>
</form>
</div>

Das klappt auch soweit ist aber nicht besonder elegant.

Nun meine Frage:
Wie kann ich in der class.tx_ttproducts_single_view.php ein Subpart einfügen und das temlate dazu bringen diesen dann auszugeben?

Oder ich liege ganz falsch und es gibt eine Möglichkeit den Subpart <!-- ###display_variant2### -->und <!-- ###display_variant1### --> im Templatteil ITEM_SINGLE_DISPLAY anzusprechen.

Gruss
r.b.

</div>
<div style="height:200px;">
<p>###GW2B###
<!--###LINK_ITEM###-->
<b><- zurück zur Liste</b>
<!--###LINK_ITEM###-->
###GW2E###</p>
</div>
<!-- ###ITEM_SINGLE_DISPLAY### end -->

Andrea_Herzog ·

Hallo,
eigentlich sollte es reichen, diesen Teil in dein Shop-Template einzufügen.

 ###GW2B### Farbauswahl: ###GW2E### <SELECT style="font-size: 10px"
  name="###FIELD_COLOR_NAME###" rows="1">###PRODUCT_COLOR###</SELECT><br>
  <!-- ###display_variant1### -->
  <!-- ###display_variant2### -->
  ###GW2B### Size: ###GW2E### <SELECT style="font-size: 10px"
  name="###FIELD_SIZE_NAME###" rows="1">###PRODUCT_SIZE###</SELECT><br> <!-- ###display_variant2### --><br />

Außerdem in das Setup des Shop Templates noch dies hier einzutragen. Dann sollte es gehen.

plugin.tt_products.useArticles = 1
plugin.tt_products.selectSize = 1

War das dein Problem?

club-basic ·

Hallo Andrea.

danke für das schnelle feedback, aber das war es nicht!

In der Listenansicht der Produkte, also wo alle artikel angezeigt werden, werden auch die variaten displays angezeigt aber wenn man dann ein produkt über den link produktnamen auswählt komme ich auf die einzelansicht und dort werden mir keine varianten angezeigt.

geht den das bei dir und kann ich mir das mal ansehen.

ich habe im feld Constants:
#PRODUCT TEMPLATES
plugin.tt_products.file.templateFile = fileadmin/tmpl_files/produkt_kiezshop.tmpl

plugin.tt_products.PIDitemDisplay = 68

plugin.tt_products.clickIntoBasket = 1

plugin.tt_products.PIDthanks = 65
plugin.tt_products.PIDbasket = 73

plugin.tt_products.PIDtracking = 70
plugin.tt_products.PIDbilling = 67
plugin.tt_products.PIDdelivery = 66
plugin.tt_products.PIDsearch = 78

plugin.tt_products.code.field = select_key
plugin.tt_products.update_code = ***

plugin.tt_products.orderEmail_htmlmail = 1
plugin.tt_products.orderEmail_from = info@club-basic.de
plugin.tt_products.orderEmail_fromName = Test kiezshop.de
plugin.tt_products.orderEmail_to = info@club-basic.de
plugin.tt_products.orderNumberPrefix = Kiezshop1_

plugin.tt_products.PIDagb =

und im SETUP:

config.stat = true
config.stat_mysql = true

plugin.tt_products.useArticles = 1

plugin.tt_products.selectSize = 1

# requiredInfoFields für Bestllungen
plugin.tt_products.requiredInfoFields = name, address, email

# ab hier noch nicht gemacht
plugin.tt_products {
payment >

shipping >
}

dies alles befindet sich im übergeordneten template
also hier "shop"
shop
Warenkorb
Geschenke
Kasse
Bestellungsstatus
Details des Artikels
memo
Rechnung
Lieferung
Vielen Dank
articles

gruss
r.b.

Andrea_Herzog ·

Diesen Teil für die Varianten musst du natürlich auch ind den Bereich des Templates mit der Single-Ansicht einbauen.
Kann es sein dass das bei dir fehlt?

club-basic ·

Wie meinst du das

Natürlich habe ich im tmpl den submarks eingebaut.

<br /><br /><br /><br /><hr /><br /><br /><br />
<h3>ITEM_SINGLE_DISPLAY</h3>
<em>This subpart is used to display single products.</em><br />
<br />
<br />
[b]<!-- ###ITEM_SINGLE_DISPLAY### begin This subpart is used to display single products. -->[/b]
<div style="height:10px;"> </div>
<div style="float:left"> <!--###LINK_PREV_SINGLE###-->###GW2B###<< voriger Artikel###GW2E###<!--###LINK_PREV_SINGLE###--> </div>
<div style="float:right"> <!--###LINK_NEXT_SINGLE###-->###GW2B###nächster Artikel >>###GW2E###<!--###LINK_NEXT_SINGLE###--> </div>
<div style="clear:both; height:10px; border-bottom:1px solid #808059;"> </div>


<div style="clear:both;">
          <!--###LINK_ITEM###-->
		 
		  ###GW1B###<b>###PRODUCT_TITLE###</b>
          <!--###LINK_ITEM###-->
		  <br />###PRODUCT_SUBTITLE### ###GW1E###

</div>  
<div style="float: left; width: 150px; border: 1px solid #999;">###PRODUCT_IMAGE### </div>

<div style="float: left; width: 380px; ">
	<div style="clear:both; height:60px; padding-left: 10px; width: 280px;">###GW2B### ###PRODUCT_NOTE### ###GW2E### 

	</div>
  	<div style="height:25px;" align="right">###GW1B###<b>Web-Preis:</b> <font color="red"> <strong>###PRICE_TAX### Euro</strong></font>###GW1E###<br />
	<!--	###GW2B###(Netto: ###PRICE_NO_TAX###)###GW2E###  --> </div>

	<div align="right">
	<form method="post" action="index.php?id=###PID_BASKET###">
	<!-- geändert da subpart nicht ansprechbar siehe tt_products_single_view.php Zeile 177 -->
	###GW2B### ###display_color_name### ###GW2E### ###display1_color### ###PRODUCT_COLOR###  ###display2_color###<br />
		[b]<!-- ###display_variant1### KLAPPT NICHT-->###GW2B### Farbe: ###GW2E###		<select style="font-size: 10px" name="###FIELD_COLOR_NAME###" rows="1">###PRODUCT_COLOR###</select><br />	<!-- ###display_variant1### -->[/b]		
	###GW2B### ###display_size_name### ###GW2E### ###display1_size### ###PRODUCT_SIZE### ####display2_size### <br />
		  [b]<!-- ###display_variant2### KLAPPT NICHT -->	  ###GW2B### Größ: ###GW2E### <select style="font-size: 10px" name="###FIELD_SIZE_NAME###" rows="1">###PRODUCT_SIZE###</select><br />   <!-- ###display_variant2### -->    [/b]
		<input name="###FIELD_NAME###" type="hidden" id="###FIELD_NAME###" value="1" /> 
		<input type="Submit" name="order" style="width:140px" value="In den Warenkorb" /> 
		<!--<input type="submit" name="order" value="In den Warenkorb" onclick="if (!document.forms['###FORM_NAME###']['###FIELD_NAME###'].value!=''){document.forms['###FORM_NAME###']['###FIELD_NAME###'].value=1;};" />-->
</form>

	<!-- siehe class.tx_ttproducts_single_view.php Zeile 217 heir wird PID_MEMO über eine Datenbankabfrage definiert -->
<form method="post" action="index.php?id=###PID_MEMO###">
	<input name="###FIELD_NAME###" type="hidden" id="###FIELD_NAME###" value="1" /> 
	<input name="addmemo" type="hidden" id="addmemo" value="###PRODUCT_ID###" /> 
		<input type="submit" name="addtomemo" style="width:140px" value="zur Vormerkliste" /> 
		</form>
      <a href="mailto:###SHOPADMIN_EMAIL###?subject=Frage zum Artikel: ###PRODUCT_TITLE###&body=Ich habe folgenden Artikel gesehen: ###PRODUCT_TITLE### Meine Fragen: "><b><font size="1">Fragen 
      zum Artikel</font></b></a> 		
	<p>###GW2B###
	<!--###LINK_ITEM###-->
	<b><- zurück zur Liste</b>
	<!--###LINK_ITEM###-->
	###GW2E###</p>
</div>
</div>
<div style="clear:both;"> </div>
[b]<!-- ###ITEM_SINGLE_DISPLAY### end -->[/b]
club-basic ·

Ich versteh zwar auch nicht warum bei mir die singelansicht nicht so angezeigt wird wie es sein soll, aber ich habe es jetzt so gemacht.

in der class.tx_ttproducts_article_div.php

$subpartArray['###display_variant_1###'] = $pibase->cObj->getSubpart($tempContent,'###display_variant_1###');

$subpartArray['###display_variant_2###'] = $pibase->cObj->getSubpart($tempContent,'###display_variant_2###');

und in der class.tx_ttproducts_single_view.php

##// Eingefügt am 10 März für size und farbe ausgabe auf der singel dispaly site

$id = t3lib_div::_GP('tt_products');
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*","tt_products ", "uid =  '".$id."' ");
$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
$color = $row['color'];
$size = $row['size'];


if($color != ""){
}else {
$subpartArray['###display_variant_1###'] = '';
}
if($size != ""){
}else {
$subpartArray['###display_variant_2###'] = '';
}
#ENDE

und im template

<!-- ###display_variant1### -->###GW2B### Farbe: ###GW2E###		<SELECT style="font-size: 10px" name="###FIELD_COLOR_NAME###" rows="1">###PRODUCT_COLOR###</SELECT><br>	<!-- ###display_variant1### -->

		  <!-- ###display_variant_2### -->	  ###GW2B### Gr&ouml;&szlig;: ###GW2E### <SELECT style="font-size: 10px" name="###FIELD_SIZE_NAME###" rows="1">###PRODUCT_SIZE###</SELECT><br>   <!-- ###display_variant_2### -->

fertig