Home Affiliates Marketing Domains Marketing Webhost Services Contact Us

Whmcs:设置购买VPS时,取消NS填写和自动生成hostname

 修改这些只需要将购物车模板的configureproduct.tpl(文件位于templates/orderforms/stardand_cart)文件修改即可,具体修改步骤如下:

找到相应的NS填写的div块,然后增加样式


style="display:none;"

并将以下类似代码中的value值修改。


<input type="text" name="ns1prefix" class="form-control" id="inputNs1prefix" value="ns1.qsvm.com" placeholder="ns1">

<input type="text" name="ns2prefix" class="form-control" id="inputNs2prefix" value="ns2.qsvm.com" placeholder="ns2">

关于自动生成hostname:


只需将底下这段代码,增加到这个文件的底部即可:


<script>

$("#inputHostname").val("vm"+((new Date()).getMonth()+1).toString()+(new Date()).getDate()+parseInt(Math.random()*(999+1),10)+".qsvm.com");

</script>

另外如果你不想让用户修改hostname,你可以将底下的这个类似代码修改为我这样子:


 <input type="text" name="hostname" autocomplete="false" readonly="readonly" class="form-control" id="inputHostname" value="{$server.hostname}" placeholder="servername.qsvm.com">

转自

here is the correct 购物车模板的configureproduct.tpl 文件:

{include file="orderforms/standard_cart/common.tpl"}


<script>

var _localLang = {

    'addToCart': '{$LANG.orderForm.addToCart|escape}',

    'addedToCartRemove': '{$LANG.orderForm.addedToCartRemove|escape}'

}

</script>


<div id="order-standard_cart">


    <div class="row">


        <div class="pull-md-right col-md-9">


            <div class="header-lined">

                <h1>{$LANG.orderconfigure}</h1>

            </div>


        </div>


        <div class="col-md-3 pull-md-left sidebar hidden-xs hidden-sm">


            {include file="orderforms/standard_cart/sidebar-categories.tpl"}


        </div>


        <div class="col-md-9 pull-md-right">


            {include file="orderforms/standard_cart/sidebar-categories-collapsed.tpl"}


            <form id="frmConfigureProduct">

                <input type="hidden" name="configure" value="true" />

                <input type="hidden" name="i" value="{$i}" />


                <div class="row">

                    <div class="col-md-8">


                        <p>{$LANG.orderForm.configureDesiredOptions}</p>


                        <div class="product-info">

                            <p class="product-title">{$productinfo.name}</p>

                            <p>{$productinfo.description}</p>

                        </div>


                        <div class="alert alert-danger 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>

                                    <select name="billingcycle" id="inputBillingcycle" class="form-control select-inline" 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-xs" 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" style="display:none;">

                                            <label for="inputRootpw">{$LANG.serverrootpw}</label>

                                            <input type="password" name="rootpw" class="form-control" id="inputRootpw" value="123456">

                                        </div>

                                    </div>

                                </div>


                                <div class="row">

                                    <div class="col-sm-6">

                                        <div class="form-group" style="display:none;">

                                            <label for="inputNs1prefix">{$LANG.serverns1prefix}</label>

                                            <input type="text" name="ns1prefix" class="form-control" id="inputNs1prefix" value="ns1" placeholder="ns1">

                                        </div>

                                    </div>

                                    <div class="col-sm-6">

                                        <div class="form-group" style="display:none;">

                                            <label for="inputNs2prefix">{$LANG.serverns2prefix}</label>

                                            <input type="text" name="ns2prefix" class="form-control" id="inputNs2prefix" value="ns2" placeholder="ns2">

                                        </div>

                                    </div>

                                </div>


                            </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-6">

                                                <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-6">

                                                <div class="form-group">

                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>

                                                    {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>

                                                    {/foreach}

                                                </div>

                                            </div>

                                        {elseif $configoption.optiontype eq 3}

                                            <div class="col-sm-6">

                                                <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}

                                                            {$LANG.enable}

                                                        {/if}

                                                    </label>

                                                </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="{$BASE_PATH_JS}/ion.rangeSlider.min.js"></script>

                                                            <link href="{$BASE_PATH_CSS}/ion.rangeSlider.css" rel="stylesheet">

                                                            <link href="{$BASE_PATH_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>

                                        {/if}

                                        {if $num % 2 != 0}

                                            </div>

                                            <div class="row">

                                        {/if}

                                    {/foreach}

                                </div>

                            </div>


                        {/if}


                        {if $customfields}


                            <div class="sub-heading">

                                <span>{$LANG.orderadditionalrequiredinfo}</span>

                            </div>


                            <div class="field-container">

                                {foreach $customfields as $customfield}

                                    <div class="form-group">

                                        <label for="customfield{$customfield.id}">{$customfield.name}</label>

                                        {$customfield.input}

                                        {if $customfield.description}

                                            <span class="field-help-text">

                                                {$customfield.description}

                                            </span>

                                        {/if}

                                    </div>

                                {/foreach}

                            </div>


                        {/if}


                        {if $addons || count($addonsPromoOutput) > 0}


                            <div class="sub-heading">

                                <span>{$LANG.cartavailableaddons}</span>

                            </div>


                            {foreach $addonsPromoOutput as $output}

                                <div>

                                    {$output}

                                </div>

                            {/foreach}


                            <div class="row addon-products">

                                {foreach $addons as $addon}

                                    <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">

                                                <label>

                                                    <input type="checkbox" name="addons[{$addon.id}]"{if $addon.status} checked{/if} />

                                                    {$addon.name}

                                                </label><br />

                                                {$addon.description}

                                            </div>

                                            <div class="panel-price">

                                                {$addon.pricing}

                                            </div>

                                            <div class="panel-add">

                                                <i class="fas fa-plus"></i>

                                                {$LANG.addtocart}

                                            </div>

                                        </div>

                                    </div>

                                {/foreach}

                            </div>


                        {/if}


                        <div class="alert alert-warning info-text-sm">

                            <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>

                    <div class="col-md-4" id="scrollingPanelContainer">


                        <div id="orderSummary">

                            <div class="order-summary">

                                <div class="loader" id="orderSummaryLoader">

                                    <i class="fas fa-fw fa-sync fa-spin"></i>

                                </div>

                                <h2>{$LANG.ordersummary}</h2>

                                <div class="summary-container" id="producttotal"></div>

                            </div>

                            <div class="text-center">

                                <button type="submit" id="btnCompleteProductConfig" class="btn btn-primary btn-lg">

                                    {$LANG.continue}

                                    <i class="fas fa-arrow-circle-right"></i>

                                </button>

                            </div>

                        </div>


                    </div>


                </div>


            </form>

        </div>

    </div>

</div>


<script>recalctotals();</script>

<script>

$("#inputHostname").val("vps"+((new Date()).getMonth()+1).toString()+(new Date()).getDate()+"-"+parseInt(Math.random()*(999+1),10)+".whmcs.auto");

</script>