products.tpl 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. {debug}
  2. {include file="orderforms/{$carttpl}/common.tpl"}
  3. <!-- Start of Template: orderforms/thurdata/products.tpl -->
  4. <div style="width: 100%;text-align:center; border-bottom:1px solid silver; color:gray;">
  5. <h1>Produkte bestellen</h1>
  6. </div>
  7. <br />
  8. {if count($products) < 4}
  9. <style rel="stylesheet" type="text/css">
  10. @media (min-width: 1400px) {
  11. #order-clouder {
  12. {if count($products) == 1}
  13. margin: 0 auto; max-width: 25%; width: 25%;
  14. {elseif count($products) == 2}
  15. margin: 0 auto; max-width: 50%; width: 50%;
  16. {elseif count($products) == 3}
  17. margin: 0 auto; max-width: 75%; width: 75%;
  18. {else}
  19. {/if}
  20. }
  21. }
  22. @media (min-width: 992px) and (max-width: 1399px) {
  23. #order-clouder {
  24. {if count($products) == 1}
  25. margin: 0 auto; max-width: 33%; width: 33%;
  26. {elseif count($products) == 2}
  27. margin: 0 auto; max-width: 75%; width: 75%;
  28. {else}
  29. {/if}
  30. }
  31. }
  32. </style>
  33. {/if}
  34. <div id="order-standard_cart">
  35. <div class="row">
  36. <div class="col-md-12">
  37. <div class="TM-categories-options justify-content-center" style="padding-bottom:20px">
  38. <form>
  39. Produktgruppe auswählen: <select name="gid" id="gidForm" onchange="javascript:redirectToCartPage()" class="form-control">
  40. <optgroup label="Product Categories">
  41. {foreach key=num item=productgroup from=$productgroups}
  42. <option value="{$productgroup.routePath}"{if $gid eq $productgroup.gid} selected="selected"{/if}>{$productgroup.name}</option>
  43. {/foreach}
  44. </optgroup>
  45. <optgroup label="Actions">
  46. {if $loggedin}
  47. <option value="{$WEB_ROOT}/cart.php?gid=addons"{if $gid eq "addons"} selected{/if}>{$LANG.cartproductaddons}</option>
  48. {if $renewalsenabled}
  49. <option value="{$WEB_ROOT}/cart.php?gid=renewals"{if $gid eq "renewals"} selected{/if}>{$LANG.domainrenewals}</option>
  50. {/if}
  51. {/if}
  52. {if $registerdomainenabled}
  53. <option value="{$WEB_ROOT}/cart.php?gid=registerdomain"{if $domain eq "register"} selected{/if}>{$LANG.navregisterdomain}</option>
  54. {/if}
  55. {if $transferdomainenabled}
  56. <option value="{$WEB_ROOT}/cart.php?gid=transferdomain"{if $domain eq "transfer"} selected{/if}>{$LANG.transferinadomain}</option>
  57. {/if}
  58. <option value="{$WEB_ROOT}/cart.php?a=view"{if $action eq "view"} selected{/if}>{$LANG.viewcart}</option>
  59. </optgroup>
  60. </select>
  61. </form>
  62. <br />
  63. <br />
  64. </div>
  65. {if file_exists("templates/orderforms/{$carttpl}/layouts/head.tpl")}
  66. {include file="templates/orderforms/{$carttpl}/layouts/head.tpl"}
  67. {/if}
  68. {if file_exists("templates/orderforms/{$carttpl}/layouts/head.tpl")}
  69. {else}
  70. <div class="header-lined">
  71. <h2>
  72. TEST {$productGroup.name}
  73. </h2>
  74. {if $productGroup.headline}
  75. <h4 class="text-muted">{$productGroup.headline}</h4>
  76. {/if}
  77. {if $productGroup.tagline}
  78. <p class="text-muted">{$productGroup.tagline}</p>
  79. {/if}
  80. </div>
  81. {/if}
  82. {if $errormessage}
  83. <div class="alert alert-danger">
  84. {$errormessage}
  85. </div>
  86. {elseif !$productGroup}
  87. <div class="alert alert-info">
  88. {lang key='orderForm.selectCategory'}
  89. </div>
  90. {/if}
  91. </div>
  92. <style>
  93. .flickity-button:hover {
  94. background-color: #0273d4;
  95. color:white;
  96. }
  97. .flickity-slider {
  98. height: 100%;
  99. min-height: 100%;
  100. }
  101. .flickity-slider > div {
  102. min-height: 100%;
  103. }
  104. .flickity-page-dots {
  105. position: relative;
  106. top: 30px;
  107. }
  108. .carousel-cell {
  109. height: 100%
  110. }
  111. .prefix {
  112. font-size:150%;
  113. font-family: Roboto;
  114. }
  115. .cost {
  116. font-size:250%;
  117. font-family: Roboto;
  118. font-weight:800;
  119. }
  120. .suffix {
  121. font-size:250%;
  122. font-weight:600;
  123. }
  124. .cycle {
  125. font-size:150%;
  126. font-family: Roboto;
  127. }
  128. </style>
  129. <div class="col-md-12">
  130. <div id="order-clouder" style="max-width:unset;width:unset;">
  131. <!-- <div id="products" class="cros-pricing-container"> -->
  132. {if $products|@count < 3}
  133. <div class="carousel" style="position:absolute;top:0px;left:0px;bottom:0px;right:0px;" data-flickity='{ "groupCells": true, "adaptiveHeight": true, "autoPlay": false, "prevNextButtons": false, "pageDots": false }'>
  134. {else}
  135. <div class="carousel" style="position:absolute;top:0px;left:0px;bottom:0px;right:0px;" data-flickity='{ "groupCells": true, "adaptiveHeight": true, "autoPlay": false }'>
  136. {/if}
  137. {foreach $products as $key => $product}
  138. <div class="carousell-cell" style="width:325px;height:100%;margin-right:25px;padding-left:20px;padding-right:20px;padding-bottom:20px;border:1px solid silver;border-radius:8px;" id="product{$product@iteration}">
  139. <!-- <div class="carousell-cell" style="width:325px;height:100% !important; margin-right:25px;border:1px solid silver;border-radius:8px;" id="product{$product@iteration}"> -->
  140. <table border="0" style="display: inline-table; table-layout:fixed; width:100%; visibility:visible;" cellpadding="0" cellspacing="5">
  141. <tr style="height:140px;">
  142. <td valign="top" style="max-height:140px !important;"> <!-- Title and description -->
  143. <!-- <div style="overflow:hidden;max-height:140px !important;"> -->
  144. <!-- Class defined in Custom CSS of Croster Panel -->
  145. <div class="producttitlediv">
  146. <h4 id="product{$product@iteration}-name" style="font-weight:700; font-family:Roboto; color:#2368AD;">{$product.name}</h4>
  147. {if $product.featuresdesc}
  148. {$product.featuresdesc}
  149. {else}
  150. <br />
  151. {/if}
  152. </div>
  153. </td>
  154. </tr>
  155. {if $product.bid}
  156. <tr>
  157. <td> <!-- Price Simple -->
  158. {$LANG.bundledeal}
  159. {if $product.displayprice}
  160. <span class="text-secondary bolder" style="font-size: 33px;">{$product.displayPriceSimple}</span>
  161. {/if}
  162. </td>
  163. </tr>
  164. {/if}
  165. <tr style="height:60px;">
  166. <td> <!-- Price -->
  167. {if $product.bid}
  168. {elseif $product.pricing.type eq 'free'}
  169. <mark style="font-size:160%;background-color:#2368AD;">{$LANG.orderfree}</mark>
  170. {elseif $product.paytype eq "onetime"}
  171. <span>{$product.pricing.onetime} </span>{$LANG.orderpaymenttermonetime}
  172. {else}
  173. {*
  174. {if $product.pricing.hasconfigoptions}
  175. {$LANG.from}
  176. {/if}
  177. *}
  178. <span>{$product.pricing.montly} </span>{$LANG.pricingCycleShort.monthly}
  179. {*
  180. {assign var="ccurrency" value=$product.pricing.minprice.price->getCurrency()}
  181. <span class="prefix" style="color:#2368AD;">{$ccurrency["prefix"]}</span>&nbsp;
  182. <span class="cost" style="color:#2368AD;">{$product.pricing.minprice.price->toNumeric()}</span>&nbsp;
  183. <span class="suffix" style="color:#2368AD;" >{$ccurrency["suffix"]}</span>
  184. <span class="cycle">
  185. {if $product.pricing.minprice.cycle eq "monthly"}
  186. /{$LANG.pricingCycleShort.monthly}
  187. {elseif $product.pricing.minprice.cycle eq "quarterly"}
  188. /{$LANG.pricingCycleShort.quarterly}
  189. {elseif $product.pricing.minprice.cycle eq "semiannually"}
  190. /{$LANG.pricingCycleShort.semiannually}
  191. {elseif $product.pricing.minprice.cycle eq "annually"}
  192. /{$LANG.pricingCycleShort.annually}
  193. {elseif $product.pricing.minprice.cycle eq "biennially"}
  194. /{$LANG.pricingCycleShort.biennially}
  195. {elseif $product.pricing.minprice.cycle eq "triennially"}
  196. /{$LANG.pricingCycleShort.triennially}
  197. {/if}
  198. </span>*}
  199. {/if}
  200. {if $product.pricing.minprice.setupFee}
  201. <div class="small text-muted">({$product.pricing.minprice.setupFee->toPrefixed()} {$LANG.ordersetupfee})</div>
  202. {/if}
  203. </td>
  204. </tr>
  205. <!-- <tr> <td> <br /></td> </tr> -->
  206. <tr>
  207. <td> <!-- Product Details -->
  208. <table class="plan-features collapse" id="PlanLists1" style="display:unset;">
  209. {foreach from=$product.features key=feature item=value}
  210. <tr>
  211. <td style="padding-right: 13px;"><b>{$feature}:</b></td>
  212. <td>
  213. {if $value == "Ja"}
  214. <i class="far fa-check-square" style="font-size:14px"></i>
  215. {elseif $value == "Nein"}
  216. <i class="far fa-square" style="font-size:14px"></i>
  217. {elseif $value == "Optional"}
  218. <i class="fas fa-plus" style="font-size:14px"></i>
  219. {else}
  220. {$value}
  221. {/if}
  222. </td>
  223. </tr>
  224. {/foreach}
  225. </table>
  226. {*
  227. <ul class="plan-features collapse" id="PlanLists1">
  228. {foreach from=$product.features key=feature item=value}
  229. <li>TD {$feature} <b>{$value}</b></li>
  230. {/foreach}
  231. </ul>
  232. *}
  233. {if $product.isFeatured}
  234. <!-- Popular plan sticker -->
  235. <div class="sticker-wrapper">
  236. <div class="sticker">
  237. {$LANG.featuredProduct}
  238. </div>
  239. </div>
  240. <!-- //End popular plan sticker-->
  241. {/if}
  242. </td>
  243. </tr>
  244. </table>
  245. {if $product.pricing.type eq 'free'}
  246. {if (count($clientActiveFree) + count($clientCardFree)) > (1 + (int)$clientsdetails.notes|strstr:"AddTrials="|truncate:11:""|replace:"AddTrials=":"")}
  247. <a href="{$WEB_ROOT}/submitticket.php?step=2&deptid=1&subject={$LANG.moretrials} {$product.name}" class="btn btn-primary btn-block" style="position:absolute; left:20px; bottom:10px; right:20px; height:40px; width:unset;padding-top:6.5px;">
  248. {$LANG.request}
  249. </a>
  250. {elseif in_array($product.pid, $clientPids) && !in_array($product.pid, $clientActiveFree)}
  251. <a href="{$WEB_ROOT}/submitticket.php?step=2&deptid=1&subject={$LANG.tryagain} {$product.name}" class="btn btn-primary btn-block" style="position:absolute; left:20px; bottom:10px; right:20px; height:40px; width:unset;padding-top:6.5px;">
  252. {$LANG.tryagain}
  253. </a>
  254. {elseif in_array($product.pid, $clientCardFree)}
  255. <a class="btn btn-primary btn-block" style="position:absolute; left:20px; bottom:10px; right:20px; height:40px; width:unset;padding-top:6.5px;pointer-events:none;">
  256. {$LANG.alreadyincard}
  257. </a>
  258. {elseif in_array($product.pid, $clientActiveFree)}
  259. <a href="{$WEB_ROOT}/clientarea.php?action=services" class="btn btn-primary btn-block" style="position:absolute; left:20px; bottom:10px; right:20px; height:40px; width:unset;padding-top:6.5px;" id="product{$product@iteration}-order-button">
  260. {$LANG.alreadyactive}
  261. </a>
  262. {else}
  263. <a href="{$WEB_ROOT}/cart.php?a=add&{if $product.bid}bid={$product.bid}{else}pid={$product.pid}{/if}" class="btn btn-primary btn-block" style="position:absolute; left:20px; bottom:10px; right:20px; height:40px; width:unset;padding-top:6.5px;" id="product{$product@iteration}-order-button">
  264. {$LANG.ordernowbutton}
  265. </a>
  266. {/if}
  267. {else}
  268. <a href="{$WEB_ROOT}/cart.php?a=add&{if $product.bid}bid={$product.bid}{else}pid={$product.pid}{/if}" class="btn btn-primary btn-block" style="position:absolute; left:20px; bottom:10px; right:20px; height:40px; width:unset;padding-top:6.5px;" id="product{$product@iteration}-order-button">
  269. {$LANG.ordernowbutton}
  270. </a>
  271. {/if}
  272. </table>
  273. </div>
  274. {/foreach}
  275. </div>
  276. <!-- </div> -->
  277. </div>
  278. {if count($productGroup.features) > 0}
  279. <div class="space-30"></div>
  280. <div class="block-s3">
  281. <div class="text-center">
  282. <h2 class="no-margin">{$LANG.orderForm.includedWithPlans}</h2>
  283. </div>
  284. </div>
  285. <hr class="separator"></hr>
  286. <div class="cart-features no-margin-top">
  287. <div class="includes-features">
  288. <ul class="list-features">
  289. {foreach $productGroup.features as $features}
  290. <li>{$features.feature}</li>
  291. {/foreach}
  292. </ul>
  293. </div>
  294. </div>
  295. {/if}
  296. </div>
  297. </div>
  298. </div>
  299. {if file_exists("templates/orderforms/{$carttpl}/layouts/foot.tpl")}
  300. {include file="templates/orderforms/{$carttpl}/layouts/foot.tpl"}
  301. {/if}
  302. <script type="text/javascript">
  303. $(document).ready(function() {
  304. $(".pricing-box").owlCarousel({
  305. {if count($products) == 1}
  306. responsive:{
  307. 0:{
  308. items:1,
  309. }
  310. }
  311. {elseif count($products) == 2}
  312. responsive:{
  313. 0:{
  314. items:1,
  315. },
  316. 768:{
  317. items:2,
  318. }
  319. }
  320. {elseif count($products) == 3}
  321. responsive:{
  322. 0:{
  323. items:1,
  324. },
  325. 768:{
  326. items:2,
  327. },
  328. 992:{
  329. items:3,
  330. }
  331. }
  332. {else}
  333. responsive:{
  334. 0:{
  335. items:1,
  336. },
  337. 768:{
  338. items:2,
  339. },
  340. 992:{
  341. items:3,
  342. },
  343. 1200:{
  344. items:4,
  345. }
  346. }
  347. {/if}
  348. });
  349. });
  350. function redirectToCartPage()
  351. {
  352. var path = jQuery('#gidForm').val();
  353. if (path) {
  354. window.location.href = path;
  355. }
  356. }
  357. </script>
  358. <!-- End of Template: orderforms/thurdata/products.tpl -->