viewcart.tpl 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913
  1. <!-- templates/orderforms/thurdata/viewcart.tpl -->
  2. {if $smarty.post.onepageorder == "1"}
  3. {if $action eq 'checkout'}
  4. {include file="orderforms/{$carttpl}/checkout.tpl"}
  5. {else}
  6. <div class="cartsummary_cont">
  7. <div class="heading">
  8. <ul>
  9. <li>
  10. {$LANG.orderdesc}
  11. </li>
  12. <li>
  13. {$LANG.orderprice}
  14. </li>
  15. </ul>
  16. </div>
  17. <div class="summary_body">
  18. {if $errormessage}
  19. <div class="errorbox" style="display:block;">
  20. {$errormessage|replace:'<li>':' &nbsp;#&nbsp; '} &nbsp;#&nbsp;
  21. </div>
  22. {elseif $promotioncode && $rawdiscount eq "0.00"}
  23. <div class="errorbox" style="display:block;">
  24. {$LANG.promoappliedbutnodiscount}
  25. </div>
  26. {/if}
  27. <div class="cart-contents collapse" id="CartContents">
  28. {if $cartitems == 0}
  29. <div class="emptycart">
  30. {$LANG.cartempty}
  31. </div>
  32. {/if}
  33. {foreach $products as $num => $product}
  34. <div class="summary_products">
  35. <ul>
  36. <li>
  37. <span class="product-group">{$product.productinfo.groupname}</span>
  38. <span class="product-name">{$product.productinfo.name}</span>
  39. {if $product.domain}<span class="product-domain text-muted">{$product.domain}</span>{/if}
  40. </li>
  41. <li>{$product.pricing.baseprice}{if $product.proratadate}<br />({$LANG.orderprorata} {$product.proratadate}){/if}</li>
  42. </ul>
  43. {if $product.configoptions}
  44. <div class="configurableoptions">
  45. {foreach key=confnum item=configoption from=$product.configoptions}
  46. <div class="clearfix">
  47. <span class="pull-left float-left">&nbsp;&raquo; {$configoption.name}: {$configoption.optionname}</span>
  48. <span class="pull-right float-right">{$configoption.recurring} {* {if $configoption.setup} + {$configoption.setup} {$LANG.ordersetupfee}{/if} *}</span>
  49. </div>
  50. {/foreach}
  51. </div>
  52. {/if}
  53. {foreach $product.addons as $addonnum => $addon}
  54. <div class="clearfix">
  55. <span class="pull-left float-left">+ {$addon.name}</span></li>
  56. <span class="pull-right float-right">{$addon.recurring}</span></li>
  57. </div>
  58. {/foreach}
  59. </div>
  60. {/foreach}
  61. {foreach $addons as $num => $addon}
  62. <div class="summary_addons">
  63. <div class="clearfix">
  64. <span class="pull-left float-left">+ {$addon.name}<br />{$addon.productname}{if $addon.domainname} - {$addon.domainname}<br />{/if}</span>
  65. <span class="pull-right float-right">{$addon.recurring}</span>
  66. </div>
  67. </div>
  68. {/foreach}
  69. {foreach $domains as $num => $domain}
  70. <div class="summary_domains">
  71. <div class="clearfix">
  72. <span class="pull-left float-left">
  73. {if $domain.type eq "register"}{$LANG.orderdomainregistration}{else}{$LANG.orderdomaintransfer}{/if} - <br /><strong>{$domain.domain}</strong> - {$domain.regperiod} {$LANG.orderyears}<br />
  74. {if $domain.dnsmanagement}&nbsp;&raquo; {$LANG.domaindnsmanagement}<br />{/if}
  75. {if $domain.emailforwarding}&nbsp;&raquo; {$LANG.domainemailforwarding}<br />{/if}
  76. {if $domain.idprotection}&nbsp;&raquo; {$LANG.domainidprotection}<br />{/if}
  77. </span>
  78. <span class="pull-right float-right">{$domain.price}</span>
  79. </div>
  80. </div>
  81. {/foreach}
  82. {foreach $renewals as $num => $domain}
  83. <div class="summary_domains">
  84. <ul>
  85. <li>
  86. <strong>{$LANG.domainrenewal}</strong><br /><i>{$domain.domain} - {$domain.regperiod} {$LANG.orderyears}</i><br />
  87. {if $domain.dnsmanagement}&nbsp;&raquo; {$LANG.domaindnsmanagement}<br />{/if}
  88. {if $domain.emailforwarding}&nbsp;&raquo; {$LANG.domainemailforwarding}<br />{/if}
  89. {if $domain.idprotection}&nbsp;&raquo; {$LANG.domainidprotection}<br />{/if}
  90. </li>
  91. <li>{$domain.price}</li>
  92. </ul>
  93. </div>
  94. {/foreach}
  95. {if $product.pricing.setup || $product.pricing.recurring || $product.pricing.addons}
  96. <div class="subtotal">
  97. {if $product.pricing.setup}
  98. <div class="clearfix">
  99. <span class="pull-left float-left">{$LANG.cartsetupfees}:</span>
  100. <span class="pull-right float-right">{$product.pricing.setup}</span>
  101. </div>
  102. {/if}
  103. {foreach from=$product.pricing.recurringexcltax key=cycle item=recurring}
  104. <div class="clearfix">
  105. <span class="pull-left float-left text-muted">{$cycle}:</span>
  106. <span class="pull-right float-right text-muted">{$recurring}</span>
  107. </div>
  108. {/foreach}
  109. </div>
  110. {/if}
  111. <div class="subtotal">
  112. <ul>
  113. <li>{$LANG.ordersubtotal}</li>
  114. <li>{$subtotal}</li>
  115. </ul>
  116. </div>
  117. {if $promotioncode}
  118. <div class="promotion">
  119. <ul>
  120. <li>{$promotiondescription}</li>
  121. <li>- {$discount}</li>
  122. </ul>
  123. </div>
  124. {/if}
  125. <div class="subtotal">
  126. {if $taxrate}
  127. <ul>
  128. <li>{$taxname} @ {$taxrate}%</li>
  129. <li>{$taxtotal}</li>
  130. </ul>
  131. {/if}
  132. {if $taxrate2}
  133. <ul>
  134. <li>{$taxname2} @ {$taxrate2}%</li>
  135. <li>{$taxtotal2}</li>
  136. </ul>
  137. {/if}
  138. </div>
  139. </div>
  140. <div class="total">
  141. <div class="d-flex align-items-center">
  142. <button type="button" class="btn btn-cart-contents"><i class="fas fa-chevron-up"></i></button>
  143. </div>
  144. <ul>
  145. <li><span class="text-muted total-text">{$LANG.ordertotalduetoday}</span></li>
  146. <li>{$total}</li>
  147. </ul>
  148. </div>
  149. <div class="cart-loader">
  150. <i class="fad fa-circle-notch fa-spin fa-2x"></i>
  151. </div>
  152. </div>
  153. </div>
  154. {/if}
  155. {else}
  156. {if $checkout} {else}
  157. <script>
  158. // Define state tab index value
  159. var statesTab = 10;
  160. var stateNotRequired = true;
  161. </script>
  162. {include file="orderforms/{$carttpl}/common.tpl"}
  163. <script type="text/javascript" src="{$orderform.assetPath.js}/StatesDropdown.js"></script>
  164. {/if}
  165. {if $cartitems > 0}
  166. {if file_exists("templates/orderforms/{$carttpl}/layouts/head.tpl")}
  167. {include file="templates/orderforms/{$carttpl}/layouts/head.tpl"}
  168. {/if}
  169. {/if}
  170. <div id="order-standard_cart">
  171. {if $cartitems > 0}
  172. <div class="row">
  173. <div class="col-md-12">
  174. {if file_exists("templates/orderforms/{$carttpl}/layouts/head.tpl")}
  175. {else}
  176. <div class="header-lined">
  177. <h1>{if !$checkout}{$LANG.cartreviewcheckout}{else}{$LANG.orderForm.checkout}{/if}</h1>
  178. </div>
  179. {/if}
  180. {include file="orderforms/{$carttpl}/sidebar-categories-collapsed.tpl"}
  181. </div>
  182. <div class="col-md-12">
  183. <div class="row ajaxcart_cont">
  184. <div class="col-md-8 col-lg-9">
  185. {if $checkout} {else}
  186. {if $promoerrormessage}
  187. <div class="alert alert-warning text-center" role="alert">
  188. {$promoerrormessage}
  189. </div>
  190. {elseif $errormessage}
  191. <div class="alert alert-danger" role="alert">
  192. <p>{$LANG.orderForm.correctErrors}:</p>
  193. <ul>
  194. {$errormessage}
  195. </ul>
  196. </div>
  197. {elseif $promotioncode && $rawdiscount eq "0.00"}
  198. <div class="alert alert-info text-center" role="alert">
  199. {$LANG.promoappliedbutnodiscount}
  200. </div>
  201. {elseif $promoaddedsuccess}
  202. <div class="alert alert-success text-center" role="alert">
  203. {$LANG.orderForm.promotionAccepted}
  204. </div>
  205. {/if}
  206. {if $bundlewarnings}
  207. <div class="alert alert-warning" role="alert">
  208. <strong>{$LANG.bundlereqsnotmet}</strong><br />
  209. <ul>
  210. {foreach from=$bundlewarnings item=warning}
  211. <li>{$warning}</li>
  212. {/foreach}
  213. </ul>
  214. </div>
  215. {/if}
  216. <form method="post" action="{$smarty.server.PHP_SELF}?a=view">
  217. <div class="panel panel-default cart-item">
  218. <div class="panel-heading">
  219. <div class="row">
  220. <div class="{if $showqtyoptions}col-sm-5{else}col-sm-7{/if} col-xs-7">
  221. <strong>{$LANG.orderForm.productOptions}</strong>
  222. </div>
  223. {if $showqtyoptions}
  224. <div class="col-sm-2 hidden-xs d-none d-sm-block text-center">
  225. <strong>{$LANG.orderForm.qty}</strong>
  226. </div>
  227. {/if}
  228. <div class="col-sm-4 col-xs-5 col-5 text-right">
  229. <strong>{$LANG.orderForm.priceCycle}</strong>
  230. </div>
  231. </div>
  232. </div>
  233. <div class="no-border no-margin">
  234. {foreach $products as $num => $product}
  235. <div class="panel-body">
  236. <div class="row">
  237. <div class="{if $showqtyoptions}col-sm-5{else}col-sm-7{/if} col-xs-7 col-7">
  238. <span class="item-group">
  239. {$product.productinfo.groupname}
  240. </span>
  241. <span class="item-title">
  242. {$product.productinfo.name}
  243. <a href="{$smarty.server.PHP_SELF}?a=confproduct&i={$num}" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.edit}">
  244. <i class="fas fa-edit"></i>
  245. </a>
  246. <span class="visible-xs-inline d-inline d-sm-none">
  247. <button type="button" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.remove}" onclick="removeItem('p', '{$num}')">
  248. <i class="fas fa-trash-alt"></i>
  249. </button>
  250. </span>
  251. </span>
  252. {if $product.domain}
  253. <span class="item-domain">
  254. {$product.domain}
  255. </span>
  256. {/if}
  257. {if $product.customfields}
  258. <span class="item-domain">
  259. {if $product.productinfo.gid === 5 || $product.productinfo.gid === 7} {* Groupware & VDC*}
  260. &nbsp; {$product.customfields.0.value} {* maildomain & VDC Name *}
  261. {else if $product.productinfo.gid === 1 || $product.productinfo.gid === 8} {* private Mail & private Mail + Nextcloud*}
  262. &nbsp; {$product.customfields.2.value}@{$product.customfields.3.value} {* mailadress *}
  263. {/if}
  264. </span>
  265. {/if}
  266. {if $product.configoptions}
  267. <div class="item-configoption">
  268. <small>
  269. {foreach key=confnum item=configoption from=$product.configoptions}
  270. &nbsp;&raquo; {$configoption.name}: {if $configoption.type eq 1 || $configoption.type eq 2}{$configoption.option}{elseif $configoption.type eq 3}{if $configoption.qty}{$configoption.option}{else}{$LANG.no}{/if}{elseif $configoption.type eq 4}{$configoption.qty} x {$configoption.option}{/if}<br />
  271. {/foreach}
  272. </small>
  273. </div>
  274. {/if}
  275. </div>
  276. {if $showqtyoptions}
  277. <div class="col-sm-4 item-qty" style="padding-top: 15px; font-size:13px;">
  278. {if $product.allowqty}
  279. Anzahl&nbsp; <input type="number" name="qty[{$num}]" value="{$product.qty}" class="form-control text-center" style="width:53px;height:25px !important; padding-left:1px; padding-right:1px;" min="0" />
  280. <button type="submit" class="btn btn-default btn-xs" style="height:25px !important; padding-top: 2px;">
  281. {$LANG.orderForm.update}
  282. </button>
  283. {/if}
  284. </div>
  285. {/if}
  286. <div class="col-sm-4 item-price">
  287. <span>{$product.pricing.totalTodayExcludingTaxSetup}</span>
  288. <span class="cycle">
  289. {if $product.pricing.totaltoday->toNumeric() != 0.00}
  290. {$product.billingcyclefriendly}
  291. {if $product.pricing.productonlysetup}
  292. <br />
  293. + {$product.pricing.productonlysetup->toPrefixed()} {$LANG.ordersetupfee}
  294. {/if}
  295. {if $product.proratadate}<br />({$LANG.orderprorata} {$product.proratadate}){/if}
  296. {/if}
  297. </span>
  298. </div>
  299. <div class="col-sm-1 hidden-xs d-none d-sm-block">
  300. <button type="button" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.remove}" onclick="removeItem('p', '{$num}')">
  301. <i class="fas fa-trash-alt"></i>
  302. </button>
  303. </div>
  304. </div>
  305. {foreach $product.addons as $addonnum => $addon}
  306. <div class="item-addons">
  307. <div class="row">
  308. <div class="{if $showAddonQtyOptions}col-sm-3{else}col-sm-6{/if}">
  309. <span class="item-group">
  310. {$LANG.orderaddon}
  311. </span>
  312. <span class="item-title">
  313. {$addon.name}
  314. </span>
  315. {if $addon.setup}
  316. <span class="item-setup">
  317. {$addon.setup} {$LANG.ordersetupfee}
  318. </span>
  319. {/if}
  320. </div>
  321. <!-- Addon Quantity Options -->
  322. {if $showAddonQtyOptions}
  323. <div class="col-sm-4 item-qty" style="padding-top: 15px; font-size:13px;">
  324. {if $addon.allowqty === 2}
  325. Anzahl&nbsp; <input type="number" name="paddonqty[{$num}][{$addonnum}]" value="{$addon.qty}" class="form-control text-center" style="width:53px;height:25px !important; padding-left:1px; padding-right:1px;" min="0" />
  326. <!-- <button type="submit" class="btn btn-xs"> -->
  327. <button type="submit" class="btn btn-default btn-xs" style="height:25px !important; padding-top: 2px;">
  328. {$LANG.orderForm.update}
  329. </button>
  330. {/if}
  331. </div>
  332. {/if}
  333. <div class="col-sm-4 item-price">
  334. <span>{$addon.recurring}</span>
  335. <span class="cycle">{$addon.billingcyclefriendly}</span>
  336. </div>
  337. <div class="col-sm-1 hidden-xs d-none d-sm-block">.</div>
  338. </div>
  339. </div>
  340. {/foreach}
  341. </div>
  342. {/foreach}
  343. {foreach $addons as $num => $addon}
  344. <div class="panel-body">
  345. <div class="row">
  346. <div class="{if $showAddonQtyOptions}col-sm-3{else}col-sm-7{/if}">
  347. <span class="item-title">
  348. {$addon.name}
  349. <span class="visible-xs-inline d-inline d-sm-none">
  350. <button type="button" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.remove}" onclick="removeItem('a', '{$num}')">
  351. <i class="fas fa-trash-alt"></i>
  352. </button>
  353. </span>
  354. </span>
  355. <span class="item-group">
  356. {$addon.productname}
  357. </span>
  358. {if $addon.domainname}
  359. <span class="item-domain">
  360. {$addon.domainname}
  361. </span>
  362. {/if}
  363. {if $addon.setup}
  364. <span class="item-setup">
  365. {$addon.setup} {$LANG.ordersetupfee}
  366. </span>
  367. {/if}
  368. </div>
  369. {if $showAddonQtyOptions}
  370. <div class="col-sm-4 item-qty" style="padding-top: 15px; font-size:13px;">
  371. {if $addon.allowqty === 2}
  372. Anzahl&nbsp; <input type="number" name="addonqty[{$num}]" value="{$addon.qty}" class="form-control text-center" class="form-control text-center" style="width:53px;height:25px !important; padding-left:1px; padding-right:1px;" min="0" />
  373. <button type="submit" class="btn btn-default btn-xs" style="height:25px !important; padding-top: 2px;">
  374. {$LANG.orderForm.update}
  375. </button>
  376. {/if}
  377. </div>
  378. {/if}
  379. <div class="col-sm-4 item-price">
  380. <span>{$addon.pricingtext}</span>
  381. <span class="cycle">{$addon.billingcyclefriendly}</span>
  382. </div>
  383. <div class="col-sm-1 hidden-xs d-none d-sm-block">
  384. <button type="button" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.remove}" onclick="removeItem('a', '{$num}')">
  385. <i class="fas fa-trash-alt"></i>
  386. </button>
  387. </div>
  388. </div>
  389. </div>
  390. {/foreach}
  391. {foreach $domains as $num => $domain}
  392. <div class="panel-body">
  393. <div class="row">
  394. <div class="col-sm-7">
  395. <span class="item-title">
  396. {if $domain.type eq "register"}{$LANG.orderdomainregistration}{else}{$LANG.orderdomaintransfer}{/if}
  397. <a href="{$smarty.server.PHP_SELF}?a=confdomains" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.edit}">
  398. <i class="fas fa-edit"></i>
  399. </a>
  400. <span class="visible-xs-inline d-inline d-sm-none">
  401. <button type="button" class="btn btn-icon btn-xs" data-placement="top" data-trigger="manual" title="{$LANG.cartremove}" onclick="removeItem('d', '{$num}')">
  402. <i class="fas fa-trash-alt"></i>
  403. </button>
  404. </span>
  405. </span>
  406. {if $domain.domain}
  407. <span class="item-domain">
  408. {$domain.domain}
  409. </span>
  410. {/if}
  411. <div class="item-addons">
  412. {if $domain.dnsmanagement}{$LANG.domaindnsmanagement}<br />{/if}
  413. {if $domain.emailforwarding}{$LANG.domainemailforwarding}<br />{/if}
  414. {if $domain.idprotection}{$LANG.domainidprotection}<br />{/if}
  415. </div>
  416. </div>
  417. <div class="col-sm-4 item-price">
  418. {if count($domain.pricing) == 1 || $domain.type == 'transfer'}
  419. <span name="{$domain.domain}Price">{$domain.price}</span>
  420. <span class="cycle">{$domain.regperiod} {$domain.yearsLanguage}</span>
  421. <span class="renewal cycle">
  422. {if isset($domain.renewprice)}{lang key='domainrenewalprice'} <span class="renewal-price cycle">{$domain.renewprice->toPrefixed()}{$domain.shortRenewalYearsLanguage}{/if}</span>
  423. </span>
  424. {else}
  425. <span name="{$domain.domain}Price">{$domain.price}</span>
  426. <div class="dropdown">
  427. <button class="btn btn-default btn-xs dropdown-toggle" type="button" id="{$domain.domain}Pricing" name="{$domain.domain}Pricing" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
  428. {$domain.regperiod} {$domain.yearsLanguage}
  429. <span class="caret"></span>
  430. </button>
  431. <ul class="dropdown-menu dropdown-menu dropdown-caret dropdown-checkboxes dropdown-menu-right dropdown-close" aria-labelledby="{$domain.domain}Pricing">
  432. {foreach $domain.pricing as $years => $price}
  433. <li>
  434. <a class="dropdown-item" href="#" onclick="selectDomainPeriodInCart('{$domain.domain}', '{$price.register}', {$years}, '{if $years == 1}{lang key='orderForm.year'}{else}{lang key='orderForm.years'}{/if}');return false;">
  435. {$years} {if $years == 1}{lang key='orderForm.year'}{else}{lang key='orderForm.years'}{/if} @ {$price.register}
  436. </a>
  437. </li>
  438. {/foreach}
  439. </ul>
  440. </div>
  441. <span class="renewal cycle">
  442. {lang key='domainrenewalprice'} <span class="renewal-price cycle">{if isset($domain.renewprice)}{$domain.renewprice->toPrefixed()}{$domain.shortRenewalYearsLanguage}{/if}</span>
  443. </span>
  444. {/if}
  445. </div>
  446. <div class="col-sm-1 hidden-xs d-none d-sm-block">
  447. <button type="button" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.remove}" onclick="removeItem('d', '{$num}')">
  448. <i class="fas fa-trash-alt"></i>
  449. </button>
  450. </div>
  451. </div>
  452. </div>
  453. {/foreach}
  454. {foreach $renewals as $num => $domain}
  455. <div class="panel-body">
  456. <div class="row">
  457. <div class="col-sm-7">
  458. <span class="item-title">
  459. {$LANG.domainrenewal}
  460. <span class="visible-xs-inline d-block d-sm-none">
  461. <button type="button" class="btn btn-icon btn-xs" data-placement="top" data-trigger="manual" title="{$LANG.cartremove}" onclick="removeItem('r', '{$num}')">
  462. <i class="fas fa-trash-alt"></i>
  463. </button>
  464. </span>
  465. </span>
  466. <span class="item-domain">
  467. {$domain.domain}
  468. </span>
  469. <div class="item-addons">
  470. {if $domain.dnsmanagement}{$LANG.domaindnsmanagement}<br />{/if}
  471. {if $domain.emailforwarding}{$LANG.domainemailforwarding}<br />{/if}
  472. {if $domain.idprotection}{$LANG.domainidprotection}<br />{/if}
  473. </div>
  474. </div>
  475. <div class="col-sm-4 item-price">
  476. <span>{$domain.price}</span>
  477. <span class="cycle">{$domain.regperiod} {$LANG.orderyears}</span>
  478. </div>
  479. <div class="col-sm-1 hidden-xs d-block d-sm-none">
  480. <button type="button" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.remove}" onclick="removeItem('r', '{$num}')">
  481. <i class="fas fa-trash-alt"></i>
  482. </button>
  483. </div>
  484. </div>
  485. </div>
  486. {/foreach}
  487. {foreach $upgrades as $num => $upgrade}
  488. <div class="panel-body">
  489. <div class="row">
  490. <div class="{if $showUpgradeQtyOptions}col-sm-5{else}col-sm-7{/if}">
  491. <span class="item-title">
  492. {$LANG.upgrade}
  493. </span>
  494. <span class="item-group">
  495. {if $upgrade->type == 'service'}
  496. {$upgrade->originalProduct->productGroup->name}<br>{$upgrade->originalProduct->name} => {$upgrade->newProduct->name}
  497. {elseif $upgrade->type == 'addon'}
  498. {$upgrade->originalAddon->name} => {$upgrade->newAddon->name}
  499. {/if}
  500. </span>
  501. <span class="item-domain">
  502. {if $upgrade->type == 'service'}
  503. {$upgrade->service->domain}
  504. {/if}
  505. </span>
  506. </div>
  507. {if $showUpgradeQtyOptions}
  508. <div class="col-sm-4 item-qty" style="padding-top: 15px; font-size:13px;">
  509. {if $upgrade->allowMultipleQuantities}
  510. Anzahl&nbsp; <input type="number" name="upgradeqty[{$num}]" value="{$upgrade->qty}" class="form-control text-center" class="form-control text-center" style="width:53px;height:25px !important; padding-left:1px; padding-right:1px;" min="{$upgrade->minimumQuantity}" />
  511. <button type="submit" class="btn btn-default btn-xs" style="height:25px !important; padding-top: 2px;">
  512. {$LANG.orderForm.update}
  513. </button>
  514. {/if}
  515. </div>
  516. {/if}
  517. <div class="col-sm-4 item-price">
  518. <span>{$upgrade->newRecurringAmount}</span>
  519. <span class="cycle">{$upgrade->localisedNewCycle}</span>
  520. </div>
  521. <div class="col-sm-1">
  522. <button type="button" class="btn btn-icon btn-xs" data-toggle="tooltip" data-placement="top" data-trigger="manual" title="{$LANG.orderForm.remove}" onclick="removeItem('u', '{$num}')">
  523. <i class="fas fa-trash-alt"></i>
  524. </button>
  525. </div>
  526. </div>
  527. {if $upgrade->totalDaysInCycle > 0}
  528. <div class="row row-upgrade-credit">
  529. <div class="col-sm-7">
  530. <span class="item-group">
  531. {$LANG.upgradeCredit}
  532. </span>
  533. <div class="upgrade-calc-msg">
  534. {lang key="upgradeCreditDescription" daysRemaining=$upgrade->daysRemaining totalDays=$upgrade->totalDaysInCycle}
  535. </div>
  536. </div>
  537. <div class="col-sm-4 item-price">
  538. <span>-{$upgrade->creditAmount}</span>
  539. </div>
  540. </div>
  541. {/if}
  542. </div>
  543. {/foreach}
  544. {if $cartitems == 0}
  545. <div class="view-cart-empty">
  546. {$LANG.cartempty}
  547. </div>
  548. {/if}
  549. </div>
  550. {if $cartitems > 0}
  551. <div class="panel-footer light">
  552. <div class=" d-flex align-items-center space-between">
  553. <!--
  554. <a href="cart.php" class="btn btn-default btn-xs" id="continueShopping">
  555. <i class="fas fa-reply"></i>
  556. <span>{$LANG.orderForm.continueShopping}</span>
  557. </a>
  558. -->
  559. <button type="button" class="btn btn-default btn-xs" id="btnEmptyCart">
  560. <i class="fas fa-trash-alt"></i>
  561. <span>{$LANG.emptycart}</span>
  562. </button>
  563. </div>
  564. </div>
  565. {/if}
  566. </div>
  567. </form>
  568. {foreach $hookOutput as $output}
  569. <div>
  570. {$output}
  571. </div>
  572. {/foreach}
  573. {foreach $gatewaysoutput as $gatewayoutput}
  574. <div class="view-cart-gateway-checkout">
  575. {$gatewayoutput}
  576. </div>
  577. {/foreach}
  578. {* Promocode & Steuertab -> entfernt von Thurdata auf Wunsch von Andy (Anfang)
  579. <div class="view-cart-tabs">
  580. <ul class="nav nav-tabs" role="tablist">
  581. <li role="presentation" class="active"><a href="#applyPromo" class="nav-link active" aria-controls="applyPromo" role="tab" data-toggle="tab">{$LANG.orderForm.applyPromoCode}</a></li>
  582. {if $taxenabled && !$loggedin}
  583. <li role="presentation"><a href="#calcTaxes" class="nav-link" aria-controls="calcTaxes" role="tab" data-toggle="tab">{$LANG.orderForm.estimateTaxes}</a></li>
  584. {/if}
  585. </ul>
  586. <div class="tab-content">
  587. <div role="tabpanel" class="tab-pane active promo" id="applyPromo">
  588. {if $promotioncode}
  589. <div class="view-cart-promotion-code">
  590. {$promotioncode} - {$promotiondescription}
  591. </div>
  592. <div class="text-center">
  593. <a href="{$smarty.server.PHP_SELF}?a=removepromo" class="btn btn-default btn-sm">
  594. {$LANG.orderForm.removePromotionCode}
  595. </a>
  596. </div>
  597. {else}
  598. <form method="post" action="cart.php?a=view">
  599. <div class="form-group prepend-icon">
  600. <div class="row">
  601. <div class="col-md-7 col-lg-8 col-xl-9">
  602. <label for="cardno" class="field-icon">
  603. <i class="fas fa-ticket-alt"></i>
  604. </label>
  605. <input type="text" name="promocode" id="inputPromotionCode" class="form-coontrol field" placeholder="{lang key="orderPromoCodePlaceholder"}" required="required" style="width: 100%;">
  606. </div>
  607. <div class="col-md-5 col-lg-4 col-xl-3">
  608. <span class="input-group-btn">
  609. <button type="submit" name="validatepromo" class="btn btn-primary btn-block " value="{$LANG.orderpromovalidatebutton}">
  610. {$LANG.orderpromovalidatebutton}
  611. </button>
  612. </span>
  613. </div>
  614. </div>
  615. </div>
  616. </form>
  617. {/if}
  618. </div>
  619. <div role="tabpanel" class="tab-pane" id="calcTaxes">
  620. <form method="post" action="cart.php?a=setstateandcountry">
  621. <div class="form-group">
  622. <label for="inputState" class="control-label">{$LANG.orderForm.state}</label>
  623. <input type="text" name="state" id="inputState" value="{$clientsdetails.state}" class="form-control"{if $loggedin} disabled="disabled"{/if} />
  624. </div>
  625. <div class="form-group">
  626. <label for="inputCountry" class="control-label">{$LANG.orderForm.country}</label>
  627. <select name="country" id="inputCountry" class="form-control">
  628. {foreach $countries as $countrycode => $countrylabel}
  629. <option value="{$countrycode}"{if (!$country && $countrycode == $defaultcountry) || $countrycode eq $country} selected{/if}>
  630. {$countrylabel}
  631. </option>
  632. {/foreach}
  633. </select>
  634. </div>
  635. <div class="form-group text-center">
  636. <button type="submit" class="btn btn-primary">
  637. {$LANG.orderForm.updateTotals}
  638. </button>
  639. </div>
  640. </form>
  641. </div>
  642. </div>
  643. </div>
  644. Promocode & Steuertab -> entfernt von Thurdata auf Wunsch von Andy (Ende)*}
  645. {/if}
  646. {if !$checkout}{else}
  647. {include file="orderforms/$carttpl/checkout.tpl"}
  648. {if $servedOverSsl}
  649. <div class="alert alert-warning" style="margin-top: 30px; font-size: 90%;">
  650. {$LANG.ordersecure} (<strong>{$ipaddress}</strong>) {$LANG.ordersecure2}
  651. </div>
  652. {/if}
  653. {/if}
  654. </div>
  655. <div class="col-md-4 col-lg-3">
  656. <div id="sidebar">
  657. <div class="sidebar__inner blocks cartsummary">
  658. <div class="order-summary">
  659. <div class="loader w-hidden" id="orderSummaryLoader">
  660. <i class="fas fa-fw fa-sync fa-spin"></i>
  661. </div>
  662. <h2>{$LANG.ordersummary}</h2>
  663. <div class="summary-container">
  664. <div class="subtotal clearfix">
  665. <span class="pull-left float-left">{$LANG.ordersubtotal}</span>
  666. <span id="subtotal" class="pull-right float-right">{$subtotal}</span>
  667. </div>
  668. {if $promotioncode || $taxrate || $taxrate2}
  669. <div class="bordered-totals">
  670. {if $promotioncode}
  671. <div class="clearfix">
  672. <span class="pull-left float-left">{$promotiondescription}</span>
  673. <span id="discount" class="pull-right float-right">{$discount}</span>
  674. </div>
  675. {/if}
  676. {if $taxrate}
  677. <div class="clearfix">
  678. <span class="pull-left float-left">{$taxname} @ {$taxrate}%</span>
  679. <span id="taxTotal1" class="pull-right float-right">{$taxtotal}</span>
  680. </div>
  681. {/if}
  682. {if $taxrate2}
  683. <div class="clearfix">
  684. <span class="pull-left float-left">{$taxname2} @ {$taxrate2}%</span>
  685. <span id="taxTotal2" class="pull-right float-right">{$taxtotal2}</span>
  686. </div>
  687. {/if}
  688. </div>
  689. {/if}
  690. <div class="recurring-totals clearfix">
  691. <span class="pull-left float-left">{$LANG.orderForm.totals}</span>
  692. <span id="recurring" class="pull-right float-right recurring-charges">
  693. <span id="recurringMonthly" {if !$totalrecurringmonthly}style="display:none;"{/if}>
  694. <span class="cost">{$totalrecurringmonthly}</span> {$LANG.orderpaymenttermmonthly}<br />
  695. </span>
  696. <span id="recurringQuarterly" {if !$totalrecurringquarterly}style="display:none;"{/if}>
  697. <span class="cost">{$totalrecurringquarterly}</span> {$LANG.orderpaymenttermquarterly}<br />
  698. </span>
  699. <span id="recurringSemiAnnually" {if !$totalrecurringsemiannually}style="display:none;"{/if}>
  700. <span class="cost">{$totalrecurringsemiannually}</span> {$LANG.orderpaymenttermsemiannually}<br />
  701. </span>
  702. <span id="recurringAnnually" {if !$totalrecurringannually}style="display:none;"{/if}>
  703. <span class="cost">{$totalrecurringannually}</span> {$LANG.orderpaymenttermannually}<br />
  704. </span>
  705. <span id="recurringBiennially" {if !$totalrecurringbiennially}style="display:none;"{/if}>
  706. <span class="cost">{$totalrecurringbiennially}</span> {$LANG.orderpaymenttermbiennially}<br />
  707. </span>
  708. <span id="recurringTriennially" {if !$totalrecurringtriennially}style="display:none;"{/if}>
  709. <span class="cost">{$totalrecurringtriennially}</span> {$LANG.orderpaymenttermtriennially}<br />
  710. </span>
  711. </span>
  712. </div>
  713. <div class="total-due-today total-due-today-padded">
  714. <span id="totalDueToday" class="amt">{$total}</span>
  715. <span>{$LANG.ordertotalduetoday}</span>
  716. </div>
  717. <div class="express-checkout-buttons">
  718. {foreach $expressCheckoutButtons as $checkoutButton}
  719. {$checkoutButton}
  720. <div class="separator">
  721. - {$LANG.or|strtoupper} -
  722. </div>
  723. {/foreach}
  724. </div>
  725. <div class="text-right">
  726. {if $checkout}{else}<a href="cart.php?a=checkout&e=false" class="btn btn-primary btn-lg btn-checkout{if $cartitems == 0} disabled{/if}" id="checkout">
  727. {$LANG.orderForm.checkout}
  728. <i class="fas fa-arrow-right"></i>
  729. </a>{/if}
  730. </div>
  731. </div>
  732. </div>
  733. </div>
  734. </div>
  735. </div>
  736. </div>
  737. </div>
  738. </div>
  739. {else}
  740. <div class="mw-928 mx-auto">
  741. <div class="alert-lg no-data no-border">
  742. <div class="icon">
  743. <i class="fas fa-trash-alt"></i>
  744. </div>
  745. <div class="text">
  746. <h4>{$LANG.cartempty}</h4>
  747. </div>
  748. <!--
  749. <a href="{if $themesettings.orderform.orderopc != ""}order{else}cart{/if}.php" class="btn btn-default" id="continueShopping">
  750. {$LANG.navservicesorder}
  751. </a>
  752. -->
  753. </div>
  754. </div>
  755. {/if}
  756. </div>
  757. {if file_exists("templates/orderforms/{$carttpl}/layouts/foot.tpl")}
  758. {include file="templates/orderforms/{$carttpl}/layouts/foot.tpl"}
  759. {/if}
  760. <script type="text/javascript" src="{$WEB_ROOT}/templates/orderforms/{$carttpl}/js/ResizeSensor.js"></script>
  761. <script type="text/javascript" src="{$WEB_ROOT}/templates/orderforms/{$carttpl}/js/jquery.sticky-sidebar.min.js"></script>
  762. <script>
  763. jQuery('#sidebar').stickySidebar({
  764. topSpacing: 60,
  765. bottomSpacing: 60,
  766. minWidth: 992,
  767. containerSelector: '.ajaxcart_cont',
  768. innerWrapperSelector: '.sidebar__inner'
  769. });
  770. </script>
  771. <form method="post" action="cart.php">
  772. <input type="hidden" name="a" value="remove" />
  773. <input type="hidden" name="r" value="" id="inputRemoveItemType" />
  774. <input type="hidden" name="i" value="" id="inputRemoveItemRef" />
  775. <div class="modal fade modal-remove-item" id="modalRemoveItem" tabindex="-1" role="dialog">
  776. <div class="modal-dialog" role="document">
  777. <div class="modal-content">
  778. <div class="modal-header d-block">
  779. <h4 class="modal-title">
  780. <button type="button" class="close" data-dismiss="modal" aria-label="{$LANG.orderForm.close}">
  781. <span aria-hidden="true">&times;</span>
  782. </button>
  783. <span>{lang key='orderForm.removeItem'}</span>
  784. </h4>
  785. </div>
  786. <div class="modal-body">
  787. {$LANG.cartremoveitemconfirm}
  788. </div>
  789. <div class="modal-footer">
  790. <button type="button" class="btn btn-default" data-dismiss="modal">{$LANG.no}</button>
  791. <button type="submit" class="btn btn-primary">{$LANG.yes}</button>
  792. </div>
  793. </div>
  794. </div>
  795. </div>
  796. </form>
  797. <form method="post" action="cart.php">
  798. <input type="hidden" name="a" value="empty" />
  799. <div class="modal fade modal-remove-item" id="modalEmptyCart" tabindex="-1" role="dialog">
  800. <div class="modal-dialog" role="document">
  801. <div class="modal-content">
  802. <div class="modal-header d-block">
  803. <h4 class="modal-title">
  804. <button type="button" class="close" data-dismiss="modal" aria-label="{$LANG.orderForm.close}">
  805. <span aria-hidden="true">&times;</span>
  806. </button>
  807. <span>{$LANG.emptycart}</span>
  808. </h4>
  809. </div>
  810. <div class="modal-body">
  811. {$LANG.cartemptyconfirm}
  812. </div>
  813. <div class="modal-footer">
  814. <button type="button" class="btn btn-default" data-dismiss="modal">{$LANG.no}</button>
  815. <button type="submit" class="btn btn-primary">{$LANG.yes}</button>
  816. </div>
  817. </div>
  818. </div>
  819. </div>
  820. </form>
  821. {/if}