OSB enhancements to date

This commit is contained in:
Deon George
2010-11-30 09:41:08 +11:00
parent 8715a2059b
commit ec6a542bc3
478 changed files with 23423 additions and 9309 deletions

View File

@@ -107,5 +107,10 @@
<div>
<input type="hidden" name="product_active" value="1"/>
<input type="hidden" name="product_discount" value="0"/>
<input type="hidden" name="product_price_group" value=""/>
<input type="hidden" name="product_price_recurr_type" value=""/>
<input type="hidden" name="product_price_recurr_weekday" value=""/>
<input type="hidden" name="product_price_recurr_week" value=""/>
<input type="hidden" name="product_price_recurr_default" value=""/>
</div>
</form>

View File

@@ -7,12 +7,13 @@
{else}
<div style="text-align: center;">
<input type="submit" onclick="addCart('cart','{$product.host}')" name="cart" value="{t}Add to Cart{/t}" class="form_button"/><br/>
<input type="submit" onclick="addCart('cart','{$record.host}')" name="cart" value="{t}Add to Cart{/t}" class="form_button"/><br/>
<br/>
</div>
<form id="view" name="product_view" method="post" action="" enctype="multipart/form-data">
{if $list->translate('product_translate','name,description_full','product_id',$product.id,'translate_product')}{/if}
<form id="view" name="view" method="post" action="" enctype="multipart/form-data">
{if $list->translate('product_translate','name,description_full','product_id',$record.id,'translate_product')}{/if}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td><b>{$translate_product.name}</b></td>
@@ -27,8 +28,8 @@
<td style="width: 50%;">&nbsp;</td>
</tr>
<tr valign="top" class="row1">
<td style="width: 50%;">{$product.sku}</td>
<td style="width: 50%;" valign="middle">{if $product.cart_multiple} {t}Quantity{/t}: <input name="quantity" type="text" id="quantity" value="1" size="3" maxlength="3"/>{/if}</td>
<td style="width: 50%;">{$record.sku}</td>
<td style="width: 50%;" valign="middle">{if $record.cart_multiple} {t}Quantity{/t}: <input name="quantity" type="text" id="quantity" value="1" size="3" maxlength="3"/>{/if}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
@@ -37,190 +38,38 @@
<td style="width: 50%;"><b>{osb f=tf field=taxable}</b></td>
</tr>
<tr valign="top">
<td style="width: 50%;">{$list->menu_staticlist('pricetype','','',$product.price_type,'form_menu')}</td>
<td style="width: 50%;">{$list->bool('',$product.taxable,'form_field')}</td>
<td style="width: 50%;">{$list->menu_staticlist('pricetype','','',$record.price_type,'form_menu')}</td>
<td style="width: 50%;">{$list->bool('',$record.taxable,'form_field')}</td>
</tr>
</table>
{if $product.price_type == '1'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td style="width: 50%;"><b>{osb f=tf field=price_recurr_type}</b></td>
</tr>
<tr valign="top" class="row1">
<td style="width: 50%;">
<select name="recurr_schedule">
{foreach from=$price item=price_recurr key=key}
<option value="{$key}" {if $product.price_recurr_default == $key} selected="selected"{/if}>
{$list->format_currency($price_recurr.base,$smarty.const.SESS_CURRENCY)}&nbsp;
{$list->menu_staticlist('recur_schedule','','',$key,'form_menu')}
{if $price_recurr.setup > 0}+&nbsp;{$list->format_currency($price_recurr.setup,$smarty.const.SESS_CURRENCY)} {t}Setup{/t}{/if}
</option>
{/foreach}
</select>
</td>
</tr>
</table>
{if $record.price_type == '1'}
{include file='file:ti_product-price_type-1.tpl'}
{elseif $record.price_type == '2'}
{include file='file:ti_product-price_type-2.tpl'}
{else}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td style="width: 50%;"><b>{osb f=tf field=price_base}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=price_setup}</b></td>
</tr>
<tr valign="top">
<td style="width: 50%;">{$list->format_currency($price.base,$smarty.const.SESS_CURRENCY)}</td>
<td style="width: 50%;">{$list->format_currency($price.setup,$smarty.const.SESS_CURRENCY)}</td>
</tr>
</table>
{/if}
{if $product.price_type == '2'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top">
<td width="76%">
{translate module=product sku=$trial.sku}trial_desc{/translate}<br/>
{if $product.price_trial_length_type == '0'}{translate module=product sku1=$trial.sku length=$product.price_trial_length}trial_length_days{/translate}{/if}
{if $product.price_trial_length_type == '1'}{translate module=product sku1=$trial.sku length=$product.price_trial_length}trial_length_weeks{/translate}{/if}
{if $product.price_trial_length_type == '2'}{translate module=product sku1=$trial.sku length=$product.price_trial_length}trial_length_months{/translate}{/if}
<br/>
{translate module=product sku2=$trial.sku}trial_bill_desc{/translate}
</td>
</tr>
</table>
{include file='file:ti_product-price_type-x.tpl'}
{/if}
{if $attr}
<br/>
{foreach from=$attr item=attr_arr key=key}
{assign var=attr_id value=$attr_arr.id}
{if $attr_arr.type == '0'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="middle" class="row2">
<td width="96%">&nbsp;
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="row2">
<tr>
<td width="70%" valign="middle"><b>{$attr_arr.name}</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}{$list->format_currency($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency($attr_arr.price_setup,$smarty.const.SESS_CURRENCY)}
{translate module=product}setup{/translate}
{/if}
</td>
</tr>
</table>
</td>
</tr>
{if $attr_arr.description}
<tr valign="top">
<td width="96%">&nbsp;&nbsp;<input type="checkbox" name="attr[{$attr_id}]" value="Yes" {if $VAR.attr[$attr_id] || $attr_arr.default}checked="checked"{/if}/>&nbsp;{$attr_arr.description}</td>
</tr>
{/if}
</table>
{include file='file:ti_product_attr-collect_type-0.tpl'}
{elseif $attr_arr.type == '1'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="middle" class="row2">
<td width="96%">&nbsp;
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="row2">
<tr>
<td width="70%" valign="middle"><b>{$attr_arr.name}</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}{$list->format_currency($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{translate module=product}setup{/translate}
{/if}
</td>
</tr>
</table>
</td>
</tr>
{if $attr_arr.description}
<tr valign="top">
<td width="96%">&nbsp;&nbsp;<input type="text" id="attr_{$attr_id}" name="attr[{$attr_id}]" size="20"/>&nbsp;{$attr_arr.description}</td>
</tr>
{/if}
</table>
{include file='file:ti_product_attr-collect_type-1.tpl'}
{elseif $attr_arr.type == '2'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="middle" class="row2">
<td width="96%">&nbsp;
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="row2">
<tr>
<td width="70%" valign="middle"><b>{$attr_arr.name}</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}{$list->format_currency($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{translate module=product}setup{/translate}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
<select id="attr_{$attr_id}" name="attr[{$attr_id}]" >
{foreach from=$attr_arr.default item=attr_menu key=attr_key}
<option value="{$attr_menu.name}">
{$attr_menu.name}
{if $attr_menu.base > 0}: {$list->format_currency_num($attr_menu.base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_menu.base > 0 && $attr_menu.setup > 0} + {elseif $attr_menu.base <= 0 && $attr_menu.setup > 0}: {/if}
{if $attr_menu.setup > 0}
{$list->format_currency_num($attr_menu.setup, $smarty.const.SESS_CURRENCY)}
{translate module=product}setup{/translate}
{/if}
</option>
{/foreach}
</select>
&nbsp;{$attr_arr.description}
</td>
</tr>
</table>
{include file='file:ti_product_attr-collect_type-2.tpl'}
{/if}
{/foreach}
{/if}
{if $product.host}
{if $record.host}
<br/>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="middle" class="row2">
<td width="96%">&nbsp;
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="row2">
<tr>
<td width="70%" valign="middle"><b>{translate module=product}domain_options{/translate}</b></td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
{if $product.host_allow_domain}
<input type="radio" id="register" name="domain_type" value="register" onclick="domainUpdate('0','0','register'); showIFrame('iframeDomain',500,100,'?_page=host_tld:iframe_register&_escape=1');"/>
{translate module=product}domain_register{/translate}<br/>
<input type="radio" id="transfer" name="domain_type" value="transfer" onclick="domainUpdate('0','0','transfer'); showIFrame('iframeDomain',500,100,'?_page=host_tld:iframe_transfer&_escape=1');"/>
{translate module=product}domain_transfer{/translate}
{/if}
<br/>
<input type="radio" id="ns_transfer" name="domain_type" value="ns_transfer" onclick="domainUpdate('0','0','ns_transfer'); showIFrame('iframeDomain',500,70,'?_page=host_tld:iframe_ns_transfer&_escape=1');"/>
{translate module=product}domain_ns_transfer{/translate}
{if $product.host_allow_host_only}
<br/>
<input type="radio" id="ip" name="domain_type" value="ip" onclick="domainUpdate('0','0','ip'); hideIFrame('iframeDomain');"/>
{translate module=product}domain_ip{/translate}<br/>
{/if}
<input type="hidden" id="domain_name" name="domain_name" value="0"/>
<input type="hidden" id="domain_tld" name="domain_tld" value="0"/>
<input type="hidden" id="domain_option" name="domain_option" value="0"/>
<iframe name="iframeDomain" id="iframeDomain" style="border:0px; width:100%; height:0px;" scrolling="no" width="100%" ALLOWTRANSPARENCY="false" frameborder="0" class="row1"><br></iframe>
</td>
</tr>
</table>
{include file='file:ti_product_host.tpl'}
{/if}
{if $product.prod_plugin}
{if $record.prod_plugin}
<table>
<tr valign="top">
<td align="left">{osb f=plugin type=product name=$product.prod_plugin_file name_prefix=order_ data=$product.prod_plugin_data admin=true}</td>
<td align="left">{osb f=plugin type=product name=$record.prod_plugin_file name_prefix=order_ data=$record.prod_plugin_data admin=true}</td>
</tr>
</table>
{/if}
@@ -228,38 +77,48 @@
<div>
<input type="hidden" id="page" name="_page" value=""/>
<input type="hidden" name="do[]" value="cart:admin_add"/>
<input type="hidden" name="product_id" value="{$product.id}"/>
<input type="hidden" name="product_id" value="{$record.id}"/>
<input type="hidden" name="account_id" value="{$VAR.account_id}"/>
</div>
</form>
<script type="text/javascript" src="themes/default/cart.js"></script>
<script type="text/javascript" src="themes/default/blocks/product/product.js"></script>
<script type="text/javascript">
<!--
{literal}
function attrValidate(addtype) {
var val_arr = new Array(2);
var i=0;
{/literal} {foreach from=$attr item=attr_arr key=key} {assign var=attr_id value=$attr_arr.id}{if $attr_arr.required == "1"}
val_arr[i] = new Array ('attr_{$attr_id}','{$attr_arr.name}','{$attr_arr.type}');
i++;
{/if}{/foreach} {literal}
for(ii=0; ii < i; ii++) {
if(!document.getElementById(val_arr[ii][0]).value) {
{/literal}
{foreach from=$attr item=attr_arr key=key}
{assign var=attr_id value=$attr_arr.id}
{if $attr_arr.required == '1'}
val_arr[i] = new Array ('attr_{$attr_id}','{$attr_arr.name}','{$attr_arr.type}');
i++;
{/if}
{/foreach}
{literal}
for (ii=0; ii < i; ii++) {
if (! document.getElementById(val_arr[ii][0]).value) {
document.getElementById(val_arr[ii][0]).focus();
if(val_arr[ii][2] == "1") {
alert("You must select an option for \""+val_arr[ii][1]+"\"");
if(val_arr[ii][2] == '1') {
alert('You must select an option for "'+val_arr[ii][1]+'"');
} else {
alert("You must enter a value for the product option \""+val_arr[ii][1]+"\"")
alert('You must enter a value for the product option "'+val_arr[ii][1]+'"')
}
return false;
}
}
// product plugin validation:
var val_plugin=false;
try{ val_plugin = product_plugin_validate(); } catch(e) { val_plugin = true; }
if(val_plugin) doCart(addtype);
try{val_plugin = product_plugin_validate();} catch(e) {val_plugin = true;}
if (val_plugin)
doCart(addtype);
}
{/literal}
//-->

View File

@@ -2,13 +2,13 @@
<!-- {$meth.0}:{$meth.1} -->
{$method->exe($meth.0,$meth.1)}
{if ($method->result == false) || ! $product}
{if ($method->result == false) || ! $record}
{$block->display('core:method_error')}
{else}
<form id="view" method="post" action="" enctype="multipart/form-data">
{if $list->translate('product_translate','name,description_full','product_id',$product.id,'translate_product')}{/if}
{if $list->translate('product_translate','name,description_full','product_id',$record.id,'translate_product')}{/if}
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_background">
<tr>
<td>
@@ -18,10 +18,10 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_heading_cart">
<tr valign="top">
<td style="width: 75%;">
{if $list->translate('product_translate','name,description_short,description_full','product_id',$product.id,'prod_translate')}
{$prod_translate.name}
{if $translate_product.name}
{$translate_product.name}
{else}
{$product.sku}
{$record.sku}
{/if}
</td>
<td style="width: 25%;" valign="middle" align="right">&nbsp;</td>
@@ -36,14 +36,19 @@
<td align="left">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td style="width: 50%;">
{if $product.thumbnail != ''}<img src="{$URL}{$smarty.const.URL_IMAGES}{$product.thumbnail}" alt="" hspace="5" style="border: 0px"/>{/if}
<td>
{if $record.thumbnail != ''}<img src="{$URL}{$smarty.const.URL_IMAGES}{$record.thumbnail}" alt="" hspace="5" style="border: 0px"/>{/if}
{$translate_product.description_full}
</td>
</tr>
</table>
</td>
</tr>
{if $record.prod_plugin}
<tr valign="top">
<td align="left">{osb f=plugin type=product name=$record.prod_plugin_file name_prefix=order_ data=$record.prod_plugin_data}</td>
</tr>
{/if}
<tr valign="top">
<td align="left">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
@@ -52,7 +57,7 @@
<td style="width: 50%;"><b>{t}Currency{/t}</b></td>
</tr>
<tr valign="top" class="body">
<td style="width: 50%;">{$product.sku}</td>
<td style="width: 50%;">{$record.sku}</td>
<td style="width: 50%;" valign="middle">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
@@ -76,242 +81,49 @@
<td style="width: 50%;"><b>{osb f=tf field=taxable}</b></td>
</tr>
<tr valign="top">
<td style="width: 50%;">{$list->menu_staticlist('pricetype','','',$product.price_type,'form_menu')}</td>
<td style="width: 50%;">{$list->bool('',$product.taxable,'form_field')}</td>
<td style="width: 50%;">{$list->menu_staticlist('pricetype','','',$record.price_type,'form_menu')}</td>
<td style="width: 50%;">{$list->bool('',$record.taxable,'form_field')}</td>
</tr>
</table>
{if $product.price_type == '1'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td style="width: 50%;"><b>{osb f=tf field=price_recurr_type}</b></td>
</tr>
<tr valign="top" class="body">
<td style="width: 50%;">
<select name="recurr_schedule">
{foreach from=$price item=price_recurr key=key}
<option value="{$key}" {if $product.price_recurr_default == $key} selected="selected"{/if}>
{$list->format_currency($price_recurr.base,$smarty.const.SESS_CURRENCY)}&nbsp;
{$list->menu_staticlist('recur_schedule','','',$key,'form_menu')}
{if $price_recurr.setup > 0}+&nbsp;{$list->format_currency($price_recurr.setup,$smarty.const.SESS_CURRENCY)} {t}Setup{/t}{/if}
</option>
{/foreach}
</select>
</td>
</tr>
</table>
{else}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td style="width: 50%;"><b>{osb f=tf field=price_base}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=price_setup}</b></td>
</tr>
<tr valign="top">
<td style="width: 50%;">{$list->format_currency($price.base,$smarty.const.SESS_CURRENCY)}</td>
<td style="width: 50%;">{$list->format_currency($price.setup,$smarty.const.SESS_CURRENCY)}</td>
</tr>
</table>
{/if}
{if $product.price_type == '2'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top">
<td width="76%">
{translate module=product sku=$trial.sku}trial_desc{/translate} <a href="?_page=product:details&id={$product.price_trial_prod}">{translate}view{/translate}</a><br/>
{if $product.price_trial_length_type == "0"}{translate module=product sku1=$trial.sku length=$product.price_trial_length}trial_length_days{/translate}{/if}
{if $product.price_trial_length_type == "1"}{translate module=product sku1=$trial.sku length=$product.price_trial_length}trial_length_weeks{/translate}{/if}
{if $product.price_trial_length_type == "2"}{translate module=product sku1=$trial.sku length=$product.price_trial_length}trial_length_months{/translate}{/if}<br/>
{translate module=product sku2=$trial.sku}trial_bill_desc{/translate}
This trial will last for %%length%% weeks before it expires and you are billed for the full cost of SKU %%sku1%%.
</td>
</tr>
</table>
{/if}
{if $attr}
<br/>
{foreach from=$attr item=attr_arr key=key}
{assign var=attr_id value=$attr_arr.id}
{if $attr_arr.type == '0'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>{$attr_arr.name}</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{t}Setup{/t}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%"><input type="checkbox" name="attr[{$attr_id}]" value="Yes" {if $VAR.attr[$attr_id] || $attr_arr.default}checked="checked"{/if}/>{$attr_arr.description}</td>
</tr>
</table>
{elseif $attr_arr.type == "1"}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>{$attr_arr.name}</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{t}Setup{/t}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%"><input type="text" id="attr_{$attr_id}" name="attr[{$attr_id}]" size="20"/>{$attr_arr.description}</td>
</tr>
</table>
{elseif $attr_arr.type == "3"}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>{$attr_arr.name}</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{t}Setup{/t}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%"><textarea id="attr_{$attr_id}" name="attr[{$attr_id}]2" cols="50" rows="3"></textarea>&nbsp;{$attr_arr.description}</td>
</tr>
</table>
{elseif $attr_arr.type == '2'}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>{$attr_arr.name}</b></td>
<td width="30%" valign="middle" align="right">&nbsp;</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
<select id="attr_{$attr_id}" name="attr[{$attr_id}]">
{foreach from=$attr_arr.default item=attr_menu key=attr_key}
<option value="{$attr_menu.name}">
{$attr_menu.name}
{if $attr_menu.base > 0}: {$list->format_currency_num($attr_menu.base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_menu.base > 0 && $attr_menu.setup > 0} + {elseif $attr_menu.base <= 0 && $attr_menu.setup > 0}: {/if}
{if $attr_menu.setup > 0}
{$list->format_currency_num($attr_menu.setup, $smarty.const.SESS_CURRENCY)}
{t}Setup{/t}
{/if}
</option>
{/foreach}
</select>
&nbsp;
{$attr_arr.description}
</td>
</tr>
</table>
{/if}
{/foreach}
{/if}
{if $product.host}
<br/>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>{t}Domain Transfer / Registrations Options{/t}</b></td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
{if $product.host_allow_domain}
<input type="radio" id="register" name="domain_type" value="register" onClick="domainUpdate('0','0','register'); showIFrame('iframeDomainDetails',480,95,'?_page=host_tld:iframe_register&_escape=1');"> {translate module=product}domain_register{/translate}<br/>
<input type="radio" id="transfer" name="domain_type" value="transfer" onClick="domainUpdate('0','0','transfer'); showIFrame('iframeDomainDetails',480,110,'?_page=host_tld:iframe_transfer&_escape=1');"> {translate module=product}domain_transfer{/translate}<br/>
{/if}
<input type="radio" id="ns_transfer" name="domain_type" value="ns_transfer" onClick="domainUpdate('0','0','ns_transfer'); showIFrame('iframeDomainDetails',480,70,'?_page=host_tld:iframe_ns_transfer&_escape=1');">{translate module=product}domain_ns_transfer{/translate}
{if $product.host_allow_host_only}
<br/>
<input type="radio" id="ip" name="domain_type" value="ip" onClick="domainUpdate('0','0','ip'); hideIFrame('iframeDomainDetails');">{t}All I need is an IP based hosting plan.{/t}<br/>
{/if}
<input type="hidden" id="domain_name" name="domain_name" value="0">
<input type="hidden" id="domain_tld" name="domain_tld" value="0">
<input type="hidden" id="domain_option" name="domain_option" value="0">
<iframe name="iframeDomainDetails" id="iframeDomainDetails" style="border:0px; width:100%; height:0px;" scrolling="no" width="100%" allowtransparency="false" frameborder="0" class="body" SRC="themes/{$THEME_NAME}/IEFrameWarningBypass.htm"><br></iframe>
</td>
</tr>
</table>
{/if}
<script type="text/javascript" src="themes/default/cart.js"></script>
<script type="text/javascript">
<!-- START
{literal}
function CurrencyChange(obj) { document.location='?_page=product:details&id={/literal}{$VAR.id}{literal}&cyid='+obj.value; }
function attrValidate(addtype) {
var val_arr = new Array(2);
var i=0;
{/literal} {foreach from=$attr item=attr_arr key=key} {assign var=attr_id value=$attr_arr.id}{if $attr_arr.required == "1"}
val_arr[i] = new Array ('attr_{$attr_id}','{$attr_arr.name}','{$attr_arr.type}');
i++;
{/if}{/foreach} {literal}
for(ii=0; ii < i; ii++)
{
if(!document.getElementById(val_arr[ii][0]).value) {
document.getElementById(val_arr[ii][0]).focus();
if(val_arr[ii][2] == "1") {
alert("You must select an option for \""+val_arr[ii][1]+"\"");
} else {
alert("You must enter a value for the product option \""+val_arr[ii][1]+"\"")
}
return false;
}
}
// product plugin validation:
var val_plugin=false;
try{ val_plugin = product_plugin_validate(); } catch(e) { val_plugin = true; }
if(val_plugin) doCart(addtype);
}
{/literal}
//-->
</script>
</td>
</tr>
<tr valign="top">
<td align="left">
{if $record.price_type == '1'}
{include file='file:ti_product-price_type-1.tpl'}
{elseif $record.price_type == '2'}
{include file='file:ti_product-price_type-2.tpl'}
{else}
{include file='file:ti_product-price_type-x.tpl'}
{/if}
{if $attr}
<br/>
{foreach from=$attr item=attr_arr key=key}
{assign var=attr_id value=$attr_arr.id}
{if $attr_arr.type == '0'}
{include file='file:ti_product_attr-collect_type-0.tpl'}
{elseif $attr_arr.type == '1'}
{include file='file:ti_product_attr-collect_type-1.tpl'}
{elseif $attr_arr.type == '2'}
{include file='file:ti_product_attr-collect_type-2.tpl'}
{elseif $attr_arr.type == '3'}
{include file='file:ti_product_attr-collect_type-3.tpl'}
{/if}
{/foreach}
{/if}
{if $record.host}
<br/>
{include file='file:ti_product-host.tpl'}
{/if}
{/if}
</td>
</tr>
{if $product.cart_multiple}
{if $record.cart_multiple}
<tr valign="top">
<td align="left"><strong>Quantity:</strong> <input name="quantity" type="text" id="quantity" value="1" size="3" maxlength="3"></td>
</tr>
{/if}
{if $product.prod_plugin}
<tr valign="top">
<td align="left">{osb f=plugin type=product name=$product.prod_plugin_file name_prefix=order_ data=$product.prod_plugin_data}</td>
</tr>
{/if}
</table>
</td>
</tr>
@@ -323,12 +135,61 @@
<div>
<input type="hidden" id="page" name="_page" value=""/>
<input type="hidden" name="do[]" value="cart:add"/>
<input type="hidden" name="product_id" value="{$product.id}"/>
<input type="hidden" name="product_id" value="{$record.id}"/>
<input type="hidden" name="s" value="{$SESS}"/>
</div>
</form>
<p style="text-align: center;">
<input type="submit" onclick="addCart('cart','{$product.host}')" name="cart2" value="{t}Add to Cart{/t}" class="form_button"/>
<input type="submit" onclick="addCart('checkout','{$product.host}')" name="checkout2" value="{t}Add to Cart & Checkout{/t}" class="form_button"/>
<input type="submit" onclick="addCart('cart','{$record.host}')" name="cart2" value="{t}Add to Cart{/t}" class="form_button"/>
<input type="submit" onclick="addCart('checkout','{$record.host}')" name="checkout2" value="{t}Add to Cart & Checkout{/t}" class="form_button"/>
</p>
<script type="text/javascript" src="themes/default/blocks/product/product.js"></script>
<script type="text/javascript">
<!-- START
{literal}
function CurrencyChange(obj) {
{/literal}
document.location='?_page=product:details&id={$VAR.id}&cyid='+obj.value;
{literal}
}
// @todo this function is mostly duplicated in admin_details.tpl & details_wizard.tpl
function attrValidate(addtype) {
var val_arr = new Array(2);
var i=0;
{/literal}
{foreach from=$attr item=attr_arr key=key}
{assign var=attr_id value=$attr_arr.id}
{if $attr_arr.required == '1'}
val_arr[i] = new Array ('attr_{$attr_id}','{$attr_arr.name}','{$attr_arr.type}');
i++;
{/if}
{/foreach}
{literal}
for (ii=0; ii < i; ii++) {
if (! document.getElementById(val_arr[ii][0]).value) {
document.getElementById(val_arr[ii][0]).focus();
if(val_arr[ii][2] == '1') {
alert('You must select an option for "'+val_arr[ii][1]+'"');
} else {
alert('You must enter a value for the product option "'+val_arr[ii][1]+'"')
}
return false;
}
}
// product plugin validation:
var val_plugin=false;
try{val_plugin = product_plugin_validate(); } catch(e) {val_plugin = true;}
if (val_plugin)
doCart(addtype);
}
{/literal}
//-->
</script>

View File

@@ -1,549 +1,187 @@
{ $method->exe("product","details") } { if ($method->result == FALSE || !$product) } { $block->display("core:method_error") } {else}
{if $product}
<form id="product_view" name="product_view" method="post" action="">
<input type="hidden" id="page" name="_page" value="">
<input type="hidden" name="do[]" value="cart:add">
<input type="hidden" name="product_id" value="{$product.id}">
<input type="hidden" name="s" value="{$SESS}">
{if $list->translate("product_translate","name,description_full", "product_id", $product.id, "translate_product")}
{/if}
<table width=100% border="0" cellspacing="0" cellpadding="0" class="table_background">
<tr>
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr valign="top">
<td width="65%">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_heading_cart">
<tr valign="top">
<td width="78%" >
<p>
{if $list->translate("product_translate","name,description_short,description_full","product_id", $product.id, "prod_translate") }
{$prod_translate.name},
{translate module=product} field_sku {/translate} "<u>{$product.sku}</u>"
{else}
{$product.sku}
{/if}
</p>
</td>
<td width="22%" valign="middle" align="right"> <b> </b> </td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="65%" class="body">
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="body" bgcolor="#FFFFFF">
<tr valign="top">
<td width="92%" align="left">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td width="50%">
{if $product.thumbnail != ""}
<img src="{$URL}{$smarty.const.URL_IMAGES}{$product.thumbnail}" hspace="5" border="0">
{/if}
{$translate_product.description_full}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="92%" align="left">
{if $product.price_type == "1" }
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td width="50%"><b>
{translate module=product}
field_price_recurr_type
{/translate}
</b></td>
</tr>
<tr valign="top" class="body">
<td width="50%">
<select name="recurr_schedule" >
{foreach from=$price item=price_recurr key=key}
<option value="{$key}" {if $product.price_recurr_default == $key} selected{/if}>
{$list->format_currency_num($price_recurr.base,$smarty.const.SESS_CURRENCY)}
&nbsp;
{if $key == "0" }
{translate module=product}
recurr_week
{/translate}
{/if}
{if $key == "1" }
{translate module=product}
recurr_month
{/translate}
{/if}
{if $key == "2" }
{translate module=product}
recurr_quarter
{/translate}
{/if}
{if $key == "3" }
{translate module=product}
recurr_semianual
{/translate}
{/if}
{if $key == "4" }
{translate module=product}
recurr_anual
{/translate}
{/if}
{if $key == "5" }
{translate module=product}
recurr_twoyear
{/translate}
{/if}
{if $key == "6" }
{translate module=product}
recurr_threeyear
{/translate}
{/if}
{if $price_recurr.setup > 0}
&nbsp; + &nbsp;
{$list->format_currency_num($price_recurr.setup,$smarty.const.SESS_CURRENCY)}
{translate module=product}
setup
{/translate}
{/if}
</option>
{/foreach}
</select>
</td>
</tr>
</table>
{else}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td width="50%"> <b>
{translate module=product}
field_price_base
{/translate}
</b> </td>
<td width="50%"> <b>
{translate module=product}
field_price_setup
{/translate}
</b> </td>
</tr>
<tr valign="top">
<td width="50%">
{$list->format_currency($price.base, $smarty.const.SESS_CURRENCY)}
</td>
<td width="50%">
{$list->format_currency($price.setup, $smarty.const.SESS_CURRENCY)}
</td>
</tr>
</table>
{/if}
{if $product.price_type == "2"}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top">
<td width="76%">
{translate module=product sku=$trial.sku}
trial_desc
{/translate}
<a href="?_page=product:details&id={$product.price_trial_prod}">
{translate}
view
{/translate}
</a><br>
{if $product.price_trial_length_type == "0"}
{translate module=product sku1=$trial.sku length=$product.price_trial_length}
trial_length_days
{/translate}
{/if}
{if $product.price_trial_length_type == "1"}
{translate module=product sku1=$trial.sku length=$product.price_trial_length}
trial_length_weeks
{/translate}
{/if}
{if $product.price_trial_length_type == "2"}
{translate module=product sku1=$trial.sku length=$product.price_trial_length}
trial_length_months
{/translate}
{/if}
<br>
{translate module=product sku2=$trial.sku}
trial_bill_desc
{/translate}
</td>
</tr>
</table>
{/if}
{if $attr}
<br>
{foreach from=$attr item=attr_arr key=key}
{assign var=attr_id value=$attr_arr.id}
{if $attr_arr.type == "0"}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%"> <b> </b>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>
{$attr_arr.name}
</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}
{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}
{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0}
+
{/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{translate module=product}
setup
{/translate}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
<input type="checkbox" name="attr[{$attr_id}]" value="Yes" {if $VAR.attr[$attr_id] || $attr_arr.default}checked{/if} >
&nbsp;
{$attr_arr.description}
</td>
</tr>
</table>
{elseif $attr_arr.type == "1"}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%"> <b> </b>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>
{$attr_arr.name}
</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}
{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}
{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0}
+
{/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{translate module=product}
setup
{/translate}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
<input type="text" id="attr_{$attr_id}" name="attr[{$attr_id}]" size="20" >
&nbsp;
{$attr_arr.description}
</td>
</tr>
</table>
{elseif $attr_arr.type == "3"}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%"> <b> </b>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>
{$attr_arr.name}
</b></td>
<td width="30%" valign="middle" align="right">
{if $attr_arr.price_base != 0}
{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}
{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0}
+
{/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{translate module=product}
setup
{/translate}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
<textarea id="attr_{$attr_id}" name="attr[{$attr_id}]2" cols="50" rows="3"></textarea>
&nbsp;
{$attr_arr.description}
</td>
</tr>
</table>
{elseif $attr_arr.type == "2"}
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%"> <b> </b>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>
{$attr_arr.name}
</b></td>
<td width="30%" valign="middle" align="right"> </td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
<select id="attr_{$attr_id}" name="attr[{$attr_id}]" >
{foreach from=$attr_arr.default item=attr_menu key=attr_key}
<option value="{$attr_menu.name}">
{$attr_menu.name}
{if $attr_menu.base > 0}
:
{$list->format_currency_num($attr_menu.base, $smarty.const.SESS_CURRENCY)}
{/if}
{if $attr_menu.base > 0 && $attr_menu.setup > 0}
+
{elseif $attr_menu.base <= 0 && $attr_menu.setup > 0}
:
{/if}
{if $attr_menu.setup > 0}
{$list->format_currency_num($attr_menu.setup, $smarty.const.SESS_CURRENCY)}
{translate module=product}
setup
{/translate}
{/if}
</option>
{/foreach}
</select>
&nbsp;
{$attr_arr.description}
</td>
</tr>
</table>
{/if}
{/foreach}
{/if}
{if $product.host}
<br>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td width="96%"> <b> </b>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td width="70%" valign="middle"><b>
{translate module=product}
domain_options
{/translate}
</b></td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="96%">
{if $product.host_allow_domain}
<input type="radio" id="register" name="domain_type" value="register" onClick="domainUpdate('0','0','register'); showIFrame('iframeDomainDetails',480,95,'?_page=host_tld:iframe_register&_escape=1');">
{translate module=product}
domain_register
{/translate}
<br>
<input type="radio" id="transfer" name="domain_type" value="transfer" onClick="domainUpdate('0','0','transfer'); showIFrame('iframeDomainDetails',480,110,'?_page=host_tld:iframe_transfer&_escape=1');">
{translate module=product}
domain_transfer
{/translate}
{/if}
<br>
<input type="radio" id="ns_transfer" name="domain_type" value="ns_transfer" onClick="domainUpdate('0','0','ns_transfer'); showIFrame('iframeDomainDetails',480,70,'?_page=host_tld:iframe_ns_transfer&_escape=1');">
{translate module=product}
domain_ns_transfer
{/translate}
{if $product.host_allow_host_only}
<br>
<input type="radio" id="ip" name="domain_type" value="ip" onClick="domainUpdate('0','0','ip'); hideIFrame('iframeDomainDetails');">
{translate module=product}
domain_ip
{/translate}
<br>
{/if}
<input type="hidden" id="domain_name" name="domain_name" value="0">
<input type="hidden" id="domain_tld" name="domain_tld" value="0">
<input type="hidden" id="domain_option" name="domain_option" value="0">
<iframe name="iframeDomainDetails" id="iframeDomainDetails" style="border:0px; width:100%; height:0px;" scrolling="no" width="100%" allowtransparency="true" frameborder="0" class="body" SRC="themes/{$THEME_NAME}/IEFrameWarningBypass.htm"><br>
</iframe> </td>
</tr>
</table>
{/if}
{literal}
<!-- Define the update delete function -->
<script language="JavaScript">
<!-- START
function domainUpdate(domain,tld,type)
{
document.getElementById("domain_name").value = domain;
document.getElementById("domain_tld").value = tld;
document.getElementById("domain_option").value = type;
}
function addCart(addtype)
{
var hosting = '{/literal}{$product.host}{literal}';
if(addtype == 'register') {
document.getElementById('login').style.display='none';
document.getElementById('input_login').name = 'xxx';
} else if (addtype == 'login') {
document.getElementById('login').style.display='block';
document.getElementById('input_login').name = '_login';
} else {
document.getElementById('login').style.display='none';
document.getElementById('input_login').name = 'xxx';
}
if (hosting == "1")
{
var domain_option =document.getElementById("domain_option").value;
var domain_name =document.getElementById("domain_name").value;
var domain_tld =document.getElementById("domain_tld").value;
if(domain_option == "0")
{
alert("{/literal}{translate module=product}host_domain_opt{/translate}{literal}");
return;
}
if(domain_name == "0" || domain_tld == "0")
{
if(domain_option != "ip")
{
alert("{/literal}{translate module=product}host_domain_inv{/translate}{literal}");
return;
}
}
}
attrValidate(addtype);
}
function attrValidate(addtype)
{
var val_arr = new Array(2);
var i=0;
{/literal} {foreach from=$attr item=attr_arr key=key} {assign var=attr_id value=$attr_arr.id}{if $attr_arr.required == "1"}
val_arr[i] = new Array ('attr_{$attr_id}','{$attr_arr.name}','{$attr_arr.type}');
i++;
{/if}{/foreach} {literal}
for(ii=0; ii < i; ii++)
{
if(!document.getElementById(val_arr[ii][0]).value)
{
document.getElementById(val_arr[ii][0]).focus();
if(val_arr[ii][2] == "1") {
alert("You must select an option for \""+val_arr[ii][1]+"\"");
} else {
alert("You must enter a value for the product option \""+val_arr[ii][1]+"\"")
}
return false;
}
}
doCart(addtype);
}
function doCart(addtype)
{
if(addtype == 'checkout')
{
document.getElementById('page').value = 'checkout:checkout';
document.getElementById('product_view').action = '{/literal}{$SSL_URL}{literal}';
}
else if(addtype == 'login')
{
document.getElementById('page').value = 'checkout:checkout';
document.getElementById('product_view').action = '{/literal}{$SSL_URL}{literal}';
if(document.getElementById('wiz_username').value == '') return;
if(document.getElementById('wiz_password').value == '') return;
}
else if(addtype == 'register')
{
document.getElementById('page').value = 'checkout:checkout';
document.getElementById('product_view').action = '{/literal}{$SSL_URL}{literal}';
}
document.product_view.submit();
}
// END -->
</script>
{/literal}
{/if}
</td>
</tr>
<tr valign="top">
<td width="92%" align="left">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td width="50%"><b> {translate module=product}wizard_finalize_purchase{/translate}</b></td>
</tr>
<tr valign="top" class="body">
<td width="50%">
{if $smarty.const.SESS_LOGGED != 1}
<input type="radio" id="checkout1" name="checkout" value="login" onclick="addCart('login'); document.getElementById('checkout1').checked = false;">
<a href="javascript:addCart('login');;">
{translate module=product}
wizard_checkout_login
{/translate}
</a><br>
<input type="radio" id="checkout2" name="checkout" value="register" onclick="addCart('register'); document.getElementById('checkout2').checked = false;">
<a href="javascript:addCart('register');">
{translate module=product}
wizard_checkout_register
{/translate}
</a> <br>
{else}
<input type="radio" id="checkout" name="checkout" value="register" onclick="addCart('checkout'); document.getElementById('checkout').checked = false;">
<a href="javascript:addCart('checkout');">{translate
module=product}wizard_checkout{/translate}</a>
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="92%" align="left">
<div id="login" style="display:none">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td width="15%">
{translate}
username
{/translate}
</td>
<td width="85%">
<input type="text" id="wiz_username" name="_username" />
</td>
</tr>
<tr valign="top" class="body">
<td width="15%">
{translate}
password
{/translate}
</td>
<td width="85%">
<input type="password" id="wiz_password" name="_password" />
</td>
</tr>
<tr valign="top" class="body">
<td width="15%">
<input type="hidden" id="input_login" name="_login" value="1">
</td>
<td width="85%"><a href="javascript:addCart('login');"><b><u>{translate module=product}wizard_login{/translate}</u></b></a></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<iframe name="iframeCart" id="iframeCart" style="border:0px; width:100%; height:0px;" scrolling="no" width="100%" allowtransparency="true" frameborder="0" SRC="themes/{$THEME_NAME}/IEFrameWarningBypass.htm"></iframe>
</form>
{/if}
{assign var=meth value=':'|explode:$VAR._page}
<!-- {$meth.0}:{$meth.1} -->
{$method->exe($meth.0,'details')}
{if ($method->result == false) || ! $record}
{$block->display('core:method_error')}
{else}
<form id="view" method="post" action="" enctype="multipart/form-data">
{if $list->translate('product_translate','name,description_full','product_id',$record.id,'translate_product')}{/if}
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_background">
<tr>
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_heading_cart">
<tr valign="top">
<td style="width: 75%;">
{if $translate_product.name}
{$translate_product.name}
{else}
{$record.sku}
{/if}
</td>
<td style="width: 25%;" valign="middle" align="right">&nbsp;</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td class="body">
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="body">
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td>
{if $record.thumbnail != ''}<img src="{$URL}{$smarty.const.URL_IMAGES}{$record.thumbnail}" alt="" hspace="5" style="border: 0px"/>{/if}
{$translate_product.description_full}
</td>
</tr>
</table>
</td>
</tr>
{if $record.prod_plugin}
<tr valign="top">
<td>{osb f=plugin type=product name=$record.prod_plugin_file name_prefix=order_ data=$record.prod_plugin_data}</td>
</tr>
{/if}
<tr valign="top">
<td>
{if $record.price_type == '1'}
{include file='file:ti_product-price_type-1.tpl'}
{elseif $record.price_type == '2'}
{include file='file:ti_product-price_type-2.tpl'}
{else}
{include file='file:ti_product-price_type-x.tpl'}
{/if}
{if $attr}
<br/>
{foreach from=$attr item=attr_arr key=key}
{assign var=attr_id value=$attr_arr.id}
{if $attr_arr.type == '0'}
{include file='file:ti_product_attr-collect_type-0.tpl'}
{elseif $attr_arr.type == '1'}
{include file='file:ti_product_attr-collect_type-1.tpl'}
{elseif $attr_arr.type == '2'}
{include file='file:ti_product_attr-collect_type-2.tpl'}
{elseif $attr_arr.type == '3'}
{include file='file:ti_product_attr-collect_type-3.tpl'}
{/if}
{/foreach}
{/if}
{if $record.host}
<br/>
{include file='file:ti_product-host.tpl'}
{/if}
<script type="text/javascript" src="themes/default/blocks/product/product.js"></script>
<script type="text/javascript">
<!--
{literal}
function attrValidate(addtype) {
var val_arr = new Array(2);
var i=0;
switch (addtype) {
case 'login':
document.getElementById('login').style.display='block';
document.getElementById('input_login').name = '_login';
break;
case 'register':
default:
document.getElementById('login').style.display='none';
document.getElementById('input_login').name = 'xxx';
}
{/literal}
{foreach from=$attr item=attr_arr key=key}
{assign var=attr_id value=$attr_arr.id}
{if $attr_arr.required == '1'}
val_arr[i] = new Array ('attr_{$attr_id}','{$attr_arr.name}','{$attr_arr.type}');
i++;
{/if}
{/foreach}
{literal}
for (ii=0; ii < i; ii++) {
if (! document.getElementById(val_arr[ii][0]).value) {
document.getElementById(val_arr[ii][0]).focus();
if(val_arr[ii][2] == '1') {
alert('You must select an option for "'+val_arr[ii][1]+'"');
} else {
alert('You must enter a value for the product option "'+val_arr[ii][1]+'"')
}
return false;
}
}
doCart(addtype);
}
//-->
</script>
{/literal}
{/if}
</td>
</tr>
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td><b>{t}Finalise Purchase{/t}</b></td>
</tr>
<tr valign="top" class="body">
<td>
{if $smarty.const.SESS_LOGGED != 1}
<input type="radio" id="checkout1" name="checkout" value="login" onclick="addCart('login','{$record.host}'); document.getElementById('checkout1').checked = false;"/> <a href="javascript:addCart('login','{$record.host}');">{t}Login to existing client account{/t}</a><br/>
<input type="radio" id="checkout2" name="checkout" value="register" onclick="addCart('register','{$record.host}'); document.getElementById('checkout2').checked = false;"/> <a href="javascript:addCart('register','{$record.host}');">{t}Register for new client account{/t}</a><br/>
{else}
<input type="radio" id="checkout" name="checkout" value="register" onclick="addCart('checkout','{$record.host}'); document.getElementById('checkout').checked = false;"> <a href="javascript:addCart('checkout','{$record.host}');">{t}Proceed to checkout{/t}</a>
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td>
<div id="login" style="display:none">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td style="width: 15%;">{t}Username{/t}</td>
<td style="width: 85%;"><input type="text" id="wiz_username" name="_username"/></td>
</tr>
<tr valign="top" class="body">
<td style="width: 15%;">{t}Password{/t}</td>
<td style="width: 85%;"><input type="password" id="wiz_password" name="_password"/></td>
</tr>
<tr valign="top" class="body">
<td style="width: 15%;"><input type="hidden" id="input_login" name="_login" value="1"/></td>
<td style="width: 85%;"><a href="javascript:addCart('login','{$record.host}');" style="text-decoration: underline;"><b>{t}Login and review purchase{/t}</b></a></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<iframe name="iframeCart" id="iframeCart" style="border:0px; width:100%; height:0px;" scrolling="no" width="100%" allowtransparency="true" frameborder="0" src="themes/{$THEME_NAME}/IEFrameWarningBypass.htm"></iframe>
<div>
<input type="hidden" id="page" name="_page" value=""/>
<input type="hidden" name="do[]" value="cart:add"/>
<input type="hidden" name="product_id" value="{$record.id}"/>
<input type="hidden" name="s" value="{$SESS}"/>
</div>
</form>

View File

@@ -1,148 +1,117 @@
{ $block->display("core:top_clean") }
{ $method->exe("product","view") } { if ($method->result == FALSE) } { $block->display("core:method_error") } {else}
{assign var=meth value=':'|explode:$VAR._page}
<!-- {$meth.0}:{$meth.1} -->
<!-- Loop through each record -->
{foreach from=$product item=product}
{if $product.prod_plugin == "1"}
Both hosting and product plugins cannot be configured for the same product.
{$method->exe($meth.0,'view')}
{if ($method->result == false)}
{$block->display('core:method_error')}
{else}
{include file='file:../core/view_pre.tpl'}
<form name="product_view" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_background">
<tr>
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr valign="top">
<td width="65%" class="row1">
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row1">
<tr>
<td width="55%">
{translate module=product}
field_host
{/translate}
</td>
<td width="45%">
{ $list->bool("product_host", $product.host, "onchange=\"submit();\"") }
</td>
</tr>
<tr>
<td width="55%">
{translate module=product}
field_host_server_id
{/translate}
</td>
<td width="45%">
{ $list->menu("no", "product_host_server_id", "host_server", "name", $product.host_server_id, "\" onchange=\"document.product_view.submit();") }
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="65%" class="row1">
<b><table width="100%" border="0" cellspacing="2" cellpadding="1" class="row1">
<tr>
<td width="55%">
{translate module=product}
field_host_allow_domain
{/translate}
</td>
<td width="45%">
{if $product.host_allow_domain == ""}
{ $list->bool("product_host_allow_domain", "1", "form_menu") }
{else}
{ $list->bool("product_host_allow_domain", $product.host_allow_domain, "form_menu") }
{/if}
</td>
</tr>
<tr>
<td width="55%">
{translate module=product}
field_host_allow_host_only
{/translate}
</td>
<td width="45%">
{if $product.host_allow_host_only != ""}
{ $list->bool("product_host_allow_host_only", $product.host_allow_host_only, "form_menu") }
{else}
{ $list->bool("product_host_allow_host_only", "0", "form_menu") }
{/if}
</td>
</tr>
</table>
</b></td>
</tr>
<tr valign="top">
<td width="65%" class="row1">
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row1">
<tr>
<td width="55%">
{translate module=product}
field_host_discount_tld
{/translate}
</td>
<td width="45%">
{translate module=product}
field_host_discount_tld_amount
{/translate}
</td>
</tr>
<tr>
<td width="55%"><b>
{ $list->menu_multi($product.host_discount_tld, "product_host_discount_tld", "host_tld", "name", "5", "5", "form_menu") }
</b></td>
<td width="45%">
<input type="text" name="product_host_discount_tld_amt" value="{$product.host_discount_tld_amt}" size="4">
(example: 0.10 = 10%)</td>
</tr>
</table>
</td>
</tr>
{ if ($list->smarty_array("host_server","provision_plugin", "", "plugin")) } {foreach from=$plugin item=arr} {if $product.host_server_id == $arr.id}
<tr valign="top">
<td width="65%" class="row1">
{assign var="afile" value=$arr.provision_plugin}
{assign var="ablock" value="host_provision_plugin:plugin_prod_"}
{assign var="blockfile" value="$ablock$afile"}
{ $block->display($blockfile) }
</td>
</tr>
{/if} {/foreach} {/if}
<tr valign="top">
<td width="65%" class="row1">
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row2">
<tr>
<td valign="middle" align="right">
<input type="submit" name="Submit" value="{translate}submit{/translate}" class="form_button">
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<input type="hidden" name="do[]" value="product:update">
<input type="hidden" name="_page" value="product:iframe_hosting">
<input type="hidden" name="_page_current" value="product:iframe_hosting">
<input type="hidden" name="product_id" value="{$product.id}">
<input type="hidden" name="id" value="{$product.id}">
<input type="hidden" name="product_price_base" value="{$product.price_base}">
<input type="hidden" name="product_sku" value="{$product.sku}">
<input type="hidden" name="product_avail_category_id" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_assoc_req_prod" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_assoc_grant_prod" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_assoc_grant_group" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_price_group" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_prod_plugin_data" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_group_avail" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_modify_product_arr" value="IGNORE-ARRAY-VALUE">
</form>
{/if}
{/foreach}
{if $record.prod_plugin == '1'}
{t}Both hosting and product plugins cannot be configured for the same product.{/t}
{else}
<!-- Display each record -->
<form id="view" method="post" action="" enctype="multipart/form-data">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_background">
<tr>
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row1">
<tr>
<td style="width: 35%;">{osb f=tf field=host}</td>
<td style="width: 65%;">{$list->bool('product_host',$record.host,'" onchange="submit();')}</td>
</tr>
<tr>
<td style="width: 35%;">{osb f=tf field=host_server_id}</td>
<td style="width: 65%;">{$list->menu('no','product_host_server_id','host_server','name',$record.host_server_id,'" onchange="document.product_view.submit();')}</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row1">
<tr>
<td style="width: 35%;">{osb f=tf field=host_allow_domain}</td>
<td style="width: 65%;">
{if $record.host_allow_domain == ''}
{$list->bool('product_host_allow_domain','1','form_menu')}
{else}
{$list->bool('product_host_allow_domain',$record.host_allow_domain,'form_menu')}
{/if}
</td>
</tr>
<tr>
<td style="width: 35%;">{osb f=tf field=host_allow_host_only}</td>
<td style="width: 65%;">
{if $record.host_allow_host_only != ''}
{$list->bool('product_host_allow_host_only',$record.host_allow_host_only,'form_menu')}
{else}
{$list->bool('product_host_allow_host_only','0','form_menu')}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row1">
<tr>
<td style="width: 35%;">{osb f=tf field=host_discount_tld}</td>
<td style="width: 65%;">{osb f=tf field=host_discount_tld_amount}</td>
</tr>
<tr>
<td style="width: 35%;"><b>{$list->menu_multi($record.host_discount_tld,'product_host_discount_tld','host_tld','name','5','5','form_menu')}</b></td>
<td style="width: 65%; vertical-align: top;"><input type="text" name="product_host_discount_tld_amt" value="{$record.host_discount_tld_amt}" size="4"/> (example: 0.10 = 10%)</td>
</tr>
</table>
</td>
</tr>
{if ($list->smarty_array('host_server','provision_plugin','','plugin'))}
{foreach from=$plugin item=arr}
{if $record.host_server_id == $arr.id}
<tr valign="top">
<td>
{assign var="afile" value=$arr.provision_plugin}
{assign var="ablock" value="host_provision_plugin:plugin_prod_"}
{assign var="blockfile" value="$ablock$afile"}
{$block->display($blockfile)}
</td>
</tr>
{/if}
{/foreach}
{/if}
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row2">
<tr>
{include file='file:../core/view_td_submit.tpl'}
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
{include file='file:../core/view_post.tpl'}
<div>
<input type="hidden" name="product_price_base" value="{$record.price_base}"/>
<input type="hidden" name="product_sku" value="{$record.sku}"/>
<input type="hidden" name="product_avail_category_id" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_assoc_req_prod" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_assoc_grant_prod" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_assoc_grant_group" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_price_group" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_prod_plugin_data" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_group_avail" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_modify_product_arr" value="IGNORE-ARRAY-VALUE"/>
</div>
</form>
{/if}
{/if}

View File

@@ -1,83 +1,75 @@
{ $block->display("core:top_clean") }
{ $method->exe("product","view") } { if ($method->result == FALSE) } { $block->display("core:method_error") } {else}
{assign var=meth value=':'|explode:$VAR._page}
<!-- {$meth.0}:{$meth.1} -->
<!-- Loop through each record -->
{foreach from=$product item=product}
{if $product.host == "1"}
Both hosting and product plugins cannot be configured for the same product.
{$method->exe($meth.0,'view')}
{if ($method->result == false)}
{$block->display('core:method_error')}
{else}
{include file='file:../core/view_pre.tpl'}
<form name="product_view" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_background">
<tr>
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr valign="top">
<td width="65%" class="row1">
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row1">
<tr>
<td width="55%"> Enable Product Plugins?</td>
<td width="45%">
{ $list->bool("product_prod_plugin", $product.prod_plugin, "onchange=\"submit();\"") }
</td>
</tr>
<tr>
<td width="55%"> Plugin to Enable</td>
<td width="45%">
{ $list->menu_files("", "product_prod_plugin_file", $product.prod_plugin_file, "product", "", ".php", "\" onchange=\"document.product_view.submit();") }
</td>
</tr>
</table>
</td>
</tr>
{ if $product.prod_plugin_file != ""}
<tr valign="top">
<td width="65%" class="row1">
{assign var="afile" value=$product.prod_plugin_file}
{assign var="ablock" value="product_plugin:plugin_prod_"}
{assign var="blockfile" value="$ablock$afile"}
{ $block->display($blockfile) }
</td>
</tr>
{/if}
<tr valign="top">
<td width="65%" class="row1">
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row2">
<tr>
<td valign="middle" align="right">
<input type="submit" name="Submit" value="{translate}submit{/translate}" class="form_button">
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<input type="hidden" name="do[]" value="product:update">
<input type="hidden" name="_page" value="product:iframe_plugins">
<input type="hidden" name="_page_current" value="product:iframe_plugins">
<input type="hidden" name="product_id" value="{$product.id}">
<input type="hidden" name="id" value="{$product.id}">
<input type="hidden" name="product_price_base" value="{$product.price_base}">
<input type="hidden" name="product_sku" value="{$product.sku}">
<input type="hidden" name="product_avail_category_id" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_assoc_req_prod" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_assoc_grant_prod" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_assoc_grant_group" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_price_group" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_price_group" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_host_discount_tld" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_host_provision_plugin_data" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_group_avail" value="IGNORE-ARRAY-VALUE">
<input type="hidden" name="product_modify_product_arr" value="IGNORE-ARRAY-VALUE">
</form>
{if $record.host == '1'}
{t}Both hosting and product plugins cannot be configured for the same product.{/t}
{else}
<!-- Display each record -->
<form id="view" method="post" action="" enctype="multipart/form-data">
{/if}
{/foreach}
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_background">
<tr>
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr valign="top">
<td class="row1">
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row1">
<tr>
<td style="width: 50%;">{t}Enable Product Plugins?{/t}</td>
<td style="width: 50%;">{$list->bool('product_prod_plugin',$record.prod_plugin,'" onchange="submit();')}</td>
</tr>
<tr>
<td style="width: 50%;">{t}Plugin to Enable{/t}</td>
<td style="width: 50%;">{$list->menu_files('','product_prod_plugin_file',$record.prod_plugin_file,'product','','.php','" onchange="submit();')}</td>
</tr>
</table>
</td>
</tr>
{if $record.prod_plugin && $record.prod_plugin_file != ''}
<tr valign="top">
<td class="row1">
{assign var="afile" value=$record.prod_plugin_file}
{assign var="ablock" value="product_plugin:plugin_prod_"}
{assign var="blockfile" value="$ablock$afile"}
{$block->display($blockfile)}
</td>
</tr>
{/if}
<tr valign="top">
<td class="row1">
<table width="100%" border="0" cellspacing="2" cellpadding="1" class="row2">
<tr>
{include file='file:../core/view_td_submit.tpl'}
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
{include file='file:../core/view_post.tpl'}
<div>
<input type="hidden" name="product_price_base" value="{$record.price_base}"/>
<input type="hidden" name="product_sku" value="{$record.sku}"/>
<input type="hidden" name="product_avail_category_id" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_assoc_req_prod" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_assoc_grant_prod" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_assoc_grant_group" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_price_group" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_price_group" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_host_discount_tld" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_host_provision_plugin_data" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_group_avail" value="IGNORE-ARRAY-VALUE"/>
<input type="hidden" name="product_modify_product_arr" value="IGNORE-ARRAY-VALUE"/>
</div>
</form>
{/if}
{/if}

View File

@@ -0,0 +1,49 @@
function addCart(addtype,hosting) {
if (hosting == '1') {
var domain_option = document.getElementById('domain_option').value;
var domain_name = document.getElementById('domain_name').value;
var domain_tld = document.getElementById('domain_tld').value;
if (domain_option == '0') {
//@todo To Translate
alert("You must choose a 'Domain Transfer / Registration Option' to continue.");
return;
}
if ((domain_name == '0' || domain_tld == '0') && (domain_option != 'ip')) {
//@todo To Translate
alert("You must select a valid domain name to continue.");
return;
}
}
attrValidate(addtype);
}
function doCart(addtype) {
form = document.getElementById('view');
switch(addtype) {
case 'cart':
//document.getElementById('page').value = 'cart:admin_view';
document.getElementById('page').value = 'cart:cart';
break;
case 'login':
if (document.getElementById('wiz_username').value == '')
return;
if (document.getElementById('wiz_password').value == '')
return;
case 'register':
case 'checkout':
document.getElementById('page').value = 'checkout:checkout';
break;
default:
alert('Unknown addtype: '+addtype);
}
form.action = '';
form.submit();
}

View File

@@ -0,0 +1,32 @@
<!-- START: ti_product-host.tpl -->
<script type="text/javascript" src="themes/default/blocks/host_tld/host_tld.js"></script>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td valign="middle"><b>{t}Domain Transfer / Registrations Options{/t}</b></td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td>
{if $record.host_allow_domain}
<input type="radio" id="register" name="domain_type" value="register" onclick="domainUpdate('0','0','register'); showIFrame('iframe',480,95,'?_page=host_tld:iframe_register&amp;_escape=1');"/> {t}Register new domain name{/t}<br/>
<input type="radio" id="transfer" name="domain_type" value="transfer" onclick="domainUpdate('0','0','transfer'); showIFrame('iframe',480,110,'?_page=host_tld:iframe_transfer&amp;_escape=1');"/> {t}Transfer existing domain name{/t}<br/>
{/if}
<input type="radio" id="ns_transfer" name="domain_type" value="ns_transfer" onclick="domainUpdate('0','0','ns_transfer'); showIFrame('iframe',480,70,'?_page=host_tld:iframe_ns_transfer&amp;_escape=1');"/> {t}I will use an existing domain name and update my nameservers only.{/t}
{if $record.host_allow_host_only}
<br/>
<input type="radio" id="ip" name="domain_type" value="ip" onClick="domainUpdate('0','0','ip'); hideIFrame('iframe');"/>{t}All I need is an IP based hosting plan.{/t}<br/>
{/if}
<input type="hidden" id="domain_name" name="domain_name" value="0"/>
<input type="hidden" id="domain_tld" name="domain_tld" value="0"/>
<input type="hidden" id="domain_option" name="domain_option" value="0"/>
<iframe name="iframe" id="iframe" style="border:0px; width:100%; height:0px;" scrolling="no" width="100%" allowtransparency="false" frameborder="0" class="body" src="themes/{$THEME_NAME}/IEFrameWarningBypass.htm"></iframe><br/>
</td>
</tr>
</table>
<!-- END: ti_product-host.tpl -->

View File

@@ -0,0 +1,21 @@
<!-- START: ti_product-price_type-1.tpl -->
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td style="width: 50%;"><b>{osb f=tf field=price_recurr_type}</b></td>
</tr>
<tr valign="top" class="body">
<td>
<select name="recurr_schedule">
{foreach from=$price item=price_recurr key=key}
<option value="{$key}" {if $record.price_recurr_default == $key} selected="selected"{/if}>
{$list->format_currency($price_recurr.base,$smarty.const.SESS_CURRENCY)}
{$list->menu_staticlist('recur_schedule','','',$key,'form_menu')}
{if $price_recurr.setup > 0} + {$list->format_currency($price_recurr.setup,$smarty.const.SESS_CURRENCY)} {t}Setup{/t}{/if}
</option>
{/foreach}
</select>
</td>
</tr>
</table>
<!-- END: ti_product-price_type-1.tpl -->

View File

@@ -0,0 +1,17 @@
<!-- START: ti_product-price_type-2.tpl -->
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top">
<td>
{t 1=$trial.sku}This product is a trial for SKU %1, which can be viewed in detail here:{/t}
<a href="?_page=product:details&id={$record.price_trial_prod}">{$trial.sku}</a><br/>
{if $record.price_trial_length_type == '0'}{assign var=time value='days'}
{elseif $record.price_trial_length_type == '1'}{assign var=time value='weeks'}
{elseif $record.price_trial_length_type == '2'}{assign var=time value='months'}
{/if}
{t 1=$trial.sku 2=$record.price_trial_length 3=$time}This trial will last for %2 %3 before it expires and you are billed for the full cost of SKU %1.{/t}<br/>
{t 1=$trial.sku}If you wish to cancel prior to the trial expiring, you may do so and you will not be billed for SKU %1.{/t}
</td>
</tr>
</table>
<!-- END: ti_product-price_type-2.tpl -->

View File

@@ -0,0 +1,13 @@
<!-- START: ti_product-price_type-x.tpl -->
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="top" class="body">
<td style="width: 50%;"><b>{osb f=tf field=price_base}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=price_setup}</b></td>
</tr>
<tr valign="top">
<td style="width: 50%;">{$list->format_currency($record.price_base,$smarty.const.SESS_CURRENCY)}</td>
<td style="width: 50%;">{$list->format_currency($record.price_setup,$smarty.const.SESS_CURRENCY)}</td>
</tr>
</table>
<!-- END: ti_product-price_type-x.tpl -->

View File

@@ -0,0 +1,25 @@
<!-- START: ti_product_attr-collect_type-0.tpl -->
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td style="width: 70%;"><b>{$attr_arr.name}</b></td>
<td style="width: 30%; text-align: right;">
{if $attr_arr.price_base != 0}{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{t}Setup{/t}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td><input type="checkbox" name="attr[{$attr_id}]" value="Yes" {if $VAR.attr[$attr_id] || $attr_arr.default}checked="checked"{/if}/>{$attr_arr.description}</td>
</tr>
</table>
<!-- END: ti_product_attr-collect_type-0.tpl -->

View File

@@ -0,0 +1,25 @@
<!-- START: ti_product_attr-collect_type-1.tpl -->
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td style="width: 70%;"><b>{$attr_arr.name}</b></td>
<td style="width: 30%; text-align: right;">
{if $attr_arr.price_base != 0}{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{t}Setup{/t}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td><input type="text" id="attr_{$attr_id}" name="attr[{$attr_id}]" size="20"/>{$attr_arr.description}</td>
</tr>
</table>
<!-- END: ti_product_attr-collect_type-1.tpl -->

View File

@@ -0,0 +1,33 @@
<!-- START: ti_product_attr-collect_type-2.tpl -->
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td style="width: 70%;"><b>{$attr_arr.name}</b></td>
<td style="width: 30%; text-align: right;">&nbsp;</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td>
<select id="attr_{$attr_id}" name="attr[{$attr_id}]">
{foreach from=$attr_arr.default item=attr_menu key=attr_key}
<option value="{$attr_menu.name}">
{$attr_menu.name}
{if $attr_menu.base > 0}: {$list->format_currency_num($attr_menu.base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_menu.base > 0 && $attr_menu.setup > 0} + {elseif $attr_menu.base <= 0 && $attr_menu.setup > 0}: {/if}
{if $attr_menu.setup > 0}
{$list->format_currency_num($attr_menu.setup, $smarty.const.SESS_CURRENCY)}
{t}Setup{/t}
{/if}
</option>
{/foreach}
</select>
{$attr_arr.description}
</td>
</tr>
</table>
<!-- END: ti_product_attr-collect_type-2.tpl -->

View File

@@ -0,0 +1,25 @@
<!-- START: ti_product_attr-collect_type-3.tpl -->
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="body">
<tr valign="middle" class="body">
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="body">
<tr>
<td style="width: 70%;"><b>{$attr_arr.name}</b></td>
<td style="width: 30%; text-align: right;">
{if $attr_arr.price_base != 0}{$list->format_currency_num($attr_arr.price_base, $smarty.const.SESS_CURRENCY)}{/if}
{if $attr_arr.price_setup != 0}
{if $attr_arr.price_base != 0} + {/if}
{$list->format_currency_num($attr_arr.price_setup, $smarty.const.SESS_CURRENCY)}
{t}Setup{/t}
{/if}
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td><textarea id="attr_{$attr_id}" name="attr[{$attr_id}]2" cols="50" rows="3"></textarea>&nbsp;{$attr_arr.description}</td>
</tr>
</table>
<!-- END: ti_product_attr-collect_type-3.tpl -->

View File

@@ -26,143 +26,135 @@
<td class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td width="50%"><b>{osb f=tf field=date_orig}</b></td>
<td width="50%"><b>{osb f=tf field=date_last}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=date_orig}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=date_last}</b></td>
</tr>
<tr valign="top">
<td width="50%">{$list->date($record.date_orig)}</td>
<td width="50%">{$list->date($record.date_last)}<input type="hidden" name="product_date_last" value="{$smarty.now}"/></td>
<td style="width: 50%;">{$list->date($record.date_orig)}</td>
<td style="width: 50%;">{$list->date($record.date_last)}<input type="hidden" name="product_date_last" value="{$smarty.now}"/></td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="65%" class="row1">
<td class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td width="50%"><b>{osb f=tf field=sku}</b></td>
<td width="50%"><b>{osb f=tf field=position}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=sku}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=position}</b></td>
</tr>
<tr valign="top" class="row1">
<td width="50%"><input type="text" name="product_sku" value="{$record.sku}" size="32"/></td>
<td width="50%"><input type="text" name="product_position" value="{$record.position}" size="3"/></td>
<td style="width: 50%;"><input type="text" name="product_sku" value="{$record.sku}" size="32"/></td>
<td style="width: 50%;"><input type="text" name="product_position" value="{$record.position}" size="3"/></td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="65%" class="row1">
<td class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td width="50%"><b>{osb f=tf field=active}</b></td>
<td width="50%"><b>{osb f=tf field=taxable}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=active}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=taxable}</b></td>
</tr>
<tr valign="top">
<td width="50%">{$list->bool('product_active',$record.active)}</td>
<td width="50%">{$list->bool('product_taxable',$record.taxable)}</td>
<td style="width: 50%;">{$list->bool('product_active',$record.active)}</td>
<td style="width: 50%;">{$list->bool('product_taxable',$record.taxable)}</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="65%" class="row1">
<td class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td width="50%"><b>{osb f=tf field=price_base}</b></td>
<td width="50%"><b>{osb f=tf field=price_setup}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=price_base}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=price_setup}</b></td>
</tr>
<tr valign="top">
<td width="50%"><input type="text" name="product_price_base" value="{$record.price_base}" size="5"/>{$list->currency_iso('')}</td>
<td width="50%"><input type="text" name="product_price_setup" value="{$record.price_setup}" size="5"/>{$list->currency_iso('')}</td>
<td style="width: 50%;"><input type="text" name="product_price_base" value="{$record.price_base}" size="5"/>{$list->currency_iso('')}</td>
<td style="width: 50%;"><input type="text" name="product_price_setup" value="{$record.price_setup}" size="5"/>{$list->currency_iso('')}</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td width="65%" class="row1">
<td class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td width="50%"><b>{osb f=tf field=avail_category_id}</b><br/></td>
<td width="50%"><b>{osb f=tf field=group_avail}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=avail_category_id}</b><br/></td>
<td style="width: 50%;"><b>{osb f=tf field=group_avail}</b></td>
</tr>
<tr valign="top">
<td width="50%">{$method->exe_noauth('product_cat','tpl_admin_menu_product')}</td>
<td width="50%">{$list->menu_multi($record.group_avail,'product_group_avail','group','name','','5','form_menu')}</td>
<td style="width: 50%;">{$method->exe_noauth('product_cat','tpl_admin_menu_product')}</td>
<td style="width: 50%;">{$list->menu_multi($record.group_avail,'product_group_avail','group','name','','5','form_menu')}</td>
</tr>
</table>
</td>
</tr>
{if $record.price_type == '1'}
<tr valign="top">
<td width="65%" class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td width="50%"><b>{osb f=tf field=price_recurr_default}</b></td>
<td style="width: 50%;">{$list->menu_staticlist('recur_schedule','product_price_recurr_default','product_price_recurr_default',$product.price_recurr_default,'form_menu',false)}</td>
</tr>
<tr valign="top" class="row2">
<td width="50%"><b>{osb f=tf field=price_recurr_type}</b></td>
<td width="50%"><b>{t}Options Available to Subscribers{/t}</b></td>
</tr>
<tr valign="top" class="row2">
<td style="width: 50%;">
<input type="radio" name="product_price_recurr_type" value="0" {if $record.price_recurr_type == "0"}checked="checked"{/if} />
{$list->menu_staticlist('recur_type','','product_price_recurr_type',0,'form_menu',false)}<br/>
<input type="radio" name="product_price_recurr_type" value="1" {if $record.price_recurr_type == "1"}checked="checked"{/if} />
{$list->menu_staticlist('recur_type','','product_price_recurr_type',1,'form_menu',false)}<br/>
<input type="text" name="product_price_recurr_weekday" value="{$record.price_recurr_weekday}" size="2" maxlength="2"/>
(1-28)
{osb f=tf field=price_recurr_weekday}
</td>
<td width="50%">
{$list->bool('product_price_recurr_schedule',$record.price_recurr_schedule)}
{osb f=tf field=price_recurr_schedule}
<br/>
{$list->bool('product_price_recurr_cancel',$record.price_recurr_cancel)}
{osb f=tf field=price_recurr_cancel}
<br/>
{$list->bool('product_cart_multiple',$record.cart_multiple)}
{osb f=tf field=cart_multiple}
</td>
</tr>
</table>
</td>
</tr>
{/if}
{if $record.price_type == '2'}
<tr valign="top">
<td width="65%" class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td width="50%"><b>{osb f=tf field=price_trial_prod}</b></td>
<td width="50%"><b>{osb f=tf field=price_trial_length}</b></td>
</tr>
<tr valign="top">
<td width="50%">{$list->menu('','product_price_trial_prod','product','sku',$record.price_trial_prod,'form_menu')}</td>
<td width="50%">
<input type="text" name="product_price_trial_length" value="{$record.price_trial_length}" size="4"/>
<select name="product_price_trial_length_type" >
<option value="0" {if $record.price_trial_length_type == "0"} selected{/if}>{translate}day{/translate}</option>
<option value="1" {if $record.price_trial_length_type == "1"} selected{/if}>{translate}week{/translate}</option>
<option value="2" {if $record.price_trial_length_type == "2"} selected{/if}>{translate}month{/translate}</option>
</select>
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td style="width: 50%;"><b>{osb f=tf field=price_recurr_default}</b></td>
<td style="width: 50%;">{$list->menu_staticlist('recur_schedule','product_price_recurr_default','product_price_recurr_default',$record.price_recurr_default,'form_menu',false)}</td>
</tr>
<tr valign="top" class="row2">
<td style="width: 50%;"><b>{osb f=tf field=price_recurr_type}</b></td>
<td style="width: 50%;"><b>{t}Options Available to Subscribers{/t}</b></td>
</tr>
<tr valign="top" class="row2">
<td style="width: 50%;">
<input type="radio" name="product_price_recurr_type" value="0" {if $record.price_recurr_type == "0"}checked="checked"{/if} />
{$list->menu_staticlist('recur_type','','product_price_recurr_type',0,'form_menu',false)}<br/>
<input type="radio" name="product_price_recurr_type" value="1" {if $record.price_recurr_type == "1"}checked="checked"{/if} />
{$list->menu_staticlist('recur_type','','product_price_recurr_type',1,'form_menu',false)}<br/>
<input type="text" name="product_price_recurr_weekday" value="{$record.price_recurr_weekday}" size="2" maxlength="2"/>
(1-28)
{osb f=tf field=price_recurr_weekday}
</td>
<td style="width: 50%;">
{$list->bool('product_price_recurr_schedule',$record.price_recurr_schedule)}
{osb f=tf field=price_recurr_schedule}
<br/>
{$list->bool('product_price_recurr_cancel',$record.price_recurr_cancel)}
{osb f=tf field=price_recurr_cancel}
<br/>
{$list->bool('product_cart_multiple',$record.cart_multiple)}
{osb f=tf field=cart_multiple}
</td>
</tr>
</table>
</td>
</tr>
{elseif $record.price_type == '2'}
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr valign="top" class="row2">
<td style="width: 50%;"><b>{osb f=tf field=price_trial_prod}</b></td>
<td style="width: 50%;"><b>{osb f=tf field=price_trial_length}</b></td>
</tr>
<tr valign="top">
<td style="width: 50%;">{$list->menu('','product_price_trial_prod','product','sku',$record.price_trial_prod,'form_menu')}</td>
<td style="width: 50%;"><input type="text" name="product_price_trial_length" value="{$record.price_trial_length}" size="4"/> {$list->menu_staticlist('trial_length','product_price_trial_length_type','product_price_trial_length_type',$record.price_trial_length_type,'form_menu',false)}</td>
</tr>
</table>
</td>
</tr>
{/if}
<tr valign="top">
<td width="65%" class="row1">
<td>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr class="row1" valign="middle" align="left">
<td width="50%" valign="top">
<td style="width: 50%;" valign="top">
{if $record.thumbnail != ''}
<img src="{$URL}{$smarty.const.URL_IMAGES}{$record.thumbnail}"/>
{/if}
<b>{osb f=tf field=thumbnail}</b>
</td>
<td width="50%" align="left">
<td style="width: 50%;" align="left">
<b>
<input type="file" name="upload_file1" size="38"/>
{if $record.thumbnail != ''}
@@ -174,18 +166,12 @@
</table>
</td>
</tr>
<tr>
{include file='file:../core/view_tr_submit_delete.tpl'}
<tr valign="top">
<td>
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
{include file='file:../core/view_tr_submit_delete.tpl'}
</table>
</td>
</tr>
<tr valign="top">
<td width="65%" class="row1">
<table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1">
<tr class="row1" valign="middle" align="left">
<td width="35%" align="center">
<td style="text-align: center;">
<!-- feature inactive
<a href="javascript:showImages();">{translate module=product}manage_images{/translate}</a> | -->
<a href="javascript:viewTranslations()">{t}Name & Description{/t}</a> |
@@ -232,11 +218,13 @@
{literal}
function viewTranslations(product_id,language_id) {
document.getElementById("code").innerHTML = '';
var product_id = {/literal}{$record.id}{literal};
var language_id = {/literal}'{$smarty.const.DEFAULT_LANGUAGE}'{literal};
var url = '?_page=core:search_iframe&module=product_translate&product_translate_language_id='+language_id+'&product_translate_product_id='+product_id+'&_escape=1&_escape_next=1&_next_page_one=view&_next_page_none=add&name_id1=product_translate_product_id&val_id1='+product_id+'&name_id2=product_translate_language_id&val_id2='+language_id;
{/literal}
document.getElementById('code').innerHTML = '';
var product_id = {$record.id};
var language_id = '{$smarty.const.DEFAULT_LANGUAGE}';
var url = '?_page=core:search_iframe&module=product_translate&product_translate_language_id='+language_id+'&product_translate_product_id='+product_id+'&_next_page_one=view&_next_page_none=add&name_id1=product_translate_product_id&val_id1='+product_id+'&name_id2=product_translate_language_id&val_id2='+language_id;
showIFrame('iframe',getPageWidth(600),300,url);
{literal}
}
viewTranslations();
@@ -280,12 +268,12 @@
function showHosting() {
document.getElementById('code').innerHTML = '';
showIFrame('iframe',getPageWidth(600),300,'?_page=product:iframe_hosting&_escape=1&id='+product_id);
showIFrame('iframe',getPageWidth(600),300,'?_page=product:iframe_hosting&id='+product_id);
}
function showPlugins() {
document.getElementById('code').innerHTML = '';
showIFrame('iframe',getPageWidth(600),300,'?_page=product:iframe_plugins&_escape=1&id='+product_id);
showIFrame('iframe',getPageWidth(600),300,'?_page=product:iframe_plugins&id='+product_id);
}
function clone() {