OXID eShop CE 4.10.1 tpl/page/details/inc/productmain.tpl 
[{oxscript include="js/pages/details.min.js" priority=10}]
[{assign var="oConfig" value=$oViewConf->getConfig()}]
[{assign var="oManufacturer" value=$oView->getManufacturer()}]
[{assign var="aVariantSelections" value=$oView->getVariantSelections()}]
[{if $aVariantSelections && $aVariantSelections.rawselections}]
[{assign var="_sSelectionHashCollection" value=""}]
[{foreach from=$aVariantSelections.rawselections item=oSelectionList key=iKey}]
10  [{assign var="_sSelectionHash" value=""}]
11  [{foreach from=$oSelectionList item=oListItem key=iPos}]
12  [{assign var="_sSelectionHash" value=$_sSelectionHash|cat:$iPos|cat:":"|cat:$oListItem.hash|cat:"|"}]
13  [{/foreach}]
14  [{if $_sSelectionHash}]
15  [{if $_sSelectionHashCollection}][{assign var="_sSelectionHashCollection" value=$_sSelectionHashCollection|cat:","}][{/if}]
16  [{assign var="_sSelectionHashCollection" value=$_sSelectionHashCollection|cat:"'`$_sSelectionHash`'"}]
17  [{/if}]
18  [{/foreach}]
19  [{oxscript add="oxVariantSelections = [`$_sSelectionHashCollection`];"}]
20 
21  <form class="js-oxWidgetReload" action="[{$oView->getWidgetLink()}]" method="get">
22  <div>
23  [{$oViewConf->getHiddenSid()}]
24  [{$oViewConf->getNavFormParams()}]
25  <input type="hidden" name="cl" value="[{$oView->getClassName()}]">
26  <input type="hidden" name="oxwparent" value="[{$oViewConf->getTopActiveClassName()}]">
27  <input type="hidden" name="listtype" value="[{$oView->getListType()}]">
28  <input type="hidden" name="nocookie" value="1">
29  <input type="hidden" name="cnid" value="[{$oView->getCategoryId()}]">
30  <input type="hidden" name="anid" value="[{if !$oDetailsProduct->oxarticles__oxparentid->value}][{$oDetailsProduct->oxarticles__oxid->value}][{else}][{$oDetailsProduct->oxarticles__oxparentid->value}][{/if}]">
31  <input type="hidden" name="actcontrol" value="[{$oViewConf->getTopActiveClassName()}]">
32  </div>
33  </form>
34 [{/if}]
35 
36 [{oxhasrights ident="TOBASKET"}]
37  <form class="js-oxProductForm" action="[{$oViewConf->getSelfActionLink()}]" method="post">
38  <div class="hidden">
39  [{$oViewConf->getHiddenSid()}]
40  [{$oViewConf->getNavFormParams()}]
41  <input type="hidden" name="cl" value="[{$oViewConf->getTopActiveClassName()}]">
42  <input type="hidden" name="aid" value="[{$oDetailsProduct->oxarticles__oxid->value}]">
43  <input type="hidden" name="anid" value="[{$oDetailsProduct->oxarticles__oxnid->value}]">
44  <input type="hidden" name="parentid" value="[{if !$oDetailsProduct->oxarticles__oxparentid->value}][{$oDetailsProduct->oxarticles__oxid->value}][{else}][{$oDetailsProduct->oxarticles__oxparentid->value}][{/if}]">
45  <input type="hidden" name="panid" value="">
46  [{if !$oDetailsProduct->isNotBuyable()}]
47  <input type="hidden" name="fnc" value="tobasket">
48  [{/if}]
49  </div>
50 [{/oxhasrights}]
51 
52 <div class="detailsInfo clear" itemscope itemtype="http://schema.org/Product">
53  <div class="row">
54  <div class="col-xs-12 col-md-4 details-col-left">
55  [{* article picture with zoom *}]
56  [{block name="details_productmain_zoom"}]
57  [{oxscript include="js/libs/photoswipe.min.js" priority=8}]
58  [{oxscript include="js/libs/photoswipe-ui-default.min.js" priority=8}]
59  [{oxscript add="$( document ).ready( function() { if( !window.isMobileDevice() ) Flow.initDetailsEvents(); });"}]
60 
61  [{* Wird ausgeführt, wenn es sich um einen AJAX-Request handelt *}]
62  [{if $blWorkaroundInclude}]
63  [{oxscript add="$( document ).ready( function() { Flow.initEvents();});"}]
64  [{/if}]
65 
66  [{if $oView->showZoomPics()}]
67  [{* ToDo: This logical part should be ported into a core function. *}]
68  [{if $oConfig->getConfigParam('sAltImageUrl') || $oConfig->getConfigParam('sSSLAltImageUrl')}]
69  [{assign var="aPictureInfo" value=$oPictureProduct->getMasterZoomPictureUrl(1)|@getimagesize}]
70  [{else}]
71  [{assign var="sPictureName" value=$oPictureProduct->oxarticles__oxpic1->value}]
72  [{assign var="aPictureInfo" value=$oConfig->getMasterPicturePath("product/1/`$sPictureName`")|@getimagesize}]
73  [{/if}]
74 
75  <div class="picture text-center">
*** 
76  <a href="[{$oPictureProduct->getMasterZoomPictureUrl(1)}]" id="zoom1" data-width="[{$aPictureInfo.0}]" data-height="[{$aPictureInfo.1}]">
77  <img src="[{$oView->getActPicture()}]" alt="[{$oPictureProduct->oxarticles__oxtitle->value|strip_tags}] [{$oPictureProduct->oxarticles__oxvarselect->value|strip_tags}]" itemprop="image" class="img-responsive">
78  </a>
79  </div>
80  [{else}]
81  <div class="picture text-center">
82  <img src="[{$oView->getActPicture()}]" alt="[{$oPictureProduct->oxarticles__oxtitle->value|strip_tags}] [{$oPictureProduct->oxarticles__oxvarselect->value|strip_tags}]" itemprop="image" class="img-responsive">
83  </div>
84  [{/if}]
85  [{/block}]
86 
87  [{block name="details_productmain_morepics"}]
88  [{include file="page/details/inc/morepics.tpl"}]
89  [{/block}]
90  </div>
91 
92  <div class="col-xs-12 col-sm-8 col-md-5 col-lg-6 details-col-middle">
93  [{block name="details_productmain_title"}]
94  <h1 id="productTitle" itemprop="name">
95  [{$oDetailsProduct->oxarticles__oxtitle->value}] [{$oDetailsProduct->oxarticles__oxvarselect->value}]
96  </h1>
97  [{/block}]
98 
99  [{* article number *}]
100  [{block name="details_productmain_artnumber"}]
101  <span class="small text-muted">[{oxmultilang ident="ARTNUM" suffix="COLON"}] [{$oDetailsProduct->oxarticles__oxartnum->value}]</span>
102  [{/block}]
103 
104  [{* ratings *}]
105  <div class="star-ratings">
106  [{if $oView->ratingIsActive()}]
107  [{block name="details_productmain_ratings"}]
108  [{include file="widget/reviews/rating.tpl" itemid="anid=`$oDetailsProduct->oxarticles__oxnid->value`" sRateUrl=$oDetailsProduct->getLink()}]
109  [{/block}]
110  [{/if}]
111  </div>
112 
113  [{* short description *}]
114  [{block name="details_productmain_shortdesc"}]
115  [{oxhasrights ident="SHOWSHORTDESCRIPTION"}]
116  [{if $oDetailsProduct->oxarticles__oxshortdesc->rawValue}]
117  <p class="shortdesc" id="productShortdesc" itemprop="description">[{$oDetailsProduct->oxarticles__oxshortdesc->rawValue}]</p>
118  [{/if}]
119  [{/oxhasrights}]
120  [{/block}]
121 
122  [{* article main info block *}]
123  <div class="information" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
124  <div class="productMainInfo[{if $oManufacturer->oxmanufacturers__oxicon->value}] hasBrand[{/if}]">
125 
126  [{* additional info *}]
127  <div class="additionalInfo clearfix">
128  [{assign var="oUnitPrice" value=$oDetailsProduct->getUnitPrice()}]
129  [{block name="details_productmain_priceperunit"}]
130  [{if $oUnitPrice}]
131  <span id="productPriceUnit">[{oxprice price=$oUnitPrice currency=$currency}]/[{$oDetailsProduct->getUnitName()}]</span>
132  [{/if}]
133  [{/block}]
134  </div>
135 
136  [{if $oDetailsProduct->oxarticles__oxweight->value}]
137  <div class="weight">
138  [{block name="details_productmain_weight"}]
139  [{oxmultilang ident="WEIGHT" suffix="COLON"}] [{$oDetailsProduct->oxarticles__oxweight->value}] [{oxmultilang ident="KG"}]
140  [{/block}]
141  </div>
142  [{/if}]
143 
144  [{block name="details_productmain_vpe"}]
145  [{if $oDetailsProduct->oxarticles__oxvpe->value > 1}]
146  <span class="vpe small">[{oxmultilang ident="DETAILS_VPE_MESSAGE_1"}] [{$oDetailsProduct->oxarticles__oxvpe->value}] [{oxmultilang ident="DETAILS_VPE_MESSAGE_2"}]</span>
147  <br>
148  [{/if}]
149  [{/block}]
150 
151  [{assign var="blCanBuy" value=true}]
152  [{* variants | md variants *}]
153  [{block name="details_productmain_variantselections"}]
154  [{if $aVariantSelections && $aVariantSelections.selections}]
155  [{oxscript include="js/widgets/oxajax.min.js" priority=10 }]
156  [{oxscript include="js/widgets/oxarticlevariant.min.js" priority=10 }]
157  [{oxscript add="$( '#variants' ).oxArticleVariant();"}]
158  [{assign var="blCanBuy" value=$aVariantSelections.blPerfectFit}]
159  [{if !$blHasActiveSelections}]
160  [{if !$blCanBuy && !$oDetailsProduct->isParentNotBuyable()}]
161  [{assign var="blCanBuy" value=true}]
162  [{/if}]
163  [{/if}]
164  <div id="variants" class="selectorsBox js-fnSubmit clear">
165  [{assign var="blHasActiveSelections" value=false}]
166  [{foreach from=$aVariantSelections.selections item=oList key=iKey}]
167  [{if $oList->getActiveSelection()}]
168  [{assign var="blHasActiveSelections" value=true}]
169  [{/if}]
170  [{include file="widget/product/selectbox.tpl" oSelectionList=$oList iKey=$iKey blInDetails=true}]
171  <div class="clearfix"></div>
172  [{/foreach}]
173  </div>
174  [{/if}]
175  [{/block}]
176  </div>
177 
178  [{* selection lists *}]
179  [{block name="details_productmain_selectlists"}]
180  [{if $oViewConf->showSelectLists()}]
181  [{assign var="oSelections" value=$oDetailsProduct->getSelections()}]
182  [{if $oSelections}]
183  <div class="selectorsBox js-fnSubmit clear" id="productSelections">
184  [{foreach from=$oSelections item=oList name=selections}]
185  [{include file="widget/product/selectbox.tpl" oSelectionList=$oList sFieldName="sel" iKey=$smarty.foreach.selections.index blHideDefault=true sSelType="seldrop"}]
186  [{/foreach}]
187  </div>
188  [{/if}]
189  [{/if}]
190  [{/block}]
191 
192  <div class="pricebox">
193  [{block name="details_productmain_tprice"}]
194  [{oxhasrights ident="SHOWARTICLEPRICE"}]
195  [{assign var=tprice value=$oDetailsProduct->getTPrice()}]
196  [{assign var=price value=$oDetailsProduct->getPrice()}]
197  [{if $tprice && $tprice->getBruttoPrice() > $price->getBruttoPrice()}]
198  <del>[{$oDetailsProduct->getFTPrice()}] [{$currency->sign}]</del>
199  <br/>
200  [{/if}]
201  [{/oxhasrights}]
202  [{/block}]
203 
204  [{block name="details_productmain_watchlist"}][{/block}]
205 
206  [{block name="details_productmain_price"}]
207  [{oxhasrights ident="SHOWARTICLEPRICE"}]
208  [{block name="details_productmain_price_value"}]
209  [{if $oDetailsProduct->getFPrice()}]
210  <label id="productPrice" class="price">
211  [{assign var="sFrom" value=""}]
212  [{assign var="fPrice" value=$oDetailsProduct->getFPrice()}]
213  [{if $oDetailsProduct->isParentNotBuyable()}]
214  [{assign var="fPrice" value=$oDetailsProduct->getFVarMinPrice()}]
215  [{if $oDetailsProduct->isRangePrice()}]
216  [{assign var="sFrom" value="PRICE_FROM"|oxmultilangassign}]
217  [{/if}]
218  [{/if}]
219  <span[{if $tprice && $tprice->getBruttoPrice() > $price->getBruttoPrice()}] class="text-danger"[{/if}]>
220  <span class="price-from">[{$sFrom}]</span>
221  <span class="price">[{$fPrice}]</span>
222  <span class="currency">[{$currency->sign}]</span>
223  [{if $oView->isVatIncluded()}]
224  <span class="price-markup">*</span>
225  [{/if}]
226  <span class="hidden">
227  <span itemprop="price">[{$fPrice}] [{$currency->sign}]</span>
228  </span>
229  </span>
230  </label>
231  [{/if}]
232  [{if $oDetailsProduct->loadAmountPriceInfo()}]
233  [{include file="page/details/inc/priceinfo.tpl"}]
234  [{/if}]
235  [{/block}]
236  [{/oxhasrights}]
237  [{/block}]
238  </div>
239 
240  <div class="tobasket">
241  [{* pers params *}]
242  [{block name="details_productmain_persparams"}]
243  [{if $oView->isPersParam()}]
244  <div class="persparamBox clear form-group">
245  <label for="persistentParam" class="control-label">[{oxmultilang ident="LABEL"}]</label>
246  <input type="text" id="persistentParam" name="persparam[details]" value="[{$oDetailsProduct->aPersistParam.text}]" size="35" class="form-control">
247  </div>
248  [{/if}]
249  [{/block}]
250 
251  [{block name="details_productmain_tobasket"}]
252  <div class="tobasketFunction clear">
253  [{oxhasrights ident="TOBASKET"}]
254  [{if !$oDetailsProduct->isNotBuyable()}]
255  <div class="input-group">
256  <input id="amountToBasket" type="text" name="am" value="1" autocomplete="off" class="form-control">
257  <div class="input-group-tweak">
258  <button id="toBasket" type="submit" [{if !$blCanBuy}]disabled="disabled"[{/if}] class="btn btn-primary submitButton largeButton"><i class="fa fa-shopping-cart"></i> [{oxmultilang ident="TO_CART"}]</button>
259  </div>
260  </div>
261  [{/if}]
262  [{/oxhasrights}]
263  </div>
264  [{/block}]
265 
266  [{block name="details_productmain_stockstatus"}]
267  [{if $oDetailsProduct->getStockStatus() == -1}]
268  <span class="stockFlag notOnStock">
269  <i class="fa fa-circle text-danger"></i>
270  [{if $oDetailsProduct->oxarticles__oxnostocktext->value}]
271  <link itemprop="availability" href="http://schema.org/OutOfStock"/>
272  [{$oDetailsProduct->oxarticles__oxnostocktext->value}]
273  [{elseif $oViewConf->getStockOffDefaultMessage()}]
274  <link itemprop="availability" href="http://schema.org/OutOfStock"/>
275  [{oxmultilang ident="MESSAGE_NOT_ON_STOCK"}]
276  [{/if}]
277  [{if $oDetailsProduct->getDeliveryDate()}]
278  <link itemprop="availability" href="http://schema.org/PreOrder"/>
279  [{oxmultilang ident="AVAILABLE_ON"}] [{$oDetailsProduct->getDeliveryDate()}]
280  [{/if}]
281  </span>
282  [{elseif $oDetailsProduct->getStockStatus() == 1}]
283  <link itemprop="availability" href="http://schema.org/InStock"/>
284  <span class="stockFlag lowStock">
285  <i class="fa fa-circle text-warning"></i> [{oxmultilang ident="LOW_STOCK"}]
286  </span>
287  [{elseif $oDetailsProduct->getStockStatus() == 0}]
288  <span class="stockFlag">
289  <link itemprop="availability" href="http://schema.org/InStock"/>
290  <i class="fa fa-circle text-success"></i>
291  [{if $oDetailsProduct->oxarticles__oxstocktext->value}]
292  [{$oDetailsProduct->oxarticles__oxstocktext->value}]
293  [{elseif $oViewConf->getStockOnDefaultMessage()}]
294  [{oxmultilang ident="READY_FOR_SHIPPING"}]
295  [{/if}]
296  </span>
297  [{/if}]
298  [{/block}]
299 
300  [{oxhasrights ident="TOBASKET"}]
301  [{if $oDetailsProduct->isBuyable()}]
302  <span class="deliverytime">
303  [{block name="details_productmain_deliverytime"}]
304  [{include file="page/details/inc/deliverytime.tpl"}]
305  [{/block}]
306  </span>
307  [{/if}]
308  [{/oxhasrights}]
309 
310  [{block name="details_productmain_social"}]
311  <div class="social">
312  [{if ( $oView->isActive('FbShare') || $oView->isActive('FbLike') && $oViewConf->getFbAppId() )}]
313  [{if $oView->isActive('FacebookConfirm') && !$oView->isFbWidgetVisible() }]
314  <div class="socialButton" id="productFbShare">
315  [{include file="widget/facebook/enable.tpl" source="widget/facebook/share.tpl" ident="#productFbShare"}]
316  [{include file="widget/facebook/like.tpl" assign="fbfile"}]
317  [{assign var='fbfile' value=$fbfile|strip|escape:'url'}]
318  [{oxscript add="oxFacebook.buttons['#productFbLike']={html:'`$fbfile`',script:''};"}]
319  </div>
320  <div class="socialButton" id="productFbLike"></div>
321  [{else}]
322  <div class="socialButton" id="productFbShare">
323  [{include file="widget/facebook/enable.tpl" source="widget/facebook/share.tpl" ident="#productFbShare"}]
324  </div>
325  <div class="socialButton" id="productFbLike">
326  [{include file="widget/facebook/enable.tpl" source="widget/facebook/like.tpl" ident="#productFbLike"}]
327  </div>
328  [{/if}]
329  [{/if}]
330  </div>
331  [{/block}]
332  </div>
333  </div>
334  </div>
335 
336  <div class="col-xs-12 col-sm-4 col-md-3 col-lg-2 details-col-right">
337  [{if $oManufacturer}]
338  <div class="brandLogo">
339  [{block name="details_productmain_manufacturersicon"}]
340  <a href="[{$oManufacturer->getLink()}]" title="[{$oManufacturer->oxmanufacturers__oxtitle->value}]">
341  [{if $oManufacturer->oxmanufacturers__oxicon->value}]
342  <img src="[{$oManufacturer->getIconUrl()}]" alt="[{$oManufacturer->oxmanufacturers__oxtitle->value}]">
343  [{/if}]
344  </a>
345  <span itemprop="brand" class="hidden">[{$oManufacturer->oxmanufacturers__oxtitle->value}]</span>
346  [{/block}]
347  </div>
348  [{/if}]
349 
350  [{assign var="oSession" value=$oConfig->getSession()}]
351 
352  [{block name="details_productmain_productlinksselector"}]
353  [{block name="details_productmain_productlinks"}]
354  <ul class="list-unstyled action-links">
355  <li>
356  [{if $oViewConf->getShowCompareList()}]
357  [{oxid_include_dynamic file="page/details/inc/compare_links.tpl" testid="" type="compare" aid=$oDetailsProduct->oxarticles__oxid->value anid=$oDetailsProduct->oxarticles__oxnid->value in_list=$oDetailsProduct->isOnComparisonList() page=$oView->getActPage() text_to_id="COMPARE" text_from_id="REMOVE_FROM_COMPARE_LIST"}]
358  [{/if}]
359  </li>
360  <li>
361  <a id="suggest" href="[{oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=suggest" params="anid=`$oDetailsProduct->oxarticles__oxnid->value`"|cat:$oViewConf->getNavUrlParams()}]">[{oxmultilang ident="RECOMMEND"}]</a>
362  </li>
363  <li>
364  [{if $oViewConf->getShowListmania()}]
365  [{if $oxcmp_user}]
366  <a id="recommList" href="[{oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=recommadd" params="aid=`$oDetailsProduct->oxarticles__oxnid->value`&amp;anid=`$oDetailsProduct->oxarticles__oxnid->value`"|cat:$oViewConf->getNavUrlParams()|cat:"&amp;stoken="|cat:$oSession->getSessionChallengeToken()}]">[{oxmultilang ident="ADD_TO_LISTMANIA_LIST"}]</a>
367  [{else}]
368  <a id="loginToRecommlist" href="[{oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=account" params="anid=`$oDetailsProduct->oxarticles__oxnid->value`"|cat:"&amp;sourcecl="|cat:$oViewConf->getTopActiveClassName()|cat:$oViewConf->getNavUrlParams()}]">[{oxmultilang ident="ADD_TO_LISTMANIA_LIST"}]</a>
369  [{/if}]
370  [{/if}]
371  </li>
372  <li>
373  [{if $oxcmp_user}]
374  <a id="linkToNoticeList" href="[{oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl="|cat:$oViewConf->getTopActiveClassName() params="aid=`$oDetailsProduct->oxarticles__oxnid->value`&amp;anid=`$oDetailsProduct->oxarticles__oxnid->value`&amp;fnc=tonoticelist&amp;am=1"|cat:$oViewConf->getNavUrlParams()|cat:"&amp;stoken="|cat:$oSession->getSessionChallengeToken()}]">[{oxmultilang ident="ADD_TO_WISH_LIST"}]</a>
375  [{else}]
376  <a id="loginToNotice" href="[{oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=account" params="anid=`$oDetailsProduct->oxarticles__oxnid->value`"|cat:"&amp;sourcecl="|cat:$oViewConf->getTopActiveClassName()|cat:$oViewConf->getNavUrlParams()}]">[{oxmultilang ident="ADD_TO_WISH_LIST"}]</a>
377  [{/if}]
378  </li>
379  <li>
380  [{if $oViewConf->getShowWishlist()}]
381  [{if $oxcmp_user}]
382  <a id="linkToWishList" href="[{oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl="|cat:$oViewConf->getTopActiveClassName() params="aid=`$oDetailsProduct->oxarticles__oxnid->value`&anid=`$oDetailsProduct->oxarticles__oxnid->value`&amp;fnc=towishlist&amp;am=1"|cat:$oViewConf->getNavUrlParams()|cat:"&amp;stoken="|cat:$oSession->getSessionChallengeToken()}]">[{oxmultilang ident="ADD_TO_GIFT_REGISTRY"}]</a>
383  [{else}]
384  <a id="loginToWish" href="[{oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=account" params="anid=`$oDetailsProduct->oxarticles__oxnid->value`"|cat:"&amp;sourcecl="|cat:$oViewConf->getTopActiveClassName()|cat:$oViewConf->getNavUrlParams()}]">[{oxmultilang ident="ADD_TO_GIFT_REGISTRY"}]</a>
385  [{/if}]
386  [{/if}]
387  </li>
388  <li>
389  [{mailto extra='id="questionMail"' address=$oDetailsProduct->oxarticles__oxquestionemail->value|default:$oxcmp_shop->oxshops__oxinfoemail->value subject='QUESTIONS_ABOUT_THIS_PRODUCT'|oxmultilangassign|cat:" "|cat:$oDetailsProduct->oxarticles__oxartnum->value text='QUESTIONS_ABOUT_THIS_PRODUCT'|oxmultilangassign}]
390  </li>
391  </ul>
392  [{/block}]
393  [{/block}]
394  </div>
395  </div>
396 </div>
397 
398 [{oxhasrights ident="TOBASKET"}]
399  </form>
400 [{/oxhasrights}]
 
1 lines changed or deleted