// Attributes generator

This commit is contained in:
Jérôme Nadaud committed 2013-09-17 12:33:06 +02:00
1 parent 5c04e5564c
commit 47341ce0bb
4 files changed
+68 -60

No files matched your search

@@ -53,69 +53,76 @@
{if $generate}<div class="module_confirmation conf confirm">{l s='%d product(s) successfully created.' sprintf=$combinations_size}</div>{/if} {if $generate}<div class="module_confirmation conf confirm">{l s='%d product(s) successfully created.' sprintf=$combinations_size}</div>{/if}
<script type="text/javascript" src="../js/attributesBack.js"></script> <script type="text/javascript" src="../js/attributesBack.js"></script>
<form enctype="multipart/form-data" method="post" id="generator" action="{$url_generator}"> <form enctype="multipart/form-data" method="post" id="generator" action="{$url_generator}">
<fieldset style="margin-bottom: 35px;"> <fieldset>
<legend><img src="../img/admin/asterisk.gif" alt="" />{l s='Attributes generator'}</legend> <h3><i class="icon-asterisk"></i> {l s='Attributes generator'}</h3>
<div style="float: left; margin-right: 50px;"> <div class="row">
<select multiple name="attributes[]" id="attribute_group" style="height: 500px; margin-bottom: 10px;"> <div class="col-lg-3">
<div class="form-group">
<select multiple name="attributes[]" id="attribute_group" style="height: 400px">
{foreach $attribute_groups as $k => $attribute_group}
{if isset($attribute_js[$attribute_group['id_attribute_group']])}
<optgroup name="{$attribute_group['id_attribute_group']}" id="{$attribute_group['id_attribute_group']}" label="{$attribute_group['name']|escape:'htmlall':'UTF-8'}">
{foreach $attribute_js[$attribute_group['id_attribute_group']] as $k => $v}
<option name="{$k}" id="attr_{$k}" value="{$v|escape:'htmlall':'UTF-8'}" title="{$v|escape:'htmlall':'UTF-8'}">{$v|escape:'htmlall':'UTF-8'}</option>
{/foreach}
</optgroup>
{/if}
{/foreach}
</select>
</div>
<div class="form-group">
<button type="button" class="btn btn-default" onclick="del_attr_multiple();"><i class="icon-minus-sign"></i> {l s='Delete'}</button>
<button type="button" class="btn btn-default pull-right" onclick="add_attr_multiple();"><i class="icon-plus-sign"></i> {l s='Add'}</button>
</div>
</div>
<div class="col-lg-9">
<div class="alert alert-info">{l s='The Combinations Generator is a tool that allows you to easily create a series of combinations by selecting the related attributes. For example, if you\'re selling t-shirts in three different sizes and two different colors, the generator will create six combinations for you.'}</div>
<p>{l s='You\'re currently generating combinations for the following product:'} <b>{$product_name|escape:'htmlall':'UTF-8'}</b></p>
<h4>{l s='Step 1: On the left side, select the attributes you want to use (Hold down the "Ctrl" key on your keyboard and validate by clicking on "Add")'}</h4>
<div>
{foreach $attribute_groups as $k => $attribute_group} {foreach $attribute_groups as $k => $attribute_group}
{if isset($attribute_js[$attribute_group['id_attribute_group']])} {if isset($attribute_js[$attribute_group['id_attribute_group']])}
<optgroup name="{$attribute_group['id_attribute_group']}" id="{$attribute_group['id_attribute_group']}" label="{$attribute_group['name']|escape:'htmlall':'UTF-8'}"> <table class="table" style="display: none;">
{foreach $attribute_js[$attribute_group['id_attribute_group']] as $k => $v} <thead>
<option name="{$k}" id="attr_{$k}" value="{$v|escape:'htmlall':'UTF-8'}" title="{$v|escape:'htmlall':'UTF-8'}">{$v|escape:'htmlall':'UTF-8'}</option> <tr>
<th id="tab_h1">{$attribute_group['name']|escape:'htmlall':'UTF-8'}</th>
<th id="tab_h2" colspan="2">{l s='Impact on the product price'} ({$currency_sign})</th>
<th>{l s='Impact on the product weight'} ({$weight_unit})</th>
</tr>
</thead>
<tbody id="table_{$attribute_group['id_attribute_group']}" name="result_table">
</tbody>
</table>
{if isset($attributes[$attribute_group['id_attribute_group']])}
{foreach $attributes[$attribute_group['id_attribute_group']] AS $k => $attribute}
<script type="text/javascript">
$('#table_{$attribute_group['id_attribute_group']}').append(create_attribute_row({$k}, {$attribute_group['id_attribute_group']}, '{$attribute['attribute_name']|addslashes}', {$attribute['price']}, {$attribute['weight']}));
toggle(getE('table_' + {$attribute_group['id_attribute_group']}).parentNode, true);
</script>
{/foreach} {/foreach}
</optgroup> {/if}
{/if} {/if}
{/foreach} {/foreach}
</select> </div>
<div style="text-align: center; margin-bottom: 10px;"> <h4>{l s='Select a default quantity, and reference, for each combination the generator will create for this product.'}</h4>
<p> <table class="table">
<input class="button" type="button" style="margin-right: 15px;" value="{l s='Add'}" class="button" onclick="add_attr_multiple();" /> <tbody>
<input class="button" type="button" value="{l s='Delete'}" class="button" onclick="del_attr_multiple();" /> <tr>
</p> <td>{l s='Default Quantity:'}</td>
<td><input type="text" name="quantity" value="0" /></td>
</tr>
<tr>
<td>{l s='Default Reference:'}</td>
<td><input type="text" name="reference" value="{$product_reference|escape:'htmlall':'UTF-8'}" /></td>
</tr>
</tbody>
</table>
<h4>{l s='Please click on "Generate these Combinations"'}</h4>
<p><input type="submit" class="btn btn-default" name="generate" value="{l s='Generate these Combinations'}" /></p>
</div> </div>
</div> </div>
<div style="float: left; width: 570px;">
<div class="alert alert-info" style="width: 570px; padding-left: 45px; margin-bottom: 15px; display: block; position: inherit;">{l s='The Combinations Generator is a tool that allows you to easily create a series of combinations by selecting the related attributes. For example, if you\'re selling t-shirts in three different sizes and two different colors, the generator will create six combinations for you.'}</div>
<p>{l s='You\'re currently generating combinations for the following product:'} <b>{$product_name|escape:'htmlall':'UTF-8'}</b></p>
<h4>{l s='Step 1: On the left side, select the attributes you want to use (Hold down the "Ctrl" key on your keyboard and validate by clicking on "Add")'}</h4>
<div>
{foreach $attribute_groups as $k => $attribute_group}
{if isset($attribute_js[$attribute_group['id_attribute_group']])}
<table class="table clear" cellpadding="0" cellspacing="0" style="margin-bottom: 10px; display: none;">
<thead>
<tr>
<th id="tab_h1" style="width: 150px">{$attribute_group['name']|escape:'htmlall':'UTF-8'}</th>
<th id="tab_h2" style="width: 350px" colspan="2">{l s='Impact on the product price'} ({$currency_sign})</th>
<th style="width: 150px">{l s='Impact on the product weight'} ({$weight_unit})</th>
</tr>
</thead>
<tbody id="table_{$attribute_group['id_attribute_group']}" name="result_table">
</tbody>
</table>
{if isset($attributes[$attribute_group['id_attribute_group']])}
{foreach $attributes[$attribute_group['id_attribute_group']] AS $k => $attribute}
<script type="text/javascript">
$('#table_{$attribute_group['id_attribute_group']}').append(create_attribute_row({$k}, {$attribute_group['id_attribute_group']}, '{$attribute['attribute_name']|addslashes}', {$attribute['price']}, {$attribute['weight']}));
toggle(getE('table_' + {$attribute_group['id_attribute_group']}).parentNode, true);
</script>
{/foreach}
{/if}
{/if}
{/foreach}
</div>
<h4>{l s='Select a default quantity, and reference, for each combination the generator will create for this product.'}</h4>
<table border="0" class="table" cellpadding="0" cellspacing="0">
<tr>
<td>{l s='Default Quantity:'}</td>
<td><input type="text" size="20" name="quantity" value="0" style="width: 50px;" /></td>
</tr>
<tr>
<td>{l s='Default Reference:'}</td>
<td><input type="text" size="20" name="reference" value="{$product_reference|escape:'htmlall':'UTF-8'}" /></td>
</tr>
</table>
<h4>{l s='Please click on "Generate these Combinations"'}</h4>
<p><input type="submit" class="button" style="margin-bottom:5px;" name="generate" value="{l s='Generate these Combinations'}" /></p>
</div>
</fieldset> </fieldset>
</form> </form>
@@ -257,7 +257,7 @@
<th class="center"> <th class="center">
</th> </th>
{foreach $fields_display AS $key => $params} {foreach $fields_display AS $key => $params}
<th {if isset($params.align)} class="{$params.align}"{/if}> <th class="{if isset($params.class)}{$params.class}{/if}{if isset($params.align)} {$params.align}{/if}">
<span class="title_box {if isset($order_by) && ($key == $order_by)} active{/if}"> <span class="title_box {if isset($order_by) && ($key == $order_by)} active{/if}">
@@ -47,11 +47,11 @@
{else} {else}
{l s='%d errors' sprintf=$errors|count} {l s='%d errors' sprintf=$errors|count}
<br/> <br/>
<ol> <ul>
{foreach $errors AS $error} {foreach $errors AS $error}
<li>{$error}</li> <li>{$error}</li>
{/foreach} {/foreach}
</ol> </ul>
{/if} {/if}
</div> </div>
{/if} {/if}
@@ -33,6 +33,7 @@ class AdminAttributeGeneratorControllerCore extends AdminController
public function __construct() public function __construct()
{ {
$this->bootstrap = true;
$this->table = 'product_attribute'; $this->table = 'product_attribute';
$this->className = 'Product'; $this->className = 'Product';
$this->multishop_context_group = false; $this->multishop_context_group = false;