andre 4 yıl önce
ebeveyn
işleme
3e2da00589
2 değiştirilmiş dosya ile 387 ekleme ve 432 silme
  1. 5 2
      configure_groupware.tpl
  2. 382 430
      configure_nextcloud.tpl

+ 5 - 2
configure_groupware.tpl

@@ -349,11 +349,14 @@ var _localLang = {
                                     <div class="col-sm-{if count($addons) > 1}6{else}12{/if}"">
                                     <div class="col-sm-{if count($addons) > 1}6{else}12{/if}"">
                                         <div class="panel panel-default panel-addon{if $addon.status} panel-addon-selected{/if}">
                                         <div class="panel panel-default panel-addon{if $addon.status} panel-addon-selected{/if}">
                                             <div class="panel-body">
                                             <div class="panel-body">
-                                               <input type="checkbox" name="addons[{$addon.id}]"{if $addon.status} checked{/if} />
+                                                <input type="checkbox" name="addons[{$addon.id}]"{if $addon.status} checked{/if} />
                                                 <span class="panel-addon-name">{$addon.name}</span>
                                                 <span class="panel-addon-name">{$addon.name}</span>
-						<span class="panel-addon-price">{$addon.pricing}</span>
+                        						<span class="panel-addon-price">{$addon.pricing}</span>
                                                 <p class="text-muted">{$addon.description}</p>
                                                 <p class="text-muted">{$addon.description}</p>
                                             </div>
                                             </div>
+                                            {if $addon.allowsQuantity === 2}
+                                                {include file="templates/orderforms/{$carttpl}/addon-hint.tpl"}
+                                    	    {/if}
                                         </div>
                                         </div>
                                     </div>
                                     </div>
                                 {/foreach}
                                 {/foreach}

+ 382 - 430
configure_nextcloud.tpl

@@ -1,5 +1,4 @@
 <!-- Start of Template configure_nextcloud.tpl -->
 <!-- Start of Template configure_nextcloud.tpl -->
-
 {*
 {*
 This is the orderform template for the nextcloud product
 This is the orderform template for the nextcloud product
 This template requires a list of custom fields in exact this order:
 This template requires a list of custom fields in exact this order:
@@ -11,498 +10,451 @@ email|E-Mail-Addresse		-> customfields[3]
 password|Passwort		-> customfields[4]
 password|Passwort		-> customfields[4]
 pwrepeat|Passwort wiederholen	-> customfields[5]
 pwrepeat|Passwort wiederholen	-> customfields[5]
 *}
 *}
-
-
 {include file="orderforms/{$carttpl}/common.tpl"}
 {include file="orderforms/{$carttpl}/common.tpl"}
-
 <script>
 <script>
-var _localLang = {
-    'addToCart': '{$LANG.orderForm.addToCart|escape}',
-    'addedToCartRemove': '{$LANG.orderForm.addedToCartRemove|escape}'
-}
+    var _localLang = {
+        'addToCart': '{$LANG.orderForm.addToCart|escape}',
+        'addedToCartRemove': '{$LANG.orderForm.addedToCartRemove|escape}'
+    }
 </script>
 </script>
-
 {if file_exists("templates/orderforms/{$carttpl}/layouts/head.tpl")}
 {if file_exists("templates/orderforms/{$carttpl}/layouts/head.tpl")}
 	{include file="templates/orderforms/{$carttpl}/layouts/head.tpl"}
 	{include file="templates/orderforms/{$carttpl}/layouts/head.tpl"}
 {/if}
 {/if}
-
-
-
 <div id="order-standard_cart">
 <div id="order-standard_cart">
-
     <div class="row">
     <div class="row">
-
         <div class="col-md-12">
         <div class="col-md-12">
-	    {if file_exists("templates/orderforms/{$carttpl}/layouts/head.tpl")}
-	    {else}
-        	<div class="header-lined">
-            	    <h1>{$LANG.orderconfigure}</h1>
-        	</div>
-	    {/if}
-	    {include file="orderforms/{$carttpl}/sidebar-categories-collapsed.tpl"}
+            {if file_exists("templates/orderforms/{$carttpl}/layouts/head.tpl")}
+            {else}
+                <div class="header-lined">
+                    <h1>{$LANG.orderconfigure}</h1>
+                </div>
+            {/if}
+            {include file="orderforms/{$carttpl}/sidebar-categories-collapsed.tpl"}
         </div>
         </div>
-
         <div class="col-md-12">
         <div class="col-md-12">
-
             <form id="frmConfigureProduct">
             <form id="frmConfigureProduct">
                 <input type="hidden" name="configure" value="true" />
                 <input type="hidden" name="configure" value="true" />
                 <input type="hidden" name="i" value="{$i}" />
                 <input type="hidden" name="i" value="{$i}" />
-
                 <div class="row ajaxcart_cont">
                 <div class="row ajaxcart_cont">
                     <div class="col-md-8 col-lg-9">
                     <div class="col-md-8 col-lg-9">
-
                         <h3>{$LANG.orderForm.configureDesiredOptions}</h3>
                         <h3>{$LANG.orderForm.configureDesiredOptions}</h3>
-
                         <div class="panel panel-default">
                         <div class="panel panel-default">
-				<div class="panel-body">
-				    <table width="100%" height="100%">
-					<tr>
-					    <td valign="top" style="padding-right: 50px;">
-						{$features = "<br />"|explode:$productinfo.description}
-						<p class="product-title" style="margin-bottom: -2px;  font-size:120%;"><strong><i>{$productinfo.group_name}</i> - {$productinfo.name}</strong></p>
-						{foreach $features as $feature}
-							{$featureParts = ":"|explode:$feature}
-							{$featureTrim = $feature|trim}
-							{if !$featureTrim|strstr:':' && $featureTrim ne '' && $featureTrim ne ' ' && $featureTrim ne '  '}
-							    {$feature}<br />
-							{/if}
-						{/foreach}
-						<br />
-						<!-- {$productinfo.description} -->
-						<table class="plan-features{if $block.flisticon == "check-list"} check-list{elseif $block.flisticon == "check-circle"} check-circle{elseif $block.flisticon == "check-square"} check-square{elseif $block.flisticon == "arrows"} arrows{else}{/if}" style="padding-top:0px; padding-bottom: 15px;" id="PlanLists{$kk + 1}">
-						    {foreach $features as $feature}
-							{$featureParts = ":"|explode:$feature}
-							{if $featureParts|@count > 1}
-							    <tr>
-                                    	                    <td style="padding-right: 33px;"><b>{$featureParts[0]}:</b></td>
-                                        	                <td>
-                                                	            {if $featureParts[1]|trim == "Ja"} <i class="far fa-check-square" style="font-size:14px"></i>
-                                                        	    {elseif $featureParts[1]|trim == "Nein"} <i class="far fa-square" style="font-size:14px"></i>
-	                                                            {elseif $featureParts[1]|trim == "Optional"} <i class="fas fa-plus" style="font-size:14px"></i>
-    	                                                        {else}
-		                                                        {$featureParts[1]}
-    	        	                                            {/if}
-                        	                                </td>
-							{/if}
-						    {/foreach}
-						</table>
-					    </td>
-					    <td valign="top" style="text-align:left;">
-                                                {*
-                                                    Product Icon set by its group id
-                                                    -----------------------------------------
-                                                    Mailhosting                     => gid=1
-                                                    Thurfiles Private Hosting       => gid=2
-                                                    Nextcloud Private Hosting       => gid=3
-                                                    ThurVServer                     => gid=4
-                                                    ThurVCloud                      => gid=5
-                                                    Groupware Hosting               => gid=7
-                                                    Mailhosting mit Nextcloud       => gid=8
-                                                    Nextcloud Business Hosting	    => gid=9
-                                                    Thurfiles Business Hosting	    => gid=10
-                                                *}
-						<img src="/templates/croster/thurdata/productgroups/{$productinfo.gid}.svg" class="img-fluid" style="height:150px;">
-					    </td>
-					</tr>
-    				    </table>
-				</div>
-                        </div>
-
-                        <div class="alert alert-danger w-hidden" role="alert" id="containerProductValidationErrors">
-                            <p>{$LANG.orderForm.correctErrors}:</p>
-                            <ul id="containerProductValidationErrorsList"></ul>
+                            <div class="panel-body">
+                                <table width="100%" height="100%">
+                                    <tr>
+                                        <td valign="top" style="padding-right: 50px;">
+                                        {$features = "<br />"|explode:$productinfo.description}
+                                        <p class="product-title" style="margin-bottom: -2px;  font-size:120%;"><strong><i>{$productinfo.group_name}</i> - {$productinfo.name}</strong></p>
+                                        {foreach $features as $feature}
+                                            {$featureParts = ":"|explode:$feature}
+                                            {$featureTrim = $feature|trim}
+                                            {if !$featureTrim|strstr:':' && $featureTrim ne '' && $featureTrim ne ' ' && $featureTrim ne '  '}
+                                                {$feature}<br />
+                                            {/if}
+                                        {/foreach}
+                                        <br />
+                                        <!-- {$productinfo.description} -->
+                                        <table class="plan-features{if $block.flisticon == "check-list"} check-list{elseif $block.flisticon == "check-circle"} check-circle{elseif $block.flisticon == "check-square"} check-square{elseif $block.flisticon == "arrows"} arrows{else}{/if}" style="padding-top:0px; padding-bottom: 15px;" id="PlanLists{$kk + 1}">
+                                            {foreach $features as $feature}
+                                                {$featureParts = ":"|explode:$feature}
+                                                {if $featureParts|@count > 1}
+                                                    <tr>
+                                                        <td style="padding-right: 33px;"><b>{$featureParts[0]}:</b></td>
+                                                        <td>
+                                                            {if $featureParts[1]|trim == "Ja"} <i class="far fa-check-square" style="font-size:14px"></i>
+                                                            {elseif $featureParts[1]|trim == "Nein"} <i class="far fa-square" style="font-size:14px"></i>
+                                                            {elseif $featureParts[1]|trim == "Optional"} <i class="fas fa-plus" style="font-size:14px"></i>
+                                                            {else}{$featureParts[1]}
+                                                            {/if}
+                                                        </td>
+                                                    </td>
+                                                {/if}
+                                            {/foreach}
+                                        </table>
+                                    </td>
+                                    <td valign="top" style="text-align:left;">
+                                        {*
+                                            Product Icon set by its group id
+                                            -----------------------------------------
+                                            Mailhosting                     => gid=1
+                                            Thurfiles Private Hosting       => gid=2
+                                            Nextcloud Private Hosting       => gid=3
+                                            ThurVServer                     => gid=4
+                                            ThurVCloud                      => gid=5
+                                            Groupware Hosting               => gid=7
+                                            Mailhosting mit Nextcloud       => gid=8
+                                            Nextcloud Business Hosting	    => gid=9
+                                            Thurfiles Business Hosting	    => gid=10
+                                        *}
+                                        <img src="/templates/croster/thurdata/productgroups/{$productinfo.gid}.svg" class="img-fluid" style="height:150px;">
+                                    </td>
+                                </tr>
+                            </table>
                         </div>
                         </div>
-
-                        {if $pricing.type eq "recurring"}
-                            <div class="field-container">
-                                <div class="form-group">
-                                    <label for="inputBillingcycle">{$LANG.cartchoosecycle}</label><br />
-                                    <select name="billingcycle" id="inputBillingcycle" class="form-control" onchange="{if $configurableoptions}updateConfigurableOptions({$i}, this.value);{else}recalctotals();{/if}">
-                                        {if $pricing.monthly}
-                                            <option value="monthly"{if $billingcycle eq "monthly"} selected{/if}>
-                                                {$pricing.monthly}
-                                            </option>
-                                        {/if}
-                                        {if $pricing.quarterly}
-                                            <option value="quarterly"{if $billingcycle eq "quarterly"} selected{/if}>
-                                                {$pricing.quarterly}
-                                            </option>
-                                        {/if}
-                                        {if $pricing.semiannually}
-                                            <option value="semiannually"{if $billingcycle eq "semiannually"} selected{/if}>
-                                                {$pricing.semiannually}
-                                            </option>
-                                        {/if}
-                                        {if $pricing.annually}
-                                            <option value="annually"{if $billingcycle eq "annually"} selected{/if}>
-                                                {$pricing.annually}
-                                            </option>
-                                        {/if}
-                                        {if $pricing.biennially}
-                                            <option value="biennially"{if $billingcycle eq "biennially"} selected{/if}>
-                                                {$pricing.biennially}
-                                            </option>
-                                        {/if}
-                                        {if $pricing.triennially}
-                                            <option value="triennially"{if $billingcycle eq "triennially"} selected{/if}>
-                                                {$pricing.triennially}
-                                            </option>
-                                        {/if}
-                                    </select>
-                                </div>
-                            </div>
-                        {/if}
-
-                        {if count($metrics) > 0}
-                            <div class="sub-heading">
-                                <span>{$LANG.metrics.title}</span>
-                            </div>
-
-                            <p>{$LANG.metrics.explanation}</p>
-
-                            <ul>
-                                {foreach $metrics as $metric}
-                                    <li>
-                                        {$metric.displayName}
-                                        -
-                                        {if count($metric.pricing) > 1}
-                                            {$LANG.metrics.startingFrom} {$metric.lowestPrice} / {if $metric.unitName}{$metric.unitName}{else}{$LANG.metrics.unit}{/if}
-                                            <button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#modalMetricPricing-{$metric.systemName}">
-                                                {$LANG.metrics.viewPricing}
-                                            </button>
-                                        {elseif count($metric.pricing) == 1}
-                                            {$metric.lowestPrice} / {if $metric.unitName}{$metric.unitName}{else}{$LANG.metrics.unit}{/if}
-                                            {if $metric.includedQuantity > 0} ({$metric.includedQuantity} {$LANG.metrics.includedNotCounted}){/if}
-                                        {/if}
-                                        {include file="$template/usagebillingpricing.tpl"}
-                                    </li>
-                                {/foreach}
-                            </ul>
-
-                            <br>
-                        {/if}
-
-                        {if $productinfo.type eq "server"}
-                            <div class="sub-heading">
-                                <span>{$LANG.cartconfigserver}</span>
+                    </div>
+                    <div class="alert alert-danger w-hidden" role="alert" id="containerProductValidationErrors">
+                        <p>{$LANG.orderForm.correctErrors}:</p>
+                        <ul id="containerProductValidationErrorsList"></ul>
+                    </div>
+                    {if $pricing.type eq "recurring"}
+                        <div class="field-container">
+                            <div class="form-group">
+                                <label for="inputBillingcycle">{$LANG.cartchoosecycle}</label><br />
+                                <select name="billingcycle" id="inputBillingcycle" class="form-control" onchange="{if $configurableoptions}updateConfigurableOptions({$i}, this.value);{else}recalctotals();{/if}">
+                                    {if $pricing.monthly}
+                                        <option value="monthly"{if $billingcycle eq "monthly"} selected{/if}>
+                                            {$pricing.monthly}
+                                        </option>
+                                    {/if}
+                                    {if $pricing.quarterly}
+                                        <option value="quarterly"{if $billingcycle eq "quarterly"} selected{/if}>
+                                            {$pricing.quarterly}
+                                        </option>
+                                    {/if}
+                                    {if $pricing.semiannually}
+                                        <option value="semiannually"{if $billingcycle eq "semiannually"} selected{/if}>
+                                            {$pricing.semiannually}
+                                        </option>
+                                    {/if}
+                                    {if $pricing.annually}
+                                        <option value="annually"{if $billingcycle eq "annually"} selected{/if}>
+                                            {$pricing.annually}
+                                        </option>
+                                    {/if}
+                                    {if $pricing.biennially}
+                                        <option value="biennially"{if $billingcycle eq "biennially"} selected{/if}>
+                                            {$pricing.biennially}
+                                        </option>
+                                    {/if}
+                                    {if $pricing.triennially}
+                                        <option value="triennially"{if $billingcycle eq "triennially"} selected{/if}>
+                                            {$pricing.triennially}
+                                        </option>
+                                    {/if}
+                                </select>
                             </div>
                             </div>
-
-                            <div class="field-container">
-
-                                <div class="row">
-                                    <div class="col-sm-6">
-                                        <div class="form-group">
-                                            <label for="inputHostname">{$LANG.serverhostname}</label>
-                                            <input type="text" name="hostname" class="form-control" id="inputHostname" value="{$server.hostname}" placeholder="servername.yourdomain.com">
-                                        </div>
+                        </div>
+                    {/if}
+                    {if count($metrics) > 0}
+                        <div class="sub-heading">
+                            <span>{$LANG.metrics.title}</span>
+                        </div>
+                        <p>{$LANG.metrics.explanation}</p>
+                        <ul>
+                            {foreach $metrics as $metric}
+                                <li>
+                                    {$metric.displayName}
+                                    -
+                                    {if count($metric.pricing) > 1}
+                                        {$LANG.metrics.startingFrom} {$metric.lowestPrice} / {if $metric.unitName}{$metric.unitName}{else}{$LANG.metrics.unit}{/if}
+                                        <button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#modalMetricPricing-{$metric.systemName}">
+                                            {$LANG.metrics.viewPricing}
+                                        </button>
+                                    {elseif count($metric.pricing) == 1}
+                                        {$metric.lowestPrice} / {if $metric.unitName}{$metric.unitName}{else}{$LANG.metrics.unit}{/if}
+                                        {if $metric.includedQuantity > 0} ({$metric.includedQuantity} {$LANG.metrics.includedNotCounted}){/if}
+                                    {/if}
+                                    {include file="$template/usagebillingpricing.tpl"}
+                                </li>
+                            {/foreach}
+                        </ul>
+                        <br>
+                    {/if}
+                    {if $productinfo.type eq "server"}
+                        <div class="sub-heading">
+                            <span>{$LANG.cartconfigserver}</span>
+                        </div>
+                        <div class="field-container">
+                            <div class="row">
+                                <div class="col-sm-6">
+                                    <div class="form-group">
+                                        <label for="inputHostname">{$LANG.serverhostname}</label>
+                                        <input type="text" name="hostname" class="form-control" id="inputHostname" value="{$server.hostname}" placeholder="servername.yourdomain.com">
                                     </div>
                                     </div>
-                                    <div class="col-sm-6">
-                                        <div class="form-group">
-                                            <label for="inputRootpw">{$LANG.serverrootpw}</label>
-                                            <input type="password" name="rootpw" class="form-control" id="inputRootpw" value="{$server.rootpw}">
-                                        </div>
+                                </div>
+                                <div class="col-sm-6">
+                                    <div class="form-group">
+                                        <label for="inputRootpw">{$LANG.serverrootpw}</label>
+                                        <input type="password" name="rootpw" class="form-control" id="inputRootpw" value="{$server.rootpw}">
                                     </div>
                                     </div>
                                 </div>
                                 </div>
-
-                                <div class="row">
-                                    <div class="col-sm-6">
-                                        <div class="form-group">
-                                            <label for="inputNs1prefix">{$LANG.serverns1prefix}</label>
-                                            <input type="text" name="ns1prefix" class="form-control" id="inputNs1prefix" value="{$server.ns1prefix}" placeholder="ns1">
-                                        </div>
+                            </div>
+                            <div class="row">
+                                <div class="col-sm-6">
+                                    <div class="form-group">
+                                        <label for="inputNs1prefix">{$LANG.serverns1prefix}</label>
+                                        <input type="text" name="ns1prefix" class="form-control" id="inputNs1prefix" value="{$server.ns1prefix}" placeholder="ns1">
                                     </div>
                                     </div>
-                                    <div class="col-sm-6">
-                                        <div class="form-group">
-                                            <label for="inputNs2prefix">{$LANG.serverns2prefix}</label>
-                                            <input type="text" name="ns2prefix" class="form-control" id="inputNs2prefix" value="{$server.ns2prefix}" placeholder="ns2">
-                                        </div>
+                                </div>
+                                <div class="col-sm-6">
+                                    <div class="form-group">
+                                        <label for="inputNs2prefix">{$LANG.serverns2prefix}</label>
+                                        <input type="text" name="ns2prefix" class="form-control" id="inputNs2prefix" value="{$server.ns2prefix}" placeholder="ns2">
                                     </div>
                                     </div>
                                 </div>
                                 </div>
-
-                            </div>
-                        {/if}
-
-                        {if $configurableoptions}
-                            <div class="sub-heading">
-                                <span>{$LANG.orderconfigpackage}</span>
                             </div>
                             </div>
-                            <div class="product-configurable-options" id="productConfigurableOptions">
-                                <div class="row">
-                                    {foreach $configurableoptions as $num => $configoption}
-                                        {if $configoption.optiontype eq 1}
-                                            <div class="col-sm-12">
-                                                <div class="form-group">
-                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
-                                                    <select name="configoption[{$configoption.id}]" id="inputConfigOption{$configoption.id}" class="form-control">
-                                                        {foreach key=num2 item=options from=$configoption.options}
-                                                            <option value="{$options.id}"{if $configoption.selectedvalue eq $options.id} selected="selected"{/if}>
-                                                                {$options.name}
-                                                            </option>
-                                                        {/foreach}
-                                                    </select>
-                                                </div>
-                                            </div>
-                                        {elseif $configoption.optiontype eq 2}
-                                            <div class="col-sm-12">
-                                                <div class="form-group">
-                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
+                        </div>
+                    {/if}
+                    {if $configurableoptions}
+                        <div class="sub-heading">
+                            <span>{$LANG.orderconfigpackage}</span>
+                        </div>
+                        <div class="product-configurable-options" id="productConfigurableOptions">
+                            <div class="row">
+                                {foreach $configurableoptions as $num => $configoption}
+                                    {if $configoption.optiontype eq 1}
+                                        <div class="col-sm-12">
+                                            <div class="form-group">
+                                                <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
+                                                <select name="configoption[{$configoption.id}]" id="inputConfigOption{$configoption.id}" class="form-control">
                                                     {foreach key=num2 item=options from=$configoption.options}
                                                     {foreach key=num2 item=options from=$configoption.options}
-                                                        <br />
-                                                        <label>
-                                                            <input type="radio" name="configoption[{$configoption.id}]" value="{$options.id}"{if $configoption.selectedvalue eq $options.id} checked="checked"{/if} />
-                                                            {if $options.name}
-                                                                {$options.name}
-                                                            {else}
-                                                                {$LANG.enable}
-                                                            {/if}
-                                                        </label>
+                                                        <option value="{$options.id}"{if $configoption.selectedvalue eq $options.id} selected="selected"{/if}>
+                                                            {$options.name}
+                                                        </option>
                                                     {/foreach}
                                                     {/foreach}
-                                                </div>
+                                                </select>
                                             </div>
                                             </div>
-                                        {elseif $configoption.optiontype eq 3}
-                                            <div class="col-sm-12">
-                                                <div class="form-group">
-                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
+                                        </div>
+                                    {elseif $configoption.optiontype eq 2}
+                                        <div class="col-sm-12">
+                                            <div class="form-group">
+                                                <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
+                                                {foreach key=num2 item=options from=$configoption.options}
                                                     <br />
                                                     <br />
                                                     <label>
                                                     <label>
-                                                        <input type="checkbox" name="configoption[{$configoption.id}]" id="inputConfigOption{$configoption.id}" value="1"{if $configoption.selectedqty} checked{/if} />
-                                                        {if $configoption.options.0.name}
-                                                            {$configoption.options.0.name}
+                                                        <input type="radio" name="configoption[{$configoption.id}]" value="{$options.id}"{if $configoption.selectedvalue eq $options.id} checked="checked"{/if} />
+                                                        {if $options.name}
+                                                            {$options.name}
                                                         {else}
                                                         {else}
                                                             {$LANG.enable}
                                                             {$LANG.enable}
                                                         {/if}
                                                         {/if}
                                                     </label>
                                                     </label>
-                                                </div>
+                                                {/foreach}
                                             </div>
                                             </div>
-                                        {elseif $configoption.optiontype eq 4}
-                                            <div class="col-sm-12">
-                                                <div class="form-group">
-                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
-                                                    {if $configoption.qtymaximum}
-                                                        {if !$rangesliderincluded}
-                                                            <script type="text/javascript" src="{$orderform.assetPath.js}/ion.rangeSlider.min.js"></script>
-                                                            <link href="{$orderform.assetPath.css}/ion.rangeSlider.css" rel="stylesheet">
-                                                            <link href="{$orderform.assetPath.css}/ion.rangeSlider.skinModern.css" rel="stylesheet">
-                                                            {assign var='rangesliderincluded' value=true}
-                                                        {/if}
-                                                        <input type="text" name="configoption[{$configoption.id}]" value="{if $configoption.selectedqty}{$configoption.selectedqty}{else}{$configoption.qtyminimum}{/if}" id="inputConfigOption{$configoption.id}" class="form-control" />
-                                                        <script>
-                                                            var sliderTimeoutId = null;
-                                                            var sliderRangeDifference = {$configoption.qtymaximum} - {$configoption.qtyminimum};
-                                                            // The largest size that looks nice on most screens.
-                                                            var sliderStepThreshold = 25;
-                                                            // Check if there are too many to display individually.
-                                                            var setLargerMarkers = sliderRangeDifference > sliderStepThreshold;
-
-                                                            jQuery("#inputConfigOption{$configoption.id}").ionRangeSlider({
-                                                                min: {$configoption.qtyminimum},
-                                                                max: {$configoption.qtymaximum},
-                                                                grid: true,
-                                                                grid_snap: setLargerMarkers ? false : true,
-                                                                onChange: function() {
-                                                                    if (sliderTimeoutId) {
-                                                                        clearTimeout(sliderTimeoutId);
-                                                                    }
-
-                                                                    sliderTimeoutId = setTimeout(function() {
-                                                                        sliderTimeoutId = null;
-                                                                        recalctotals();
-                                                                    }, 250);
-                                                                }
-                                                            });
-                                                        </script>
+                                        </div>
+                                    {elseif $configoption.optiontype eq 3}
+                                        <div class="col-sm-12">
+                                            <div class="form-group">
+                                                <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
+                                                <br />
+                                                <label>
+                                                    <input type="checkbox" name="configoption[{$configoption.id}]" id="inputConfigOption{$configoption.id}" value="1"{if $configoption.selectedqty} checked{/if} />
+                                                    {if $configoption.options.0.name}
+                                                        {$configoption.options.0.name}
                                                     {else}
                                                     {else}
-                                                        <div>
-                                                            <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" />
-                                                            <span class="form-control-static form-control-static-inline">
-                                                                x {$configoption.options.0.name}
-                                                            </span>
-                                                        </div>
+                                                        {$LANG.enable}
                                                     {/if}
                                                     {/if}
-                                                </div>
+                                                </label>
                                             </div>
                                             </div>
-                                        {/if}
-                                        {if $num % 2 != 0}
+                                        </div>
+                                    {elseif $configoption.optiontype eq 4}
+                                        <div class="col-sm-12">
+                                            <div class="form-group">
+                                                <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>
+                                                {if $configoption.qtymaximum}
+                                                    {if !$rangesliderincluded}
+                                                        <script type="text/javascript" src="{$orderform.assetPath.js}/ion.rangeSlider.min.js"></script>
+                                                        <link href="{$orderform.assetPath.css}/ion.rangeSlider.css" rel="stylesheet">
+                                                        <link href="{$orderform.assetPath.css}/ion.rangeSlider.skinModern.css" rel="stylesheet">
+                                                        {assign var='rangesliderincluded' value=true}
+                                                    {/if}
+                                                    <input type="text" name="configoption[{$configoption.id}]" value="{if $configoption.selectedqty}{$configoption.selectedqty}{else}{$configoption.qtyminimum}{/if}" id="inputConfigOption{$configoption.id}" class="form-control" />
+                                                    <script>
+                                                        var sliderTimeoutId = null;
+                                                        var sliderRangeDifference = {$configoption.qtymaximum} - {$configoption.qtyminimum};
+                                                        // The largest size that looks nice on most screens.
+                                                        var sliderStepThreshold = 25;
+                                                        // Check if there are too many to display individually.
+                                                        var setLargerMarkers = sliderRangeDifference > sliderStepThreshold;
+                                                        jQuery("#inputConfigOption{$configoption.id}").ionRangeSlider({
+                                                            min: {$configoption.qtyminimum},
+                                                            max: {$configoption.qtymaximum},
+                                                            grid: true,
+                                                            grid_snap: setLargerMarkers ? false : true,
+                                                            onChange: function() {
+                                                                if (sliderTimeoutId) {
+                                                                    clearTimeout(sliderTimeoutId);
+                                                                }
+                                                                sliderTimeoutId = setTimeout(function() {
+                                                                    sliderTimeoutId = null;
+                                                                    recalctotals();
+                                                                }, 250);
+                                                            }
+                                                        });
+                                                    </script>
+                                                {else}
+                                                    <div>
+                                                        <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" />
+                                                        <span class="form-control-static form-control-static-inline">
+                                                            x {$configoption.options.0.name}
+                                                        </span>
+                                                    </div>
+                                                {/if}
                                             </div>
                                             </div>
-                                            <div class="row">
-                                        {/if}
-                                    {/foreach}
+                                        </div>
+                                    {/if}
+                                    {if $num % 2 != 0}
+                                        </div>
+                                        <div class="row">
+                                    {/if}
+                                {/foreach}
+                            </div>
+                        </div>
+                    {/if}
+                    {*
+                    This requires a list of custom fields in exact this order:
+                    
+                    firstname|Vorname		-> customfields[0]
+                    lastname|Nachname		-> customfields[1]
+                    username|Benutzername		-> customfields[2]
+                    email|E-Mail-Addresse		-> customfields[3]
+                    password|Passwort		-> customfields[4]
+                    pwrepeat|Passwort wiederholen	-> customfields[5]
+                    *}
+                    {if $customfields}
+                        <div class="sub-heading">
+                            <span>{$LANG.orderadditionalrequiredinfo}</span>
+                        </div>
+                        <div class="field-container">
+                        <table width="100%" border="0" cellpadding="10" cellspacing="0" class="table table-borderless">
+                            <!-- Vorname und Nachname -->
+                            <tr>
+                            <td align='left'>
+                                <div class="form-group">
+                                    <label for="customfield{$customfields[0].id}">{$customfields[0].name}</label>
+                                    {$customfields[0].input}
+                                    {if $customfields[0].description}
+                                        <span class="field-help-text">
+                                            {$customfields[0].description}
+                                        </span>
+                                    {/if}
                                 </div>
                                 </div>
+                            </td>
+                            <td></td>
+                            <td align='left'>
+                                <div class="form-group">
+                                    <label for="customfield{$customfields[1].id}">{$customfields[1].name}</label>
+                                    {$customfields[1].input}
+                                    {if $customfields[1].description}
+                                        <span class="field-help-text">
+                                            {$customfields[1].description}
+                                        </span>
+                                    {/if}
+                                </div>
+                            </td>
+                            </tr>
+                            <!-- Benutzername und E-Mail Adresse -->
+                            <tr>
+                            <td align='left'>
+                                <div class="form-group">
+                                    <label for="customfield{$customfields[2].id}">{$customfields[2].name}</label>
+                                    {$customfields[2].input}
+                                    {if $customfields[2].description}
+                                        <span class="field-help-text">
+                                            {$customfields[2].description}
+                                        </span>
+                                    {/if}
+                                </div>
+                            </td>
+                            <td style="vertical-align:middle;margin:0;padding:0;">
+                            </td>
+                            <td align='left'>
+                                <div class="form-group">
+                                    <label for="customfield{$customfields[3].id}">{$customfields[3].name}</label>
+                                    {$customfields[3].input}
+                                    {if $customfields[3].description}
+                                        <span class="field-help-text">
+                                            {$customfields[3].description}
+                                        </span>
+                                    {/if}
+                                </div>
+                            </td>
+                            </tr>
+                            <!-- Passwort und Passwort wiederholen -->
+                            <tr>
+                            <td align='left'>
+                                <div class="form-group">
+                                    <label for="customfield{$customfields[4].id}">{$customfields[4].name}</label>
+                                    {$customfields[4].input}
+                                    {if $customfields[4].description}
+                                        <span class="field-help-text" onclick="this.previousElementSibling.type='text';this.innerHTML='';">
+                                            <text style="cursor:pointer;">&#x1F441;</text>&nbsp;{$customfields[4].description}
+                                        </span>
+                                    {/if}
+                                </div>
+                            </td>
+                            <td></td>
+                            <td align='left'>
+                                <div class="form-group">
+                                    <label for="customfield{$customfields[5].id}">{$customfields[5].name}</label>
+                                    {$customfields[5].input}
+                                    {if $customfields[5].description}
+                                        <span class="field-help-text">
+                                            {$customfields[5].description}
+                                        </span>
+                                    {/if}
+                                </div>
+                            </td>
+                            </tr>
+                        </table>
+                        </div>
+                        <div class="alert alert-info">
+                            <div id='hints'>
+                                <strong id='hintHead'></strong>
+                                <div id='hintLength'></div>
+                                <div id='hintNumeric'></div>
+                                <div id='hintSymbols'></div>
+                                <div id='hintUpperLower'></div>
                             </div>
                             </div>
-
-                        {/if}
-			{*
-			This requires a list of custom fields in exact this order:
-			
-			firstname|Vorname		-> customfields[0]
-			lastname|Nachname		-> customfields[1]
-			username|Benutzername		-> customfields[2]
-			email|E-Mail-Addresse		-> customfields[3]
-			password|Passwort		-> customfields[4]
-			pwrepeat|Passwort wiederholen	-> customfields[5]
-			*}
-
-
-                        {if $customfields}
-                            <div class="sub-heading">
-                                <span>{$LANG.orderadditionalrequiredinfo}</span>
+                        </div>
+                    {/if}
+                    {if $addons || count($addonsPromoOutput) > 0}
+                        <div class="sub-heading">
+                            <span>{$LANG.cartavailableaddons}</span>
+                        </div>
+                        {foreach $addonsPromoOutput as $output}
+                            <div>
+                                {$output}
                             </div>
                             </div>
-                            <div class="field-container">
-                            <table width="100%" border="0" cellpadding="10" cellspacing="0" class="table table-borderless">
-                              <!-- Vorname und Nachname -->
-                              <tr>
-                                <td align='left'>
-                                    <div class="form-group">
-                                        <label for="customfield{$customfields[0].id}">{$customfields[0].name}</label>
-                                        {$customfields[0].input}
-                                        {if $customfields[0].description}
-                                            <span class="field-help-text">
-                                                {$customfields[0].description}
-                                            </span>
-                                        {/if}
-                                    </div>
-                                </td>
-                                <td></td>
-                                <td align='left'>
-                                    <div class="form-group">
-                                        <label for="customfield{$customfields[1].id}">{$customfields[1].name}</label>
-                                        {$customfields[1].input}
-                                        {if $customfields[1].description}
-                                            <span class="field-help-text">
-                                                {$customfields[1].description}
-                                            </span>
-                                        {/if}
-                                    </div>
-                                </td>
-                              </tr>
-                              <!-- Benutzername und E-Mail Adresse -->
-                              <tr>
-                                <td align='left'>
-                                    <div class="form-group">
-                                        <label for="customfield{$customfields[2].id}">{$customfields[2].name}</label>
-                                        {$customfields[2].input}
-                                        {if $customfields[2].description}
-                                            <span class="field-help-text">
-                                                {$customfields[2].description}
-                                            </span>
-                                        {/if}
-                                    </div>
-                                </td>
-                                <td style="vertical-align:middle;margin:0;padding:0;">
-                                </td>
-                                <td align='left'>
-                                    <div class="form-group">
-                                        <label for="customfield{$customfields[3].id}">{$customfields[3].name}</label>
-                                        {$customfields[3].input}
-                                        {if $customfields[3].description}
-                                            <span class="field-help-text">
-                                                {$customfields[3].description}
-                                            </span>
-                                        {/if}
-                                    </div>
-                                </td>
-                              </tr>
-                              
-                              <!-- Passwort und Passwort wiederholen -->
-                              <tr>
-                                <td align='left'>
-                                    <div class="form-group">
-                                        <label for="customfield{$customfields[4].id}">{$customfields[4].name}</label>
-                                        {$customfields[4].input}
-                                        {if $customfields[4].description}
-                                            <span class="field-help-text" onclick="this.previousElementSibling.type='text';this.innerHTML='';">
-                                                <text style="cursor:pointer;">&#x1F441;</text>&nbsp;{$customfields[4].description}
-                                            </span>
-                                        {/if}
-                                    </div>
-                                </td>
-                                <td></td>
-                                <td align='left'>
-                                    <div class="form-group">
-                                        <label for="customfield{$customfields[5].id}">{$customfields[5].name}</label>
-                                        {$customfields[5].input}
-                                        {if $customfields[5].description}
-                                            <span class="field-help-text">
-                                                {$customfields[5].description}
-                                            </span>
+                        {/foreach}
+                        <!-- Addon Products -->
+                        <div class="row addon-products">
+                            {foreach $addons as $addon}
+                                <!-- Addon Products {$addon.name} -->
+                                <div class="col-sm-{if count($addons) > 1}6{else}12{/if}"">
+                                    <div class="panel panel-default panel-addon{if $addon.status} panel-addon-selected{/if}">
+                                        <div class="panel-body">
+                                            <input type="checkbox" name="addons[{$addon.id}]"{if $addon.status} checked{/if} />
+                                            <span class="panel-addon-name">{$addon.name}</span>
+                                            <span class="panel-addon-price">{$addon.pricing}</span>
+                                            <p class="text-muted">{$addon.description}</p>
+                                        </div>
+                                        {if $addon.allowsQuantity === 2}
+                                            {include file="templates/orderforms/{$carttpl}/addon-hint.tpl"}
                                         {/if}
                                         {/if}
                                     </div>
                                     </div>
-                                </td>
-                              </tr>
-
-                            </table>
-                            </div>
-                            <div class="alert alert-info">
-                                <div id='hints'>
-                                    <strong id='hintHead'></strong>
-                                    <div id='hintLength'></div>
-                                    <div id='hintNumeric'></div>
-                                    <div id='hintSymbols'></div>
-                                    <div id='hintUpperLower'></div>
-                                </div>
-                            </div>
-                        {/if}
-
-                        {if $addons || count($addonsPromoOutput) > 0}
-
-                            <div class="sub-heading">
-                                <span>{$LANG.cartavailableaddons}</span>
-                            </div>
-
-                            {foreach $addonsPromoOutput as $output}
-                                <div>
-                                    {$output}
                                 </div>
                                 </div>
                             {/foreach}
                             {/foreach}
-			    <!-- Addon Products -->
-                            <div class="row addon-products">
-                                {foreach $addons as $addon}
-                                    <!-- Addon Products {$addon.name} -->
-                                    <div class="col-sm-{if count($addons) > 1}6{else}12{/if}"">
-                                        <div class="panel panel-default panel-addon{if $addon.status} panel-addon-selected{/if}">
-                                            <div class="panel-body">
-                                               <input type="checkbox" name="addons[{$addon.id}]"{if $addon.status} checked{/if} />
-                                                <span class="panel-addon-name">{$addon.name}</span>
-						<span class="panel-addon-price">{$addon.pricing}</span>
-                                                <p class="text-muted">{$addon.description}</p>
-                                            </div>
-                                            <div class="panel-add">
-                                        	<i class="fas fa-plus"></i>
-                                        	{$LANG.addtocart}
-                                            </div>
-                                        </div>
-                                    </div>
-                                {/foreach}
-                            </div>
-
-                        {/if}
-
-                        <div class="alert alert-warning text-center">
-                            <i class="fas fa-question-circle"></i>
-                            {$LANG.orderForm.haveQuestionsContact} <a href="contact.php" target="_blank" class="alert-link">{$LANG.orderForm.haveQuestionsClickHere}</a>
                         </div>
                         </div>
-
+                    {/if}
+                    <div class="alert alert-warning text-center">
+                        <i class="fas fa-question-circle"></i>
+                        {$LANG.orderForm.haveQuestionsContact} <a href="contact.php" target="_blank" class="alert-link">{$LANG.orderForm.haveQuestionsClickHere}</a>
                     </div>
                     </div>
-                    {include file="templates/orderforms/{$carttpl}/sidebar-price.tpl"}
                 </div>
                 </div>
+                {include file="templates/orderforms/{$carttpl}/sidebar-price.tpl"}
             </form>
             </form>
         </div>
         </div>
     </div>
     </div>
 </div>
 </div>
-
 {if file_exists("templates/orderforms/{$carttpl}/layouts/foot.tpl")}
 {if file_exists("templates/orderforms/{$carttpl}/layouts/foot.tpl")}
 	{include file="templates/orderforms/{$carttpl}/layouts/foot.tpl"}
 	{include file="templates/orderforms/{$carttpl}/layouts/foot.tpl"}
 {/if}
 {/if}
-
-
 <script language="javascript">
 <script language="javascript">
 	recalctotals();
 	recalctotals();
 </script>
 </script>
-
-
 <script type="text/javascript" src="{$WEB_ROOT}/templates/orderforms/{$carttpl}/js/ResizeSensor.js"></script>
 <script type="text/javascript" src="{$WEB_ROOT}/templates/orderforms/{$carttpl}/js/ResizeSensor.js"></script>
 <script type="text/javascript" src="{$WEB_ROOT}/templates/orderforms/{$carttpl}/js/jquery.sticky-sidebar.min.js"></script>
 <script type="text/javascript" src="{$WEB_ROOT}/templates/orderforms/{$carttpl}/js/jquery.sticky-sidebar.min.js"></script>
-
 <script>
 <script>
     jQuery('#sidebar').stickySidebar({
     jQuery('#sidebar').stickySidebar({
         topSpacing: 60,
         topSpacing: 60,