Advertisement
Guest User

Untitled

a guest
Apr 15th, 2020
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.43 KB | None | 0 0
  1. {include file="orderforms/standard_cart/common.tpl"}
  2.  
  3. <script>
  4. var _localLang = {
  5. 'addToCart': '{$LANG.orderForm.addToCart|escape}',
  6. 'addedToCartRemove': '{$LANG.orderForm.addedToCartRemove|escape}'
  7. }
  8. </script>
  9.  
  10. <div id="order-standard_cart">
  11.  
  12. <div class="row">
  13.  
  14. <div class="pull-md-right col-md-9">
  15.  
  16. <div class="header-lined">
  17. <h1>{$LANG.orderconfigure}</h1>
  18. </div>
  19.  
  20. </div>
  21.  
  22. <div class="col-md-3 pull-md-left sidebar hidden-xs hidden-sm">
  23.  
  24. {include file="orderforms/standard_cart/sidebar-categories.tpl"}
  25.  
  26. </div>
  27.  
  28. <div class="col-md-9 pull-md-right">
  29.  
  30. {include file="orderforms/standard_cart/sidebar-categories-collapsed.tpl"}
  31.  
  32. <form id="frmConfigureProduct">
  33. <input type="hidden" name="configure" value="true" />
  34. <input type="hidden" name="i" value="{$i}" />
  35.  
  36. <div class="row">
  37. <div class="col-md-8">
  38.  
  39. <p>{$LANG.orderForm.configureDesiredOptions}</p>
  40.  
  41. <div class="product-info">
  42. <p class="product-title">{$productinfo.name}</p>
  43. <p>{$productinfo.description}</p>
  44. </div>
  45.  
  46. <div class="alert alert-danger hidden" role="alert" id="containerProductValidationErrors">
  47. <p>{$LANG.orderForm.correctErrors}:</p>
  48. <ul id="containerProductValidationErrorsList"></ul>
  49. </div>
  50.  
  51. {if $pricing.type eq "recurring"}
  52. <div class="field-container">
  53. <div class="form-group">
  54. <label for="inputBillingcycle">{$LANG.cartchoosecycle}</label>
  55. <select name="billingcycle" id="inputBillingcycle" class="form-control select-inline" onchange="{if $configurableoptions}updateConfigurableOptions({$i}, this.value);{else}recalctotals();{/if}">
  56. {if $pricing.monthly}
  57. <option value="monthly"{if $billingcycle eq "monthly"} selected{/if}>
  58. {$pricing.monthly}
  59. </option>
  60. {/if}
  61. {if $pricing.quarterly}
  62. <option value="quarterly"{if $billingcycle eq "quarterly"} selected{/if}>
  63. {$pricing.quarterly}
  64. </option>
  65. {/if}
  66. {if $pricing.semiannually}
  67. <option value="semiannually"{if $billingcycle eq "semiannually"} selected{/if}>
  68. {$pricing.semiannually}
  69. </option>
  70. {/if}
  71. {if $pricing.annually}
  72. <option value="annually"{if $billingcycle eq "annually"} selected{/if}>
  73. {$pricing.annually}
  74. </option>
  75. {/if}
  76. {if $pricing.biennially}
  77. <option value="biennially"{if $billingcycle eq "biennially"} selected{/if}>
  78. {$pricing.biennially}
  79. </option>
  80. {/if}
  81. {if $pricing.triennially}
  82. <option value="triennially"{if $billingcycle eq "triennially"} selected{/if}>
  83. {$pricing.triennially}
  84. </option>
  85. {/if}
  86. </select>
  87. </div>
  88. </div>
  89. {/if}
  90.  
  91. {if $productinfo.type eq "server"}
  92. <div class="sub-heading">
  93. <span>{$LANG.cartconfigserver}</span>
  94. </div>
  95.  
  96. <div class="field-container">
  97.  
  98. <div class="row">
  99. <div class="col-sm-6">
  100. <div class="form-group">
  101. <label for="inputHostname">{$LANG.serverhostname}</label>
  102. <input type="text" name="hostname" class="form-control" id="inputHostname" value="{$server.hostname}" placeholder="servername.yourdomain.com">
  103. </div>
  104. </div>
  105. <div class="col-sm-6">
  106. <div class="form-group">
  107. <label for="inputRootpw">{$LANG.serverrootpw}</label>
  108. <input type="password" name="rootpw" class="form-control" id="inputRootpw" value="{$server.rootpw}">
  109. </div>
  110. </div>
  111. </div>
  112.  
  113. <div class="row">
  114. <div class="col-sm-6">
  115. <div class="form-group">
  116. <label for="inputNs1prefix">{$LANG.serverns1prefix}</label>
  117. <input type="text" name="ns1prefix" class="form-control" id="inputNs1prefix" value="{$server.ns1prefix}" placeholder="ns1">
  118. </div>
  119. </div>
  120. <div class="col-sm-6">
  121. <div class="form-group">
  122. <label for="inputNs2prefix">{$LANG.serverns2prefix}</label>
  123. <input type="text" name="ns2prefix" class="form-control" id="inputNs2prefix" value="{$server.ns2prefix}" placeholder="ns2">
  124. </div>
  125. </div>
  126. </div>
  127.  
  128. </div>
  129. {/if}
  130.  
  131. {if $configurableoptions}
  132. <div class="sub-heading">
  133. <span>{$LANG.orderconfigpackage}</span>
  134. </div>
  135. <div class="product-configurable-options" id="productConfigurableOptions">
  136. <div class="row">
  137. {foreach $configurableoptions as $num => $configoption}
  138. {if $configoption.optiontype eq 1}
  139. <div class="col-sm-6">
  140. <div class="form-group">
  141. <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
  142. <select name="configoption[{$configoption.id}]" id="inputConfigOption{$configoption.id}" class="form-control">
  143. {foreach key=num2 item=options from=$configoption.options}
  144. <option value="{$options.id}"{if $configoption.selectedvalue eq $options.id} selected="selected"{/if}>
  145. {$options.name}
  146. </option>
  147. {/foreach}
  148. </select>
  149. </div>
  150. </div>
  151. {elseif $configoption.optiontype eq 2}
  152. <div class="col-sm-6">
  153. <div class="form-group">
  154. <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
  155. {foreach key=num2 item=options from=$configoption.options}
  156. <br />
  157. <label>
  158. <input type="radio" name="configoption[{$configoption.id}]" value="{$options.id}"{if $configoption.selectedvalue eq $options.id} checked="checked"{/if} />
  159. {if $options.name}
  160. {$options.name}
  161. {else}
  162. {$LANG.enable}
  163. {/if}
  164. </label>
  165. {/foreach}
  166. </div>
  167. </div>
  168. {elseif $configoption.optiontype eq 3}
  169. <div class="col-sm-6">
  170. <div class="form-group">
  171. <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
  172. <br />
  173. <label>
  174. <input type="checkbox" name="configoption[{$configoption.id}]" id="inputConfigOption{$configoption.id}" value="1"{if $configoption.selectedqty} checked{/if} />
  175. {if $configoption.options.0.name}
  176. {$configoption.options.0.name}
  177. {else}
  178. {$LANG.enable}
  179. {/if}
  180. </label>
  181. </div>
  182. </div>
  183. {elseif $configoption.optiontype eq 4}
  184. <div class="col-sm-12">
  185. <div class="form-group">
  186. <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
  187. {if $configoption.qtymaximum}
  188. {if !$rangesliderincluded}
  189. <script type="text/javascript" src="{$BASE_PATH_JS}/ion.rangeSlider.min.js"></script>
  190. <link href="{$BASE_PATH_CSS}/ion.rangeSlider.css" rel="stylesheet">
  191. <link href="{$BASE_PATH_CSS}/ion.rangeSlider.skinModern.css" rel="stylesheet">
  192. {assign var='rangesliderincluded' value=true}
  193. {/if}
  194. <input type="text" name="configoption[{$configoption.id}]" value="{if $configoption.selectedqty}{$configoption.selectedqty}{else}{$configoption.qtyminimum}{/if}" id="inputConfigOption{$configoption.id}" class="form-control" />
  195. <script>
  196. var sliderTimeoutId = null;
  197. var sliderRangeDifference = {$configoption.qtymaximum} - {$configoption.qtyminimum};
  198. // The largest size that looks nice on most screens.
  199. var sliderStepThreshold = 25;
  200. // Check if there are too many to display individually.
  201. var setLargerMarkers = sliderRangeDifference > sliderStepThreshold;
  202.  
  203. jQuery("#inputConfigOption{$configoption.id}").ionRangeSlider({
  204. min: {$configoption.qtyminimum},
  205. max: {$configoption.qtymaximum},
  206. grid: true,
  207. grid_snap: setLargerMarkers ? false : true,
  208. onChange: function() {
  209. if (sliderTimeoutId) {
  210. clearTimeout(sliderTimeoutId);
  211. }
  212.  
  213. sliderTimeoutId = setTimeout(function() {
  214. sliderTimeoutId = null;
  215. recalctotals();
  216. }, 250);
  217. }
  218. });
  219. </script>
  220. {else}
  221. <div>
  222. <input type="number" name="configoption[{$configoption.id}]" value="{if $configoption.selectedqty}{$configoption.selectedqty}{else}{$configoption.qtyminimum}{/if}" id="inputConfigOption{$configoption.id}" min="{$configoption.qtyminimum}" onchange="recalctotals()" onkeyup="recalctotals()" class="form-control form-control-qty" />
  223. <span class="form-control-static form-control-static-inline">
  224. x {$configoption.options.0.name}
  225. </span>
  226. </div>
  227. {/if}
  228. </div>
  229. </div>
  230. {/if}
  231. {if $num % 2 != 0}
  232. </div>
  233. <div class="row">
  234. {/if}
  235. {/foreach}
  236. </div>
  237. </div>
  238.  
  239. {/if}
  240.  
  241. {if $customfields}
  242.  
  243. <div class="sub-heading">
  244. <span>{$LANG.orderadditionalrequiredinfo}</span>
  245. </div>
  246.  
  247. <div class="field-container">
  248. {foreach $customfields as $customfield}
  249. <div class="form-group">
  250. <label for="customfield{$customfield.id}">{$customfield.name}</label>
  251. {$customfield.input}
  252. {if $customfield.description}
  253. <span class="field-help-text">
  254. {$customfield.description}
  255. </span>
  256. {/if}
  257. </div>
  258. {/foreach}
  259. </div>
  260.  
  261. {/if}
  262.  
  263. {if $addons || count($addonsPromoOutput) > 0}
  264.  
  265. <div class="sub-heading">
  266. <span>{$LANG.cartavailableaddons}</span>
  267. </div>
  268.  
  269. {foreach $addonsPromoOutput as $output}
  270. <div>
  271. {$output}
  272. </div>
  273. {/foreach}
  274.  
  275. <div class="row addon-products">
  276. {foreach $addons as $addon}
  277. <div class="col-sm-{if count($addons) > 1}6{else}12{/if}">
  278. <div class="panel panel-default panel-addon{if $addon.status} panel-addon-selected{/if}">
  279. <div class="panel-body">
  280. <label>
  281. <input type="checkbox" name="addons[{$addon.id}]"{if $addon.status} checked{/if} />
  282. {$addon.name}
  283. </label><br />
  284. {$addon.description}
  285. </div>
  286. <div class="panel-price">
  287. {$addon.pricing}
  288. </div>
  289. <div class="panel-add">
  290. <i class="fas fa-plus"></i>
  291. {$LANG.addtocart}
  292. </div>
  293. </div>
  294. </div>
  295. {/foreach}
  296. </div>
  297.  
  298. {/if}
  299.  
  300. <div class="alert alert-warning info-text-sm">
  301. <i class="fas fa-question-circle"></i>
  302. {$LANG.orderForm.haveQuestionsContact} <a href="contact.php" target="_blank" class="alert-link">{$LANG.orderForm.haveQuestionsClickHere}</a>
  303. </div>
  304.  
  305. </div>
  306. <div class="col-md-4" id="scrollingPanelContainer">
  307.  
  308. <div id="orderSummary">
  309. <div class="order-summary">
  310. <div class="loader" id="orderSummaryLoader">
  311. <i class="fas fa-fw fa-sync fa-spin"></i>
  312. </div>
  313. <h2>{$LANG.ordersummary}</h2>
  314. <div class="summary-container" id="producttotal"></div>
  315. </div>
  316. <div class="text-center">
  317. <button type="submit" id="btnCompleteProductConfig" class="btn btn-primary btn-lg">
  318. {$LANG.continue}
  319. <i class="fas fa-arrow-circle-right"></i>
  320. </button>
  321. </div>
  322. </div>
  323.  
  324. </div>
  325.  
  326. </div>
  327.  
  328. </form>
  329. </div>
  330. </div>
  331. </div>
  332.  
  333. <script>recalctotals();</script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement