// Multishop interface reworked
|
After Width: | Height: | Size: 632 B |
|
After Width: | Height: | Size: 565 B |
|
After Width: | Height: | Size: 781 B |
|
After Width: | Height: | Size: 649 B |
@@ -0,0 +1,42 @@
|
||||
{*
|
||||
* 2007-2012 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2012 PrestaShop SA
|
||||
* @version Release: $Revision: 14740 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{if $toolbar_btn}
|
||||
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
||||
{/if}
|
||||
|
||||
<div class="multishop-left">
|
||||
<div class="multishop-title">{l s='Multishop tree'}</div>
|
||||
{include file="controllers/shop/tree.tpl" selected_tree_id=$selected_tree_id}
|
||||
</div>
|
||||
<div class="multishop-right">{$content}</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$().ready(function(){
|
||||
if (parseInt($('.multishop-right').css('height')) > 200)
|
||||
$('.multishop-left').css('height', $('.multishop-right').css('height'));
|
||||
})
|
||||
</script>
|
||||
@@ -25,13 +25,6 @@
|
||||
*}
|
||||
{extends file="helpers/form/form.tpl"}
|
||||
|
||||
{block name="label"}
|
||||
{if $input.type == 'text' && $input.name == 'name'}
|
||||
<div class="hint" name="help_box" style="display:block;">{l s='You can\'t change the shop group when you have more than one Shop'}</div><br />
|
||||
{/if}
|
||||
{$smarty.block.parent}
|
||||
{/block}
|
||||
|
||||
{block name="input"}
|
||||
{if $input.type == 'theme'}
|
||||
{foreach $input.values as $theme}
|
||||
@@ -43,7 +36,7 @@
|
||||
{/foreach}
|
||||
<div class="clear"> </div>
|
||||
{elseif $input.type == 'textShopGroup'}
|
||||
{$input.value}
|
||||
<p style="color: #000000; padding: 0px; font-size: 12px; margin-top: 4px;">{$input.value}</p>
|
||||
{else}
|
||||
{if $input.type == 'select' && $input.name == 'id_category'}
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -27,8 +27,12 @@
|
||||
{extends file="helpers/list/list_content.tpl"}
|
||||
|
||||
{block name="td_content"}
|
||||
{if $key == 'url' && !isset($tr.$key)}
|
||||
<a href="{$link->getAdminLink('AdminShopUrl')}&id_shop={$tr.$identifier}&addshop_url" class="multishop_warning">{l s='Click here to set an URL for this shop'}</a>
|
||||
{if $key == 'url'}
|
||||
{if isset($tr.$key)}
|
||||
<a href="{$tr.$key}" onmouseover="$(this).css('text-decoration', 'underline')" onmouseout="$(this).css('text-decoration', 'none')">{$tr.$key}</a>
|
||||
{else}
|
||||
<a href="{$link->getAdminLink('AdminShopUrl')}&id_shop={$tr.$identifier}&addshop_url" class="multishop_warning">{l s='Click here to set an URL for this shop'}</a>
|
||||
{/if}
|
||||
{else}
|
||||
{$smarty.block.parent}
|
||||
{/if}
|
||||
|
||||
@@ -0,0 +1,216 @@
|
||||
{*
|
||||
* 2007-2012 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2012 PrestaShop SA
|
||||
* @version Release: $Revision: 14740 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<ul id="multishop-tree">
|
||||
</ul>
|
||||
|
||||
<script type="text/javascript">
|
||||
function check_selected_tree_node(d)
|
||||
{
|
||||
{if isset($selected_tree_id)}
|
||||
$.each(d, function(k, v)
|
||||
{
|
||||
if (v.attr.id == '{$selected_tree_id}')
|
||||
{
|
||||
setTimeout(function()
|
||||
{
|
||||
$('#{$selected_tree_id}').children('a').addClass('selected');
|
||||
}, 100);
|
||||
}
|
||||
|
||||
if (v.children)
|
||||
{
|
||||
check_selected_tree_node(v.children);
|
||||
}
|
||||
});
|
||||
{/if}
|
||||
}
|
||||
|
||||
function customMenu(node)
|
||||
{
|
||||
var node_id = node.attr('id');
|
||||
|
||||
// Click on a group
|
||||
if (new RegExp(/^tree-group-[0-9]+$/).exec(node_id))
|
||||
{
|
||||
var id = node_id.substr(11);
|
||||
return {
|
||||
"edit_shop_group" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : true,
|
||||
"label" : "{l s='Edit this shop group'}",
|
||||
"icon" : "../img/admin/edit.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShopGroup')}&updateshop_group&id_shop_group='+id;
|
||||
}
|
||||
},
|
||||
"add_shop_group" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : false,
|
||||
"label" : "{l s='Add new shop group'}",
|
||||
"icon" : "../img/admin/add.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShopGroup')}&addshop_group';
|
||||
}
|
||||
},
|
||||
"add_shop" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : true,
|
||||
"label" : "{l s='Add new shop'}",
|
||||
"icon" : "../img/admin/add.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShop')}&addshop&id_shop_group='+id;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
// Click on a shop
|
||||
else if (new RegExp(/^tree-shop-[0-9]+$/).exec(node_id))
|
||||
{
|
||||
var id = node_id.substr(10);
|
||||
var id_parent = node.parent().parent().attr('id').substr(11);
|
||||
return {
|
||||
"edit_shop" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : true,
|
||||
"label" : "{l s='Edit this shop'}",
|
||||
"icon" : "../img/admin/edit.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShop')}&updateshop&id_shop='+id;
|
||||
}
|
||||
},
|
||||
"add_shop" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : false,
|
||||
"label" : "{l s='Add new shop'}",
|
||||
"icon" : "../img/admin/add.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShop')}&addshop&id_shop_group='+id_parent;
|
||||
}
|
||||
},
|
||||
"add_url" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : true,
|
||||
"label" : "{l s='Add new URL'}",
|
||||
"icon" : "../img/admin/add.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShopUrl')}&addshop_url&id_shop='+id;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
// Click on an URL
|
||||
else if (new RegExp(/^tree-url-[0-9]+$/).exec(node_id))
|
||||
{
|
||||
var id = node_id.substr(9);
|
||||
var id_parent = node.parent().parent().attr('id').substr(10);
|
||||
return {
|
||||
"edit_url" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : true,
|
||||
"label" : "{l s='Edit this URL'}",
|
||||
"icon" : "../img/admin/edit.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShopUrl')}&updateshop_url&id_shop_url='+id;
|
||||
}
|
||||
},
|
||||
"add_url" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : true,
|
||||
"label" : "{l s='Add new URL'}",
|
||||
"icon" : "../img/admin/add.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShopUrl')}&addshop_url&id_shop='+id_parent;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
// Click on root node
|
||||
else
|
||||
{
|
||||
return {
|
||||
"add_shop_group" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : false,
|
||||
"label" : "{l s='Add new shop group'}",
|
||||
"icon" : "../img/admin/add.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShopGroup')}&addshop_group';
|
||||
}
|
||||
},
|
||||
"add_shop" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : true,
|
||||
"label" : "{l s='Add new shop'}",
|
||||
"icon" : "../img/admin/add.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShop')}&addshop';
|
||||
}
|
||||
},
|
||||
"add_url" : {
|
||||
"separator_before" : false,
|
||||
"separator_after" : true,
|
||||
"label" : "{l s='Add new URL'}",
|
||||
"icon" : "../img/admin/add.gif",
|
||||
"action" : function (obj){
|
||||
location.href = '{$link->getAdminLink('AdminShopUrl')}&addshop_url';
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
$("#multishop-tree").jstree({
|
||||
'plugins': ["themes","json_data","cookies","contextmenu"],
|
||||
'json_data': {
|
||||
'ajax': {
|
||||
'url': "{$link->getAdminLink('AdminShop')}",
|
||||
'data': function(n)
|
||||
{
|
||||
return {
|
||||
'ajax': 'true',
|
||||
'action': 'tree',
|
||||
'id': n.attr ? n.attr('id').replace(/tree-(group|shop|url)-/i, '') : '0'
|
||||
};
|
||||
},
|
||||
'success': check_selected_tree_node
|
||||
}
|
||||
},
|
||||
'cookies': {
|
||||
'save_selected': false
|
||||
},
|
||||
'core': {
|
||||
'html_titles': true,
|
||||
'animation': 300
|
||||
},
|
||||
'contextmenu': {
|
||||
items : customMenu
|
||||
},
|
||||
'themes': {
|
||||
'theme': 'classic'
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,27 @@
|
||||
{*
|
||||
* 2007-2012 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2012 PrestaShop SA
|
||||
* @version Release: $Revision: 14740 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{include file="controllers/shop/content.tpl"}
|
||||
@@ -47,15 +47,18 @@
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
toggleShareOrders();
|
||||
$('input[name=share_customer]').click(function()
|
||||
if (!$("input[name=share_order]").prop('disabled'))
|
||||
{
|
||||
toggleShareOrders();
|
||||
});
|
||||
$('input[name=share_stock]').click(function()
|
||||
{
|
||||
toggleShareOrders();
|
||||
});
|
||||
$('input[name=share_customer]').click(function()
|
||||
{
|
||||
toggleShareOrders();
|
||||
});
|
||||
$('input[name=share_stock]').click(function()
|
||||
{
|
||||
toggleShareOrders();
|
||||
});
|
||||
}
|
||||
|
||||
$('#useImportData').click(function() {
|
||||
$('#importList').slideToggle('slow');
|
||||
@@ -63,15 +66,3 @@
|
||||
});
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="label"}
|
||||
|
||||
{if $input.type == 'text' && $input.name == 'name'}
|
||||
<div class="hint" name="help_box" style="display:block;">{l s='You can\'t edit the shop group when you have more than one shop'}</div><br />
|
||||
{/if}
|
||||
|
||||
{if isset($input.label)}
|
||||
<label>{$input.label} </label>
|
||||
{/if}
|
||||
|
||||
{/block}
|
||||
@@ -0,0 +1,27 @@
|
||||
{*
|
||||
* 2007-2012 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2012 PrestaShop SA
|
||||
* @version Release: $Revision: 14740 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{include file="controllers/shop/content.tpl"}
|
||||
@@ -30,6 +30,29 @@
|
||||
fillShopUrl();
|
||||
checkMainUrlInfo();
|
||||
$('#domain, #physical_uri, #virtual_uri').keyup(fillShopUrl);
|
||||
|
||||
var change_domain_value = false;
|
||||
$('#domain').keydown(function()
|
||||
{
|
||||
if (!$('#domain_ssl').val() || $('#domain_ssl').val() == $('#domain').val())
|
||||
{
|
||||
change_domain_value = true;
|
||||
}
|
||||
});
|
||||
|
||||
$('#domain_ssl').keydown(function()
|
||||
{
|
||||
change_domain_value = false;
|
||||
});
|
||||
|
||||
$('#domain').keyup(function()
|
||||
{
|
||||
if (change_domain_value)
|
||||
{
|
||||
change_domain_value = false;
|
||||
$('#domain_ssl').val($('#domain').val());
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var shopUrl = {$js_shop_url};
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
{*
|
||||
* 2007-2012 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2012 PrestaShop SA
|
||||
* @version Release: $Revision: 9608 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{extends file="helpers/list/list_content.tpl"}
|
||||
|
||||
{block name="td_content"}
|
||||
{if $key == 'url'}
|
||||
<a href="{$tr.$key}" onmouseover="$(this).css('text-decoration', 'underline')" onmouseout="$(this).css('text-decoration', 'none')">{$tr.$key}</a>
|
||||
{else}
|
||||
{$smarty.block.parent}
|
||||
{/if}
|
||||
{/block}
|
||||
@@ -43,7 +43,7 @@
|
||||
{if isset($field.image)}<img src="{$field.image}" alt="{$field.title|escape:'htmlall':'UTF-8'}}" />{/if}
|
||||
{$field.title}
|
||||
</legend>
|
||||
{elseif $key == 'description'}
|
||||
{elseif $key == 'description' && $field}
|
||||
<p class="description">{$field}</p>
|
||||
{elseif $key == 'input'}
|
||||
{foreach $field as $input}
|
||||
@@ -378,7 +378,7 @@
|
||||
{/if}
|
||||
</fieldset>
|
||||
{block name="other_fieldsets"}{/block}
|
||||
{if isset($fields[$f+1])}<br class="clear" />{/if}
|
||||
{if isset($fields[$f+1])}<br />{/if}
|
||||
{/foreach}
|
||||
</form>
|
||||
{/block}
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
<col width="52px" />
|
||||
{/if}
|
||||
<thead>
|
||||
<tr class="nodrag nodrop">
|
||||
<tr class="nodrag nodrop" style="height: 40px">
|
||||
<th class="center">
|
||||
{if $has_bulk_actions}
|
||||
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$table}Box[]', this.checked)" />
|
||||
@@ -149,7 +149,7 @@
|
||||
<br />
|
||||
<a href="{$currentIndex}&{$table}Orderby={$key|urlencode}&{$table}Orderway=desc&token={$token}"><img border="0" src="../img/admin/down{if isset($order_by) && ($key == $order_by) && ($order_way == 'DESC')}_d{/if}.gif" /></a>
|
||||
<a href="{$currentIndex}&{$table}Orderby={$key|urlencode}&{$table}Orderway=asc&token={$token}"><img border="0" src="../img/admin/up{if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}_d{/if}.gif" /></a>
|
||||
{else}
|
||||
{elseif !$simple_header}
|
||||
<br />
|
||||
{/if}
|
||||
</th>
|
||||
@@ -165,7 +165,7 @@
|
||||
</th>
|
||||
{/if}
|
||||
{if $has_actions}
|
||||
<th class="center">{l s='Actions'}<br /> </th>
|
||||
<th class="center">{l s='Actions'}{if !$simple_header}<br /> {/if}</th>
|
||||
{/if}
|
||||
</tr>
|
||||
{if !$simple_header}
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<div style="clear: both; padding-top:15px;" id="conf_id_{$key}" {if $field['is_invisible']} class="isInvisible"{/if}>
|
||||
{if ($field['multishop_default'])}
|
||||
<div class="preference_default_multishop">
|
||||
<input type="checkbox" name="configUseDefault[{$key}]" value="1" {if $field['is_disabled']} {/if} onclick="checkMultishopDefaultValue(this, '{$key}')" />
|
||||
<input type="checkbox" name="multishopOverrideOption[{$key}]" value="1" {if !$field['is_disabled']}checked="checked"{/if} onclick="checkMultishopDefaultValue(this, '{$key}')" />
|
||||
</div>
|
||||
{/if}
|
||||
{block name="label"}
|
||||
|
||||
@@ -957,7 +957,7 @@ abstract class AdminTabCore
|
||||
|
||||
/* Check required fields */
|
||||
foreach ($fields as $field => $values)
|
||||
if (isset($values['required']) && $values['required'] && !isset($_POST['configUseDefault'][$field]))
|
||||
if (isset($values['required']) && $values['required'] && !empty($_POST['multishopOverrideOption'][$field]))
|
||||
if (isset($values['type']) && $values['type'] == 'textLang')
|
||||
{
|
||||
foreach ($languages as $language)
|
||||
@@ -985,14 +985,14 @@ abstract class AdminTabCore
|
||||
if (!Tools::getValue($field) && isset($values['default']))
|
||||
$_POST[$field] = $values['default'];
|
||||
|
||||
if (1||!count($this->_errors))
|
||||
if (!count($this->_errors))
|
||||
{
|
||||
foreach ($fields as $key => $options)
|
||||
{
|
||||
if (isset($options['visibility']) && $options['visibility'] > Shop::getContext())
|
||||
continue;
|
||||
|
||||
if (Shop::isFeatureActive() && isset($_POST['configUseDefault'][$key]))
|
||||
if (Shop::isFeatureActive() && empty($_POST['multishopOverrideOption'][$key]))
|
||||
{
|
||||
Configuration::deleteFromContext($key);
|
||||
continue;
|
||||
@@ -1891,7 +1891,7 @@ abstract class AdminTabCore
|
||||
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL && !$isInvisible)
|
||||
echo '<div class="preference_default_multishop">
|
||||
<label>
|
||||
<input type="checkbox" name="configUseDefault['.$key.']" value="1" '.(($isDisabled) ? 'checked="checked"' : '').' onclick="checkMultishopDefaultValue(this, \''.$key.'\')" /> '.$this->l('Use default value').'
|
||||
<input type="checkbox" name="multishopOverrideOption['.$key.']" value="1" '.(($isDisabled) ? 'checked="checked"' : '').' onclick="checkMultishopDefaultValue(this, \''.$key.'\')" /> '.$this->l('Use default value').'
|
||||
</label>
|
||||
</div>';
|
||||
|
||||
|
||||
@@ -346,6 +346,19 @@ class CollectionCore implements Iterator, ArrayAccess, Countable
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the first result
|
||||
*
|
||||
* @return ObjectModel
|
||||
*/
|
||||
public function getFirst()
|
||||
{
|
||||
$this->getAll();
|
||||
if (!count($this))
|
||||
return false;
|
||||
return $this[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get results array
|
||||
*
|
||||
|
||||
@@ -89,6 +89,7 @@ class TabCore extends ObjectModel
|
||||
$class_name = Tab::getClassNameById($this->id_parent);
|
||||
if (isset($retro[$class_name]))
|
||||
$this->id_parent = Tab::getIdFromClassName($retro[$class_name]);
|
||||
self::$_cache_tabs = array();
|
||||
|
||||
// Set good position for new tab
|
||||
$this->position = Tab::getNewLastPosition($this->id_parent);
|
||||
@@ -220,7 +221,7 @@ class TabCore extends ObjectModel
|
||||
*
|
||||
* @return array tabs
|
||||
*/
|
||||
static $_cache_tabs = array();
|
||||
protected static $_cache_tabs = array();
|
||||
public static function getTabs($id_lang, $id_parent = null)
|
||||
{
|
||||
if (!isset(self::$_cache_tabs[$id_lang]))
|
||||
@@ -479,6 +480,7 @@ class TabCore extends ObjectModel
|
||||
if ($current_tab->id_parent != $this->id_parent)
|
||||
$this->position = Tab::getNewLastPosition($this->id_parent);
|
||||
|
||||
self::$_cache_tabs = array();
|
||||
return parent::update($null_values);
|
||||
}
|
||||
|
||||
|
||||
@@ -866,7 +866,7 @@ class AdminControllerCore extends Controller
|
||||
continue;
|
||||
|
||||
// Check if field is required
|
||||
if (isset($values['required']) && $values['required'] && !isset($_POST['configUseDefault'][$field]))
|
||||
if (isset($values['required']) && $values['required'] && !empty($_POST['multishopOverrideOption'][$field]))
|
||||
if (isset($values['type']) && $values['type'] == 'textLang')
|
||||
{
|
||||
foreach ($languages as $language)
|
||||
@@ -897,10 +897,10 @@ class AdminControllerCore extends Controller
|
||||
{
|
||||
foreach ($fields as $key => $options)
|
||||
{
|
||||
if (Shop::isFeatureActive() && isset($options['visibility']) && ($options['visibility'] > Shop::getContext()))
|
||||
if (Shop::isFeatureActive() && isset($options['visibility']) && $options['visibility'] > Shop::getContext())
|
||||
continue;
|
||||
|
||||
if (Shop::isFeatureActive() && isset($_POST['configUseDefault'][$key]))
|
||||
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL && empty($_POST['multishopOverrideOption'][$key]))
|
||||
{
|
||||
Configuration::deleteFromContext($key);
|
||||
continue;
|
||||
@@ -941,11 +941,11 @@ class AdminControllerCore extends Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($this->errors))
|
||||
$this->confirmations[] = $this->_conf[6];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* assign default action in toolbar_btn smarty var, if they are not set.
|
||||
* uses override to specifically add, modify or remove items
|
||||
|
||||
@@ -198,6 +198,7 @@ class ShopCore extends ObjectModel
|
||||
/**
|
||||
* Detect dependency with customer or orders
|
||||
*
|
||||
* @param int $id_shop
|
||||
* @return bool
|
||||
*/
|
||||
public static function hasDependency($id_shop)
|
||||
@@ -224,17 +225,6 @@ class ShopCore extends ObjectModel
|
||||
return $has_dependency;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a new instance of a shop
|
||||
*
|
||||
* @param int $id shop ID
|
||||
* @return Shop
|
||||
*/
|
||||
public static function getInstance($id)
|
||||
{
|
||||
return new Shop($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the shop from current domain / uri and get an instance of this shop
|
||||
* if INSTALL_VERSION is defined, will return an empty shop object
|
||||
@@ -533,6 +523,25 @@ class ShopCore extends ObjectModel
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a collection of shops
|
||||
*
|
||||
* @param bool $active
|
||||
* @param int $id_shop_group
|
||||
* @return Collection
|
||||
*/
|
||||
public static function getShopsCollection($active = true, $id_shop_group = null)
|
||||
{
|
||||
$shops = new Collection('Shop');
|
||||
if ($active)
|
||||
$shops->where('active', '=', 1);
|
||||
|
||||
if ($id_shop_group)
|
||||
$shops->where('id_shop_group', '=', $id_shop_group);
|
||||
|
||||
return $shops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return some informations cached for one shop
|
||||
*
|
||||
@@ -749,15 +758,11 @@ class ShopCore extends ObjectModel
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool Return true if there is more than one shop
|
||||
* @return bool Return true if multishop feature is activated
|
||||
*/
|
||||
public static function isFeatureActive()
|
||||
{
|
||||
static $total = null;
|
||||
|
||||
if (is_null($total))
|
||||
$total = Db::getInstance()->getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'shop');
|
||||
return ($total > 1) ? true : false;
|
||||
return Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE');
|
||||
}
|
||||
|
||||
public function copyShopData($old_id, $tables_import = false, $deleted = false)
|
||||
@@ -813,16 +818,6 @@ class ShopCore extends ObjectModel
|
||||
), $m['id_module']);
|
||||
}
|
||||
|
||||
public function checkIfShopExist($id)
|
||||
{
|
||||
return (int)Db::getInstance()->getValue('SELECT COUNT(*) FROM`'._DB_PREFIX_.'shop` WHERE `id_shop` = '.(int)$id);
|
||||
}
|
||||
|
||||
public function checkIfShopGroupExist($id)
|
||||
{
|
||||
return (int)Db::getInstance()->getValue('SELECT COUNT(*) FROM`'._DB_PREFIX_.'shop_group` WHERE `id_shop_group` = '.(int)$id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated 1.5.0 Use shop->id
|
||||
*/
|
||||
|
||||
@@ -108,4 +108,42 @@ class ShopGroupCore extends ObjectModel
|
||||
WHERE name = \''.pSQL($name).'\'';
|
||||
return (int)Db::getInstance()->getValue($sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect dependency with customer or orders
|
||||
*
|
||||
* @param int $id_shop_group
|
||||
* @param string $check all|customer|order
|
||||
* @return bool
|
||||
*/
|
||||
public static function hasDependency($id_shop_group, $check = 'all')
|
||||
{
|
||||
$list_shops = Shop::getShops(false, $id_shop_group, true);
|
||||
if (!$list_shops)
|
||||
return false;
|
||||
|
||||
if ($check == 'all' || $check == 'customer')
|
||||
{
|
||||
$total_customer = (int)Db::getInstance()->getValue('
|
||||
SELECT count(*)
|
||||
FROM `'._DB_PREFIX_.'customer`
|
||||
WHERE `id_shop` IN ('.implode(', ', $list_shops).')'
|
||||
);
|
||||
if ($total_customer)
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($check == 'all' || $check == 'order')
|
||||
{
|
||||
$total_order = (int)Db::getInstance()->getValue('
|
||||
SELECT count(*)
|
||||
FROM `'._DB_PREFIX_.'orders`
|
||||
WHERE `id_shop` IN ('.implode(', ', $list_shops).')'
|
||||
);
|
||||
if ($total_order)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,41 +164,4 @@ class ShopUrlCore extends ObjectModel
|
||||
}
|
||||
return self::$main_domain_ssl;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @param string $virtual_uri
|
||||
* @param int $id_shop_tested
|
||||
* @return bool
|
||||
*/
|
||||
public static function virtualUriExists($virtual_uri, $id_shop_tested)
|
||||
{
|
||||
Tools::displayAsDeprecated();
|
||||
$virtual_uri = trim($virtual_uri);
|
||||
if (substr($virtual_uri, -1) != '/')
|
||||
$virtual_uri .= '/';
|
||||
return (bool) Db::getInstance()->getValue('
|
||||
SELECT `virtual_uri`
|
||||
FROM `'._DB_PREFIX_.'shop_url`
|
||||
WHERE `id_shop` != '.(int)$id_shop_tested.'
|
||||
AND `virtual_uri` = "'.pSQL($virtual_uri).'"');
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @param string $domain
|
||||
* @param string $physical_uri
|
||||
* @param string $virtual_uri
|
||||
* @param int $id_shop_tested
|
||||
* @return bool
|
||||
*/
|
||||
public static function urlExists($domain, $physical_uri, $virtual_uri, $id_shop_tested)
|
||||
{
|
||||
$url = $domain.$physical_uri.$virtual_uri;
|
||||
return (bool)Db::getInstance()->getValue('
|
||||
SELECT *
|
||||
FROM `'._DB_PREFIX_.'shop_url`
|
||||
WHERE `id_shop` != '.(int)$id_shop_tested.'
|
||||
AND CONCAT(`domain`, `physical_uri`, `virtual_uri`) ="'.pSQL($url).'"');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,6 +112,46 @@ class AdminMetaControllerCore extends AdminController
|
||||
if (isset($robots_submit))
|
||||
$robots_options['submit'] = $robots_submit;
|
||||
|
||||
// Options for shop URL if multishop is disabled
|
||||
$shop_url_options = array(
|
||||
'title' => $this->l('Set shop URL'),
|
||||
'fields' => array(),
|
||||
);
|
||||
|
||||
if (!Shop::isFeatureActive())
|
||||
{
|
||||
$this->url = ShopUrl::getShopUrls($this->context->shop->id)->where('main', '=', 1)->getFirst();
|
||||
if ($this->url)
|
||||
{
|
||||
$shop_url_options['description'] = $this->l('You can set here the URL for your shop. If you migrate your shop to a new URL, remember to change the values bellow.');
|
||||
$shop_url_options['fields'] = array(
|
||||
'domain' => array(
|
||||
'title' => $this->l('Shop domain'),
|
||||
'validation' => 'isString',
|
||||
'type' => 'text',
|
||||
'size' => 70,
|
||||
'defaultValue' => $this->url->domain,
|
||||
),
|
||||
'domain_ssl' => array(
|
||||
'title' => $this->l('SSL domain'),
|
||||
'validation' => 'isString',
|
||||
'type' => 'text',
|
||||
'size' => 70,
|
||||
'defaultValue' => $this->url->domain_ssl,
|
||||
),
|
||||
'uri' => array(
|
||||
'title' => $this->l('Base URI'),
|
||||
'validation' => 'isString',
|
||||
'type' => 'text',
|
||||
'size' => 70,
|
||||
'defaultValue' => $this->url->physical_uri,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
$shop_url_options['description'] = $this->l('Multishop option is enabled, if you want to change the url of your shop you have to go in "Advanced parameters" -> "multishop" tab.');
|
||||
|
||||
// List of options
|
||||
$this->fields_options = array(
|
||||
'general' => array(
|
||||
@@ -120,12 +160,13 @@ class AdminMetaControllerCore extends AdminController
|
||||
'fields' => $general_fields,
|
||||
'submit' => array()
|
||||
),
|
||||
'robots' => $robots_options,
|
||||
'shop_url' => $shop_url_options,
|
||||
'routes' => array(
|
||||
'title' => $this->l('Schema of URLs'),
|
||||
'description' => $this->l('Change the pattern of your links. There are some available keywords for each route listed below, keywords with * are required. To add a keyword in your URL use {keyword} syntax. You can add some text before or after the keyword IF the keyword is not empty with syntax {prepend:keyword:append}, for example {-hey-:meta_title} will add "-hey-my-title" in URL if meta title is set, or nothing. Friendly URL and rewriting Apache option must be activated on your web server to use this functionality.'),
|
||||
'fields' => array(),
|
||||
),
|
||||
'robots' => $robots_options,
|
||||
);
|
||||
|
||||
// Add display route options to options form
|
||||
@@ -147,20 +188,20 @@ class AdminMetaControllerCore extends AdminController
|
||||
$this->addJqueryUi('ui.widget');
|
||||
$this->addJqueryPlugin('tagify');
|
||||
}
|
||||
|
||||
public function addFieldRoute($routeID, $title)
|
||||
|
||||
public function addFieldRoute($route_id, $title)
|
||||
{
|
||||
$keywords = array();
|
||||
foreach (Dispatcher::getInstance()->default_routes[$routeID]['keywords'] as $keyword => $data)
|
||||
foreach (Dispatcher::getInstance()->default_routes[$route_id]['keywords'] as $keyword => $data)
|
||||
$keywords[] = ((isset($data['param'])) ? '<span class="red">'.$keyword.'*</span>' : $keyword);
|
||||
|
||||
$this->fields_options['routes']['fields']['PS_ROUTE_'.$routeID] = array(
|
||||
$this->fields_options['routes']['fields']['PS_ROUTE_'.$route_id] = array(
|
||||
'title' => $title,
|
||||
'desc' => sprintf($this->l('Keywords: %s'), implode(', ', $keywords)),
|
||||
'validation' => 'isString',
|
||||
'type' => 'text',
|
||||
'size' => 70,
|
||||
'defaultValue' => Dispatcher::getInstance()->default_routes[$routeID]['rule'],
|
||||
'defaultValue' => Dispatcher::getInstance()->default_routes[$route_id]['rule'],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -363,29 +404,29 @@ class AdminMetaControllerCore extends AdminController
|
||||
/**
|
||||
* Validate route syntax and save it in configuration
|
||||
*
|
||||
* @param string $routeID
|
||||
* @param string $route_id
|
||||
*/
|
||||
public function checkAndUpdateRoute($routeID)
|
||||
public function checkAndUpdateRoute($route_id)
|
||||
{
|
||||
$default_routes = Dispatcher::getInstance()->default_routes;
|
||||
if (!isset($default_routes[$routeID]))
|
||||
if (!isset($default_routes[$route_id]))
|
||||
return;
|
||||
|
||||
$rule = Tools::getValue('PS_ROUTE_'.$routeID);
|
||||
if (!$rule || $rule == $default_routes[$routeID]['rule'])
|
||||
$rule = Tools::getValue('PS_ROUTE_'.$route_id);
|
||||
if (!$rule || $rule == $default_routes[$route_id]['rule'])
|
||||
{
|
||||
Configuration::updateValue('PS_ROUTE_'.$routeID, '');
|
||||
Configuration::updateValue('PS_ROUTE_'.$route_id, '');
|
||||
return;
|
||||
}
|
||||
|
||||
$errors = array();
|
||||
if (!Dispatcher::getInstance()->validateRoute($routeID, $rule, $errors))
|
||||
if (!Dispatcher::getInstance()->validateRoute($route_id, $rule, $errors))
|
||||
{
|
||||
foreach ($errors as $error)
|
||||
$this->errors[] = sprintf('Keyword "{%1$s}" required for route "%2$s" (rule: "%3$s")', $error, $routeID, htmlspecialchars($rule));
|
||||
$this->errors[] = sprintf('Keyword "{%1$s}" required for route "%2$s" (rule: "%3$s")', $error, $route_id, htmlspecialchars($rule));
|
||||
}
|
||||
else
|
||||
Configuration::updateValue('PS_ROUTE_'.$routeID, $rule);
|
||||
Configuration::updateValue('PS_ROUTE_'.$route_id, $rule);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -432,6 +473,42 @@ class AdminMetaControllerCore extends AdminController
|
||||
$this->checkAndUpdateRoute('cms_category_rule');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update shop domain (for mono shop)
|
||||
*/
|
||||
public function updateOptionDomain($value)
|
||||
{
|
||||
if (!Shop::isFeatureActive() && $this->url && $this->url->domain != $value)
|
||||
{
|
||||
$this->url->domain = $value;
|
||||
$this->url->update();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update shop SSL domain (for mono shop)
|
||||
*/
|
||||
public function updateOptionDomainSsl($value)
|
||||
{
|
||||
if (!Shop::isFeatureActive() && $this->url && $this->url->domain_ssl != $value)
|
||||
{
|
||||
$this->url->domain_ssl = $value;
|
||||
$this->url->update();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update shop physical uri for mono shop)
|
||||
*/
|
||||
public function updateOptionUri($value)
|
||||
{
|
||||
if (!Shop::isFeatureActive() && $this->url && $this->url->physical_uri != $value)
|
||||
{
|
||||
$this->url->physical_uri = $value;
|
||||
$this->url->update();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function used to render the options for this controller
|
||||
*/
|
||||
|
||||
@@ -34,8 +34,6 @@ class AdminPreferencesControllerCore extends AdminController
|
||||
$this->className = 'Configuration';
|
||||
$this->table = 'configuration';
|
||||
|
||||
|
||||
|
||||
// Prevent classes which extend AdminPreferences to load useless data
|
||||
if (get_class($this) == 'AdminPreferencesController')
|
||||
{
|
||||
@@ -88,6 +86,14 @@ class AdminPreferencesControllerCore extends AdminController
|
||||
'cast' => 'intval',
|
||||
'type' => 'bool'
|
||||
),
|
||||
'PS_MULTISHOP_FEATURE_ACTIVE' => array(
|
||||
'title' => $this->l('Enable multishop'),
|
||||
'desc' => $this->l('Multishop feature allows you to manage several shops with one back-office. If this feature is enabled, a tab "multishop" will be available in "advanced parameters" menu.'),
|
||||
'validation' => 'isBool',
|
||||
'cast' => 'intval',
|
||||
'type' => 'bool',
|
||||
'visibility' => Shop::CONTEXT_ALL
|
||||
),
|
||||
);
|
||||
|
||||
// No HTTPS activation if you haven't already.
|
||||
@@ -110,4 +116,18 @@ class AdminPreferencesControllerCore extends AdminController
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable / disable multishop menu if multishop feature is activated
|
||||
*
|
||||
* @param string $value
|
||||
*/
|
||||
public function updateOptionPsMultishopFeatureActive($value)
|
||||
{
|
||||
Configuration::updateValue('PS_MULTISHOP_FEATURE_ACTIVE', $value);
|
||||
|
||||
$tab = Tab::getInstanceFromClassName('AdminShopGroup');
|
||||
$tab->active = (bool)Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE');
|
||||
$tab->update();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,8 @@ class AdminShopControllerCore extends AdminController
|
||||
$this->context = Context::getContext();
|
||||
$this->table = 'shop';
|
||||
$this->className = 'Shop';
|
||||
$this->multishop_context = Shop::CONTEXT_ALL | Shop::CONTEXT_GROUP;
|
||||
$this->multishop_context = Shop::CONTEXT_ALL;
|
||||
$this->id_shop_group = Tools::getValue('id_shop_group');
|
||||
|
||||
$this->fields_list = array(
|
||||
'id_shop' => array(
|
||||
@@ -53,7 +54,7 @@ class AdminShopControllerCore extends AdminController
|
||||
'filter_key' => 'gs!name'
|
||||
),
|
||||
'category_name' => array(
|
||||
'title' => $this->l('Category Root'),
|
||||
'title' => $this->l('Category'),
|
||||
'width' => 150,
|
||||
'filter_key' => 'cl!name'
|
||||
),
|
||||
@@ -72,31 +73,20 @@ class AdminShopControllerCore extends AdminController
|
||||
)
|
||||
);
|
||||
|
||||
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'),'confirm' => $this->l('Delete selected items?')));
|
||||
|
||||
$this->fields_options = array(
|
||||
'general' => array(
|
||||
'title' => $this->l('Shops options'),
|
||||
'fields' => array(
|
||||
'PS_SHOP_DEFAULT' => array(
|
||||
'title' => $this->l('Default shop:'),
|
||||
'desc' => $this->l('The default shop'),
|
||||
'cast' => 'intval',
|
||||
'type' => 'select',
|
||||
'identifier' => 'id_shop',
|
||||
'list' => Shop::getShops(),
|
||||
'visibility' => Shop::CONTEXT_ALL
|
||||
)
|
||||
),
|
||||
'submit' => array()
|
||||
)
|
||||
);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function initToolbar()
|
||||
{
|
||||
if (!$this->id_shop_group && $this->object && $this->object->id_shop_group)
|
||||
$this->id_shop_group = $this->object->id_shop_url;
|
||||
|
||||
if (!$this->display && $this->id_shop_group)
|
||||
$this->toolbar_btn['edit'] = array(
|
||||
'desc' => $this->l('Edit this shop group'),
|
||||
'href' => $this->context->link->getAdminLink('AdminShopGroup').'&updateshop_group&id_shop_group='.$this->id_shop_group,
|
||||
);
|
||||
|
||||
if ($this->display == 'edit' || $this->display == 'add')
|
||||
{
|
||||
if ($shop = $this->loadObject(true))
|
||||
@@ -111,21 +101,11 @@ class AdminShopControllerCore extends AdminController
|
||||
'desc' => $this->l('Delete this shop'),
|
||||
'confirm' => 1);
|
||||
|
||||
// adding button for preview this shop
|
||||
if ($url_preview = $shop->getBaseURL())
|
||||
$this->toolbar_btn['preview'] = array(
|
||||
'href' => $url_preview,
|
||||
'desc' => $this->l('Home page'),
|
||||
'target' => true,
|
||||
'class' => 'previewUrl'
|
||||
);
|
||||
|
||||
$this->toolbar_btn['new-url'] = array(
|
||||
'href' => $this->context->link->getAdminLink('AdminShopUrl').'&id_shop='.$shop->id.'&addshop_url',
|
||||
'desc' => $this->l('Add URL'),
|
||||
'class' => 'addShopUrl'
|
||||
);
|
||||
|
||||
'href' => $this->context->link->getAdminLink('AdminShopUrl').'&id_shop='.$shop->id.'&addshop_url',
|
||||
'desc' => $this->l('Add URL'),
|
||||
'class' => 'addShopUrl'
|
||||
);
|
||||
}
|
||||
|
||||
if ($this->tabAccess['edit'])
|
||||
@@ -147,6 +127,41 @@ class AdminShopControllerCore extends AdminController
|
||||
|
||||
parent::initToolbar();
|
||||
$this->context->smarty->assign('toolbar_scroll', 1);
|
||||
|
||||
$this->show_toolbar = false;
|
||||
if (isset($this->toolbar_btn['new']))
|
||||
$this->toolbar_btn['new'] = array(
|
||||
'desc' => $this->l('Add new shop'),
|
||||
'href' => $this->context->link->getAdminLink('AdminShop').'&add'.$this->table.'&id_shop_group='.$this->id_shop_group,
|
||||
);
|
||||
|
||||
if (isset($this->toolbar_btn['back']))
|
||||
$this->toolbar_btn['back']['href'] .= '&id_shop_group='.$this->id_shop_group;
|
||||
}
|
||||
|
||||
public function initContent()
|
||||
{
|
||||
$this->list_simple_header = true;
|
||||
parent::initContent();
|
||||
|
||||
$this->addJqueryPlugin('cookie');
|
||||
$this->addJqueryPlugin('jstree');
|
||||
$this->addCSS(_PS_JS_DIR_.'jquery/plugins/jstree/themes/classic/style.css');
|
||||
|
||||
if ($this->display == 'edit')
|
||||
$this->toolbar_title[] = $this->object->name;
|
||||
else if (!$this->display && $this->id_shop_group)
|
||||
{
|
||||
$group = new ShopGroup($this->id_shop_group);
|
||||
$this->toolbar_title[] = $group->name;
|
||||
}
|
||||
|
||||
$this->context->smarty->assign(array(
|
||||
'toolbar_scroll' => 1,
|
||||
'toolbar_btn' => $this->toolbar_btn,
|
||||
'title' => $this->toolbar_title,
|
||||
'selected_tree_id' => ($this->display == 'edit' ? 'tree-shop-'.$this->id_object : (Tools::getValue('id_shop_group') ? 'tree-group-'.Tools::getValue('id_shop_group') : '')),
|
||||
));
|
||||
}
|
||||
|
||||
public function renderList()
|
||||
@@ -165,6 +180,9 @@ class AdminShopControllerCore extends AdminController
|
||||
';
|
||||
$this->_group = 'GROUP BY a.id_shop';
|
||||
|
||||
if ($id_shop_group = (int)Tools::getValue('id_shop_group'))
|
||||
$this->_where = 'AND a.id_shop_group = '.$id_shop_group;
|
||||
|
||||
return parent::renderList();
|
||||
}
|
||||
|
||||
@@ -204,7 +222,12 @@ class AdminShopControllerCore extends AdminController
|
||||
|
||||
if ($this->errors)
|
||||
return false;
|
||||
return parent::postProcess();
|
||||
$result = parent::postProcess();
|
||||
|
||||
if ($this->redirect_after)
|
||||
$this->redirect_after .= '&id_shop_group='.$this->id_shop_group;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function processDelete()
|
||||
@@ -274,33 +297,37 @@ class AdminShopControllerCore extends AdminController
|
||||
)
|
||||
);
|
||||
|
||||
if (Shop::getTotalShops() > 1 && $obj->id)
|
||||
$display_group_list = true;
|
||||
if ($this->display == 'edit')
|
||||
{
|
||||
$shop_group = new ShopGroup($obj->id_shop_group);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'hidden',
|
||||
'name' => 'id_shop_group',
|
||||
'default' => $shop_group->name
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'textShopGroup',
|
||||
'label' => $this->l('Group Shop:'),
|
||||
'name' => 'id_shop_group',
|
||||
'value' => $shop_group->name
|
||||
);
|
||||
$group = new ShopGroup($obj->id_shop_group);
|
||||
if ($group->share_customer || $group->share_order || $group->share_stock)
|
||||
$display_group_list = false;
|
||||
}
|
||||
else
|
||||
|
||||
if (!$display_group_list)
|
||||
{
|
||||
$options = array();
|
||||
foreach (ShopGroup::getShopGroups() as $group)
|
||||
{
|
||||
if ($this->display == 'edit' && ($group->share_customer || $group->share_order || $group->share_stock) && ShopGroup::hasDependency($group->id))
|
||||
continue;
|
||||
|
||||
$options[] = array(
|
||||
'id_shop_group' => $group->id,
|
||||
'name' => $group->name,
|
||||
);
|
||||
}
|
||||
|
||||
if ($this->display == 'add')
|
||||
$group_desc = $this->l('Warning: you won\'t be able to change the group of this shop if this shop belong to a group with one of these options "share customers" or "share quantities" or "share orders" activated.');
|
||||
else
|
||||
$group_desc = $this->l('You can only move your shop to a shop group with all "share" options disabled or to a shop group with no customers / orders.');
|
||||
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Group Shop:'),
|
||||
'desc' => $group_desc,
|
||||
'name' => 'id_shop_group',
|
||||
'options' => array(
|
||||
'query' => $options,
|
||||
@@ -309,6 +336,22 @@ class AdminShopControllerCore extends AdminController
|
||||
),
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'hidden',
|
||||
'name' => 'id_shop_group',
|
||||
'default' => $group->name
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'textShopGroup',
|
||||
'label' => $this->l('Shop group:'),
|
||||
'desc' => $this->l('You can\'t edit the shop group because the current shop belongs to a group with a "share" option enabled.'),
|
||||
'name' => 'id_shop_group',
|
||||
'value' => $group->name
|
||||
);
|
||||
}
|
||||
|
||||
$categories = Category::getRootCategories($this->context->language->id);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'select',
|
||||
@@ -558,4 +601,111 @@ class AdminShopControllerCore extends AdminController
|
||||
$helper = new Helper();
|
||||
return $helper->renderCategoryTree($root_category, $selected_cat, 'categoryBox', false, true);
|
||||
}
|
||||
|
||||
public function ajaxProcessTree()
|
||||
{
|
||||
$tree = array();
|
||||
$sql = 'SELECT g.id_shop_group, g.name as group_name, s.id_shop, s.name as shop_name, u.id_shop_url, u.domain, u.physical_uri, u.virtual_uri
|
||||
FROM '._DB_PREFIX_.'shop_group g
|
||||
LEFT JOIN '._DB_PREFIX_.'shop s ON g.id_shop_group = s.id_shop_group
|
||||
LEFT JOIN '._DB_PREFIX_.'shop_url u ON u.id_shop = s.id_shop
|
||||
ORDER BY g.name, s.name, u.main, u.domain';
|
||||
$results = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
||||
foreach ($results as $row)
|
||||
{
|
||||
$id_shop_group = $row['id_shop_group'];
|
||||
$id_shop = $row['id_shop'];
|
||||
$id_shop_url = $row['id_shop_url'];
|
||||
|
||||
// Group list
|
||||
if (!isset($tree[$id_shop_group]))
|
||||
$tree[$id_shop_group] = array(
|
||||
'data' => array(
|
||||
'title' => '<b>'.$this->l('Group:').'</b> '.$row['group_name'],
|
||||
'icon' => 'themes/'.$this->context->employee->bo_theme.'/img/tree-multishop-groups.png',
|
||||
'attr' => array(
|
||||
'href' => $this->context->link->getAdminLink('AdminShop').'&id_shop_group='.$id_shop_group,
|
||||
'title' => sprintf($this->l('Click here to display shops of group %s'), $row['group_name']),
|
||||
)
|
||||
),
|
||||
'attr' => array(
|
||||
'id' => 'tree-group-'.$id_shop_group,
|
||||
),
|
||||
'children' => array(),
|
||||
);
|
||||
|
||||
// Shop list
|
||||
if (!$id_shop)
|
||||
continue;
|
||||
|
||||
if (!isset($tree[$id_shop_group]['children'][$id_shop]))
|
||||
$tree[$id_shop_group]['children'][$id_shop] = array(
|
||||
'data' => array(
|
||||
'title' => $row['shop_name'],
|
||||
'icon' => 'themes/'.$this->context->employee->bo_theme.'/img/tree-multishop-shop.png',
|
||||
'attr' => array(
|
||||
'href' => $this->context->link->getAdminLink('AdminShopUrl').'&id_shop='.$id_shop,
|
||||
'title' => sprintf($this->l('Click here to display URLs of shop %s'), $row['shop_name']),
|
||||
)
|
||||
),
|
||||
'attr' => array(
|
||||
'id' => 'tree-shop-'.$id_shop,
|
||||
),
|
||||
'children' => array(),
|
||||
);
|
||||
|
||||
// Url list
|
||||
if (!$id_shop_url)
|
||||
continue;
|
||||
|
||||
if (!isset($tree[$id_shop_group]['children'][$id_shop]['children'][$id_shop_url]))
|
||||
{
|
||||
$url = $row['domain'].$row['physical_uri'].$row['virtual_uri'];
|
||||
if (strlen($url) > 23)
|
||||
$url = substr($url, 0, 23).'...';
|
||||
|
||||
$tree[$id_shop_group]['children'][$id_shop]['children'][$id_shop_url] = array(
|
||||
'data' => array(
|
||||
'title' => $url,
|
||||
'icon' => 'themes/'.$this->context->employee->bo_theme.'/img/tree-multishop-url.png',
|
||||
'attr' => array(
|
||||
'href' => $this->context->link->getAdminLink('AdminShopUrl').'&updateshop_url&id_shop_url='.$id_shop_url,
|
||||
'title' => $row['domain'].$row['physical_uri'].$row['virtual_uri'],
|
||||
)
|
||||
),
|
||||
'attr' => array(
|
||||
'id' => 'tree-url-'.$id_shop_url,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// jstree need to have children as array and not object, so we use sort to get clean keys
|
||||
// DO NOT REMOVE this code, even if it seems really strange ;)
|
||||
sort($tree);
|
||||
foreach ($tree as &$groups)
|
||||
{
|
||||
sort($groups['children']);
|
||||
foreach ($groups['children'] as &$shops)
|
||||
sort($shops['children']);
|
||||
}
|
||||
|
||||
$tree = array(array(
|
||||
'data' => array(
|
||||
'title' => '<b>'.$this->l('Shop groups list').'</b>',
|
||||
'icon' => 'themes/'.$this->context->employee->bo_theme.'/img/tree-multishop-root.png',
|
||||
'attr' => array(
|
||||
'href' => $this->context->link->getAdminLink('AdminShopGroup'),
|
||||
'title' => $this->l('Click here to display group shops list'),
|
||||
)
|
||||
),
|
||||
'attr' => array(
|
||||
'id' => 'tree-root',
|
||||
),
|
||||
'state' => 'open',
|
||||
'children' => $tree,
|
||||
));
|
||||
|
||||
die(Tools::jsonEncode($tree));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,9 +36,7 @@ class AdminShopGroupControllerCore extends AdminController
|
||||
$this->multishop_context = Shop::CONTEXT_ALL;
|
||||
|
||||
$this->addRowAction('edit');
|
||||
|
||||
$this->addRowAction('delete');
|
||||
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'),'confirm' => $this->l('Delete selected items?')));
|
||||
|
||||
$this->context = Context::getContext();
|
||||
|
||||
@@ -67,15 +65,62 @@ class AdminShopGroupControllerCore extends AdminController
|
||||
),
|
||||
);
|
||||
|
||||
$this->fields_options = array(
|
||||
'general' => array(
|
||||
'title' => $this->l('Multishop options'),
|
||||
'fields' => array(
|
||||
'PS_SHOP_DEFAULT' => array(
|
||||
'title' => $this->l('Default shop:'),
|
||||
'cast' => 'intval',
|
||||
'type' => 'select',
|
||||
'identifier' => 'id_shop',
|
||||
'list' => Shop::getShops(),
|
||||
'visibility' => Shop::CONTEXT_ALL
|
||||
)
|
||||
),
|
||||
'submit' => array()
|
||||
)
|
||||
);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function initToolbar()
|
||||
{
|
||||
parent::initToolbar();
|
||||
|
||||
$this->show_toolbar = false;
|
||||
if (isset($this->toolbar_btn['new']))
|
||||
$this->toolbar_btn['new']['desc'] = $this->l('Add new shop group');
|
||||
}
|
||||
|
||||
public function initContent()
|
||||
{
|
||||
$this->list_simple_header = true;
|
||||
parent::initContent();
|
||||
|
||||
$this->addJqueryPlugin('cookie');
|
||||
$this->addJqueryPlugin('jstree');
|
||||
$this->addCSS(_PS_JS_DIR_.'jquery/plugins/jstree/themes/classic/style.css');
|
||||
|
||||
if ($this->display == 'edit')
|
||||
$this->toolbar_title[] = $this->object->name;
|
||||
|
||||
$this->context->smarty->assign(array(
|
||||
'toolbar_scroll' => 1,
|
||||
'toolbar_btn' => $this->toolbar_btn,
|
||||
'title' => $this->toolbar_title,
|
||||
'selected_tree_id' => ($this->display == 'edit') ? 'tree-group-'.$this->id_object : 'tree-root',
|
||||
));
|
||||
}
|
||||
|
||||
public function renderForm()
|
||||
{
|
||||
$this->fields_form = array(
|
||||
'legend' => array(
|
||||
'title' => $this->l('ShopGroup')
|
||||
),
|
||||
'description' => $this->l('Warning: it is not recommended to enable the "share customers" and "share orders" options, because once they are activated and customers or orders are created, you won\'t be able to disable these options anymore. If you need these options, try to first consider using several categories instead on several shops.'),
|
||||
'input' => array(
|
||||
array(
|
||||
'type' => 'text',
|
||||
@@ -90,6 +135,7 @@ class AdminShopGroupControllerCore extends AdminController
|
||||
'required' => true,
|
||||
'class' => 't',
|
||||
'is_bool' => true,
|
||||
'disabled' => ($this->display == 'edit' && ShopGroup::hasDependency($this->id_object, 'customer')) ? true : false,
|
||||
'values' => array(
|
||||
array(
|
||||
'id' => 'share_customer_on',
|
||||
@@ -102,7 +148,7 @@ class AdminShopGroupControllerCore extends AdminController
|
||||
'label' => $this->l('Disabled')
|
||||
)
|
||||
),
|
||||
'desc' => $this->l('Share customers between shops of this group')
|
||||
'desc' => $this->l('Once the option is enabled, the shops in this group will share their customers: if a customer registers on one of this group\'s shops, the account will automatically be available on the others shops of this goup. Warning: you won\'t be able to disable this option once you have customers registered on at least one shop of this group.'),
|
||||
),
|
||||
array(
|
||||
'type' => 'radio',
|
||||
@@ -132,6 +178,7 @@ class AdminShopGroupControllerCore extends AdminController
|
||||
'required' => true,
|
||||
'class' => 't',
|
||||
'is_bool' => true,
|
||||
'disabled' => ($this->display == 'edit' && ShopGroup::hasDependency($this->id_object, 'order')) ? true : false,
|
||||
'values' => array(
|
||||
array(
|
||||
'id' => 'share_order_on',
|
||||
@@ -144,8 +191,7 @@ class AdminShopGroupControllerCore extends AdminController
|
||||
'label' => $this->l('Disabled')
|
||||
)
|
||||
),
|
||||
'desc' =>
|
||||
$this->l('Share orders and carts between shops of this group (you can share orders only if you share customers and available quantities)')
|
||||
'desc' => $this->l('Once this option is enabled (which is only possible if customers and available quantities are shared among shops), the customer\'s cart will be shared among all the shops in this group. This way, any purchase started on one of the shops in this group will be able to be finished in another shop from the same shop group. Warning: you won\'t be able to disable this option once you have orders on at least one shop of this group.')
|
||||
),
|
||||
array(
|
||||
'type' => 'radio',
|
||||
@@ -188,18 +234,6 @@ class AdminShopGroupControllerCore extends AdminController
|
||||
else
|
||||
$disabled = false;
|
||||
|
||||
$import_data = array(
|
||||
'attribute_group' => $this->l('Attribute groups'),
|
||||
'attribute' => $this->l('Attributes'),
|
||||
//'customer_group' => $this->l('Customer groups'),
|
||||
'feature' => $this->l('Features'),
|
||||
'group' => $this->l('Groups'),
|
||||
'manufacturer' => $this->l('Manufacturers'),
|
||||
'supplier' => $this->l('Suppliers'),
|
||||
'tax_rules_group' => $this->l('Tax rule groups'),
|
||||
'zone' => $this->l('Zones'),
|
||||
);
|
||||
|
||||
$default_shop = new Shop(Configuration::get('PS_SHOP_DEFAULT'));
|
||||
$this->tpl_form_vars = array(
|
||||
'disabled' => $disabled,
|
||||
|
||||
@@ -34,6 +34,7 @@ class AdminShopUrlControllerCore extends AdminController
|
||||
$this->lang = false;
|
||||
$this->requiredDatabase = true;
|
||||
$this->multishop_context = Shop::CONTEXT_ALL;
|
||||
$this->id_shop = Tools::getValue('id_shop');
|
||||
|
||||
$this->context = Context::getContext();
|
||||
|
||||
@@ -51,20 +52,9 @@ class AdminShopUrlControllerCore extends AdminController
|
||||
'width' => 150,
|
||||
'filter_key' => 's!name'
|
||||
),
|
||||
'domain' => array(
|
||||
'title' => $this->l('Domain'),
|
||||
'width' => 'auto',
|
||||
'filter_key' => 'domain'
|
||||
),
|
||||
'domain_ssl' => array(
|
||||
'title' => $this->l('Domain SSL'),
|
||||
'width' => 130,
|
||||
'filter_key' => 'domain'
|
||||
),
|
||||
'uri' => array(
|
||||
'title' => $this->l('URI'),
|
||||
'width' => 200,
|
||||
'filter_key' => 'uri',
|
||||
'url' => array(
|
||||
'title' => $this->l('URL'),
|
||||
'filter_key' => 'url',
|
||||
'havingFilter' => true
|
||||
),
|
||||
'main' => array(
|
||||
@@ -86,7 +76,6 @@ class AdminShopUrlControllerCore extends AdminController
|
||||
'width' => 50,
|
||||
),
|
||||
);
|
||||
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
@@ -98,126 +87,143 @@ class AdminShopUrlControllerCore extends AdminController
|
||||
$this->addRowAction('edit');
|
||||
$this->addRowAction('delete');
|
||||
|
||||
$this->_select = 's.name AS shop_name, CONCAT(a.physical_uri, a.virtual_uri) AS uri';
|
||||
$this->_select = 's.name AS shop_name, CONCAT(\'http://\', a.domain, a.physical_uri, a.virtual_uri) AS url';
|
||||
$this->_join = 'LEFT JOIN `'._DB_PREFIX_.'shop` s ON (s.id_shop = a.id_shop)';
|
||||
|
||||
if ($id_shop = (int)Tools::getValue('id_shop'))
|
||||
$this->_where = 'AND a.id_shop = '.$id_shop;
|
||||
|
||||
return parent::renderList();
|
||||
}
|
||||
|
||||
public function renderForm()
|
||||
{
|
||||
$this->multiple_fieldsets = true;
|
||||
$this->fields_form = array(
|
||||
'legend' => array(
|
||||
'title' => $this->l('Shop URL')
|
||||
array(
|
||||
'form' => array(
|
||||
'legend' => array(
|
||||
'title' => $this->l('URL options')
|
||||
),
|
||||
'input' => array(
|
||||
array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Shop:'),
|
||||
'name' => 'id_shop',
|
||||
'onchange' => 'checkMainUrlInfo(this.value);',
|
||||
'options' => array(
|
||||
'optiongroup' => array (
|
||||
'query' => Shop::getTree(),
|
||||
'label' => 'name'
|
||||
),
|
||||
'options' => array (
|
||||
'query' => 'shops',
|
||||
'id' => 'id_shop',
|
||||
'name' => 'name'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'type' => 'radio',
|
||||
'label' => $this->l('Main URL:'),
|
||||
'name' => 'main',
|
||||
'class' => 't',
|
||||
'values' => array(
|
||||
array(
|
||||
'id' => 'main_on',
|
||||
'value' => 1,
|
||||
'label' => '<img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" />'
|
||||
),
|
||||
array(
|
||||
'id' => 'main_off',
|
||||
'value' => 0,
|
||||
'label' => '<img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" />'
|
||||
)
|
||||
),
|
||||
'desc' => array(
|
||||
$this->l('If you set this URL as the Main URL for the selected shop, all URLs set to this shop will be redirected to this URL (you can only have one Main URL per shop).'),
|
||||
array(
|
||||
'text' => $this->l('Since the selected shop has no Main URL, you have to set this URL as the Main URL'),
|
||||
'id' => 'mainUrlInfo'
|
||||
),
|
||||
array(
|
||||
'text' => $this->l('The selected shop has already a Main URL, if you set this one as the Main URL, the older one will be set as the Normal URL.'),
|
||||
'id' => 'mainUrlInfoExplain'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'type' => 'radio',
|
||||
'label' => $this->l('Status:'),
|
||||
'name' => 'active',
|
||||
'required' => false,
|
||||
'class' => 't',
|
||||
'values' => array(
|
||||
array(
|
||||
'id' => 'active_on',
|
||||
'value' => 1,
|
||||
'label' => '<img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" />'
|
||||
),
|
||||
array(
|
||||
'id' => 'active_off',
|
||||
'value' => 0,
|
||||
'label' => '<img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" />'
|
||||
)
|
||||
),
|
||||
'desc' => $this->l('Enabled or disabled')
|
||||
)
|
||||
),
|
||||
'submit' => array(
|
||||
'title' => $this->l('Save'),
|
||||
'class' => 'button'
|
||||
),
|
||||
),
|
||||
),
|
||||
'input' => array(
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Domain:'),
|
||||
'name' => 'domain',
|
||||
'size' => 50,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Domain SSL:'),
|
||||
'name' => 'domain_ssl',
|
||||
'size' => 50,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Physical URI:'),
|
||||
'name' => 'physical_uri',
|
||||
'desc' => $this->l('Physical folder of your store on your server. Leave this field empty if your store is installed on the root path (e.g. if your store is available at www.my-prestashop.com/my-store/, you would set my-store/ in this field).'),
|
||||
'size' => 50,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Virtual URI:'),
|
||||
'name' => 'virtual_uri',
|
||||
'desc' => array(
|
||||
$this->l('You can use this option if you want to create a store with an URI that doesn\'t exist on your server (e.g. if you want your store to be available with the URL www.my-prestashop.com/my-store/shoes/, you have to set shoes/ in this field, assuming that my-store/ is your Physical URI).'),
|
||||
'<strong>'.$this->l('URL rewriting must be activated on your server to use this feature.').'</strong>'
|
||||
array(
|
||||
'form' => array(
|
||||
'legend' => array(
|
||||
'title' => $this->l('Shop URL')
|
||||
),
|
||||
'size' => 50,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Your final URL will be:'),
|
||||
'name' => 'final_url',
|
||||
'size' => 76,
|
||||
'readonly' => true
|
||||
),
|
||||
array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Shop:'),
|
||||
'name' => 'id_shop',
|
||||
'onchange' => 'checkMainUrlInfo(this.value);',
|
||||
'options' => array(
|
||||
'optiongroup' => array (
|
||||
'query' => Shop::getTree(),
|
||||
'label' => 'name'
|
||||
),
|
||||
'options' => array (
|
||||
'query' => 'shops',
|
||||
'id' => 'id_shop',
|
||||
'name' => 'name'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'type' => 'radio',
|
||||
'label' => $this->l('Main URL:'),
|
||||
'name' => 'main',
|
||||
'class' => 't',
|
||||
'values' => array(
|
||||
'input' => array(
|
||||
array(
|
||||
'id' => 'main_on',
|
||||
'value' => 1,
|
||||
'label' => '<img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" />'
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Domain:'),
|
||||
'name' => 'domain',
|
||||
'size' => 50,
|
||||
),
|
||||
array(
|
||||
'id' => 'main_off',
|
||||
'value' => 0,
|
||||
'label' => '<img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" />'
|
||||
)
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Domain SSL:'),
|
||||
'name' => 'domain_ssl',
|
||||
'size' => 50,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Physical URI:'),
|
||||
'name' => 'physical_uri',
|
||||
'desc' => $this->l('Physical folder of your store on your server. Leave this field empty if your store is installed on the root path (e.g. if your store is available at www.my-prestashop.com/my-store/, you would set my-store/ in this field).'),
|
||||
'size' => 50,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Virtual URI:'),
|
||||
'name' => 'virtual_uri',
|
||||
'desc' => array(
|
||||
$this->l('You can use this option if you want to create a store with an URI that doesn\'t exist on your server (e.g. if you want your store to be available with the URL www.my-prestashop.com/my-store/shoes/, you have to set shoes/ in this field, assuming that my-store/ is your Physical URI).'),
|
||||
'<strong>'.$this->l('URL rewriting must be activated on your server to use this feature.').'</strong>'
|
||||
),
|
||||
'size' => 50,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Your final URL will be:'),
|
||||
'name' => 'final_url',
|
||||
'size' => 76,
|
||||
'readonly' => true
|
||||
),
|
||||
),
|
||||
'desc' => array(
|
||||
$this->l('If you set this URL as the Main URL for the selected shop, all URLs set to this shop will be redirected to this URL (you can only have one Main URL per shop).'),
|
||||
array(
|
||||
'text' => $this->l('Since the selected shop has no Main URL, you have to set this URL as the Main URL'),
|
||||
'id' => 'mainUrlInfo'
|
||||
),
|
||||
array(
|
||||
'text' => $this->l('The selected shop has already a Main URL, if you set this one as the Main URL, the older one will be set as the Normal URL.'),
|
||||
'id' => 'mainUrlInfoExplain'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'type' => 'radio',
|
||||
'label' => $this->l('Status:'),
|
||||
'name' => 'active',
|
||||
'required' => false,
|
||||
'class' => 't',
|
||||
'values' => array(
|
||||
array(
|
||||
'id' => 'active_on',
|
||||
'value' => 1,
|
||||
'label' => '<img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" />'
|
||||
),
|
||||
array(
|
||||
'id' => 'active_off',
|
||||
'value' => 0,
|
||||
'label' => '<img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" />'
|
||||
)
|
||||
),
|
||||
'desc' => $this->l('Enabled or disabled')
|
||||
)
|
||||
),
|
||||
'submit' => array(
|
||||
'title' => $this->l('Save'),
|
||||
'class' => 'button'
|
||||
)
|
||||
);
|
||||
|
||||
if (!($obj = $this->loadObject(true)))
|
||||
@@ -242,10 +248,61 @@ class AdminShopUrlControllerCore extends AdminController
|
||||
return parent::renderForm();
|
||||
}
|
||||
|
||||
public function initToolbar()
|
||||
{
|
||||
if ($this->id_object)
|
||||
$this->loadObject();
|
||||
|
||||
if (!$this->id_shop && $this->object && $this->object->id_shop)
|
||||
$this->id_shop = $this->object->id_shop;
|
||||
|
||||
if (!$this->display && $this->id_shop)
|
||||
$this->toolbar_btn['edit'] = array(
|
||||
'desc' => $this->l('Edit this shop'),
|
||||
'href' => $this->context->link->getAdminLink('AdminShop').'&updateshop&id_shop='.$this->id_shop,
|
||||
);
|
||||
|
||||
parent::initToolbar();
|
||||
|
||||
$this->show_toolbar = false;
|
||||
if (isset($this->toolbar_btn['new']))
|
||||
$this->toolbar_btn['new'] = array(
|
||||
'desc' => $this->l('Add new url'),
|
||||
'href' => $this->context->link->getAdminLink('AdminShopUrl').'&add'.$this->table.'&id_shop='.$this->id_shop,
|
||||
);
|
||||
|
||||
if (isset($this->toolbar_btn['back']))
|
||||
$this->toolbar_btn['back']['href'] .= '&id_shop='.$this->id_shop;
|
||||
}
|
||||
|
||||
public function initContent()
|
||||
{
|
||||
$this->list_simple_header = true;
|
||||
parent::initContent();
|
||||
|
||||
$this->addJqueryPlugin('cookie');
|
||||
$this->addJqueryPlugin('jstree');
|
||||
$this->addCSS(_PS_JS_DIR_.'jquery/plugins/jstree/themes/classic/style.css');
|
||||
|
||||
if (!$this->display && $this->id_shop)
|
||||
{
|
||||
$shop = new Shop($this->id_shop);
|
||||
$this->toolbar_title[] = $shop->name;
|
||||
}
|
||||
|
||||
$this->context->smarty->assign(array(
|
||||
'toolbar_scroll' => 1,
|
||||
'toolbar_btn' => $this->toolbar_btn,
|
||||
'title' => $this->toolbar_title,
|
||||
'selected_tree_id' => ($this->display == 'edit' ? 'tree-url-'.$this->id_object : (Tools::getValue('id_shop') ? 'tree-shop-'.Tools::getValue('id_shop') : '')),
|
||||
));
|
||||
}
|
||||
|
||||
public function postProcess()
|
||||
{
|
||||
$token = Tools::getValue('token') ? Tools::getValue('token') : $this->token;
|
||||
|
||||
$result = true;
|
||||
if ((isset($_GET['status'.$this->table]) || isset($_GET['status'])) && Tools::getValue($this->identifier))
|
||||
{
|
||||
if ($this->tabAccess['edit'] === '1')
|
||||
@@ -265,15 +322,13 @@ class AdminShopUrlControllerCore extends AdminController
|
||||
else
|
||||
$this->errors[] = Tools::displayError('You do not have permission to edit here.');
|
||||
}
|
||||
else if (Tools::isSubmit('submitAdd'.$this->table) && $this->tabAccess['add'] === '1')
|
||||
{
|
||||
if (ShopUrl::urlExists(Tools::getValue('domain'), Tools::getValue('physical_uri'), Tools::getValue('virtual_uri'), Tools::getValue('id_shop')))
|
||||
$this->errors[] = Tools::displayError('Virtual URI already used.');
|
||||
else
|
||||
return parent::postProcess();
|
||||
}
|
||||
else
|
||||
return parent::postProcess();
|
||||
$result = parent::postProcess();
|
||||
|
||||
if ($this->redirect_after)
|
||||
$this->redirect_after .= '&id_shop='.$this->id_shop;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function processSave()
|
||||
|
||||
@@ -551,7 +551,7 @@ class AdminThemesControllerCore extends AdminController
|
||||
$this->uploadIco('PS_FAVICON', _PS_IMG_DIR_.'favicon.ico');
|
||||
if ($this->uploadIco('PS_FAVICON', _PS_IMG_DIR_.'favicon-'.(int)$id_shop.'.ico'))
|
||||
Configuration::updateValue('PS_FAVICON', 'favicon-'.(int)$id_shop.'.ico');
|
||||
|
||||
|
||||
Configuration::updateGlobalValue('PS_FAVICON', 'favicon.ico');
|
||||
}
|
||||
|
||||
|
||||
@@ -1757,7 +1757,7 @@ a.action_module_delete {
|
||||
border: 1px dotted #000000;
|
||||
}
|
||||
|
||||
fieldset .optionsDescription{
|
||||
fieldset .optionsDescription, fieldset p.description, .info{
|
||||
background: url("../img/admin/icon-info.png") no-repeat scroll 6px 6px #BDE5F8;
|
||||
border: 1px solid #00529B;
|
||||
color: #00529B;
|
||||
@@ -2291,3 +2291,54 @@ margin-bottom:7px;
|
||||
#block_partner_tips {float:right; width:48.1%}
|
||||
.row-news { width:100%;float:left;}
|
||||
#table_info_news { border:1px solid #ccc;}
|
||||
|
||||
#multishop-tree{
|
||||
|
||||
}
|
||||
|
||||
.multishop-left{
|
||||
float: left;
|
||||
width: 250px;
|
||||
border: 1px solid #CCCED7;
|
||||
background-color: #F9F9F9;
|
||||
overflow: auto;
|
||||
padding: 3px;
|
||||
max-height: 400px;
|
||||
min-height: 200px;
|
||||
border-radius:3px;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
}
|
||||
|
||||
.multishop-left .multishop-title{
|
||||
border-bottom: 1px solid #CCCED7;
|
||||
color: #333333;
|
||||
background-color: #F0F0F0;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
padding: 2px;
|
||||
width: 247px;
|
||||
}
|
||||
|
||||
.multishop-right{
|
||||
margin-left: 270px;
|
||||
}
|
||||
|
||||
#container-multishop {
|
||||
background-color:#EBEDF4;
|
||||
border:1px solid #CCCED7;
|
||||
color: #585A69;
|
||||
padding:10px;
|
||||
}
|
||||
|
||||
#multishop-tree{
|
||||
font-size: 13px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
#multishop-tree a.selected{
|
||||
background-color: #49B2FF;
|
||||
padding: 3px;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
@@ -24,6 +24,12 @@
|
||||
<tab id="Login" id_parent="-1" active="1">
|
||||
<class_name>AdminLogin</class_name>
|
||||
</tab>
|
||||
<tab id="Shops" id_parent="-1" active="1">
|
||||
<class_name>AdminShop</class_name>
|
||||
</tab>
|
||||
<tab id="Shop_Urls" id_parent="-1" active="1">
|
||||
<class_name>AdminShopUrl</class_name>
|
||||
</tab>
|
||||
<tab id="Catalog" id_parent="" active="1">
|
||||
<class_name>AdminCatalog</class_name>
|
||||
</tab>
|
||||
@@ -57,9 +63,6 @@
|
||||
<tab id="Stats" id_parent="" active="1">
|
||||
<class_name>AdminParentStats</class_name>
|
||||
</tab>
|
||||
<tab id="Shops" id_parent="" active="1">
|
||||
<class_name>AdminParentShop</class_name>
|
||||
</tab>
|
||||
<tab id="Stock" id_parent="" active="1">
|
||||
<class_name>AdminStock</class_name>
|
||||
</tab>
|
||||
@@ -240,6 +243,9 @@
|
||||
<tab id="E-mail" id_parent="Advanced_parameters" active="1">
|
||||
<class_name>AdminEmails</class_name>
|
||||
</tab>
|
||||
<tab id="Multi-shop" id_parent="Advanced_parameters" active="0">
|
||||
<class_name>AdminShopGroup</class_name>
|
||||
</tab>
|
||||
<tab id="CSV_Import" id_parent="Advanced_parameters" active="1">
|
||||
<class_name>AdminImport</class_name>
|
||||
</tab>
|
||||
@@ -291,15 +297,6 @@
|
||||
<tab id="Accounting_export" id_parent="Stats" active="1">
|
||||
<class_name>AdminAccountingExport</class_name>
|
||||
</tab>
|
||||
<tab id="Shops_1" id_parent="Shops" active="1">
|
||||
<class_name>AdminShop</class_name>
|
||||
</tab>
|
||||
<tab id="Group_Shops" id_parent="Shops" active="1">
|
||||
<class_name>AdminShopGroup</class_name>
|
||||
</tab>
|
||||
<tab id="Shop_Urls" id_parent="Shops" active="1">
|
||||
<class_name>AdminShopUrl</class_name>
|
||||
</tab>
|
||||
<tab id="Warehouses" id_parent="Stock" active="1">
|
||||
<class_name>AdminWarehouses</class_name>
|
||||
</tab>
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
<tab id="Combinations_generator" name="Combinations generator"/>
|
||||
<tab id="Search" name="Suche"/>
|
||||
<tab id="Login" name="Login"/>
|
||||
<tab id="Shops" name="Shops"/>
|
||||
<tab id="Shop_Urls" name="Shop Urls"/>
|
||||
<tab id="Catalog" name="Katalog"/>
|
||||
<tab id="Orders" name="Bestellungen"/>
|
||||
<tab id="Customers" name="Kunden"/>
|
||||
@@ -17,7 +19,6 @@
|
||||
<tab id="Advanced_parameters" name="Advanced parameters"/>
|
||||
<tab id="Administration" name="Administration"/>
|
||||
<tab id="Stats" name="Statistik"/>
|
||||
<tab id="Shops" name="Shops"/>
|
||||
<tab id="Stock" name="Stock"/>
|
||||
<tab id="Products" name="Products"/>
|
||||
<tab id="Categories" name="Categories"/>
|
||||
@@ -78,6 +79,7 @@
|
||||
<tab id="Configuration_Information" name="Konfigurationsinformationen"/>
|
||||
<tab id="Performance" name="Leistung"/>
|
||||
<tab id="E-mail" name="E-Mail"/>
|
||||
<tab id="Multi-shop" name="Multi-shop"/>
|
||||
<tab id="CSV_Import" name="Import"/>
|
||||
<tab id="DB_Backup" name="DB-Backup"/>
|
||||
<tab id="SQL_Manager" name="SQL Manager"/>
|
||||
@@ -95,9 +97,6 @@
|
||||
<tab id="Search_Engines" name="Suchmaschinen"/>
|
||||
<tab id="Referrers" name="Referrer"/>
|
||||
<tab id="Accounting_export" name="Accounting export"/>
|
||||
<tab id="Shops_1" name="Shops"/>
|
||||
<tab id="Group_Shops" name="Group Shops"/>
|
||||
<tab id="Shop_Urls" name="Shop Urls"/>
|
||||
<tab id="Warehouses" name="Warehouses"/>
|
||||
<tab id="Stock_Management" name="Stock Management"/>
|
||||
<tab id="Stock_Movement" name="Lagerbewegungen"/>
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
<tab id="Combinations_generator" name="Combinations generator"/>
|
||||
<tab id="Search" name="Search"/>
|
||||
<tab id="Login" name="Login"/>
|
||||
<tab id="Shops" name="Shops"/>
|
||||
<tab id="Shop_Urls" name="Shop Urls"/>
|
||||
<tab id="Catalog" name="Catalog"/>
|
||||
<tab id="Orders" name="Orders"/>
|
||||
<tab id="Customers" name="Customers"/>
|
||||
@@ -17,7 +19,6 @@
|
||||
<tab id="Advanced_parameters" name="Advanced parameters"/>
|
||||
<tab id="Administration" name="Administration"/>
|
||||
<tab id="Stats" name="Stats"/>
|
||||
<tab id="Shops" name="Shops"/>
|
||||
<tab id="Stock" name="Stock"/>
|
||||
<tab id="Products" name="Products"/>
|
||||
<tab id="Categories" name="Categories"/>
|
||||
@@ -78,6 +79,7 @@
|
||||
<tab id="Configuration_Information" name="Configuration Information"/>
|
||||
<tab id="Performance" name="Performance"/>
|
||||
<tab id="E-mail" name="E-mail"/>
|
||||
<tab id="Multi-shop" name="Multi-shop"/>
|
||||
<tab id="CSV_Import" name="CSV Import"/>
|
||||
<tab id="DB_Backup" name="DB Backup"/>
|
||||
<tab id="SQL_Manager" name="SQL Manager"/>
|
||||
@@ -95,9 +97,6 @@
|
||||
<tab id="Search_Engines" name="Search Engines"/>
|
||||
<tab id="Referrers" name="Referrers"/>
|
||||
<tab id="Accounting_export" name="Accounting export"/>
|
||||
<tab id="Shops_1" name="Shops"/>
|
||||
<tab id="Group_Shops" name="Group Shops"/>
|
||||
<tab id="Shop_Urls" name="Shop Urls"/>
|
||||
<tab id="Warehouses" name="Warehouses"/>
|
||||
<tab id="Stock_Management" name="Stock Management"/>
|
||||
<tab id="Stock_Movement" name="Stock Movement"/>
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
<tab id="Combinations_generator" name="Combinations generator"/>
|
||||
<tab id="Search" name="Búsqueda"/>
|
||||
<tab id="Login" name="Login"/>
|
||||
<tab id="Shops" name="Shops"/>
|
||||
<tab id="Shop_Urls" name="Shop Urls"/>
|
||||
<tab id="Catalog" name="Catálogo"/>
|
||||
<tab id="Orders" name="Pedidos"/>
|
||||
<tab id="Customers" name="Clientes"/>
|
||||
@@ -17,7 +19,6 @@
|
||||
<tab id="Advanced_parameters" name="Advanced parameters"/>
|
||||
<tab id="Administration" name="Administration"/>
|
||||
<tab id="Stats" name="Estadísticas"/>
|
||||
<tab id="Shops" name="Shops"/>
|
||||
<tab id="Stock" name="Stock"/>
|
||||
<tab id="Products" name="Products"/>
|
||||
<tab id="Categories" name="Categories"/>
|
||||
@@ -78,6 +79,7 @@
|
||||
<tab id="Configuration_Information" name="Informaciones"/>
|
||||
<tab id="Performance" name="Rendimiento"/>
|
||||
<tab id="E-mail" name="Emails"/>
|
||||
<tab id="Multi-shop" name="Multi-shop"/>
|
||||
<tab id="CSV_Import" name="Importar"/>
|
||||
<tab id="DB_Backup" name="Copia de seguridad"/>
|
||||
<tab id="SQL_Manager" name="SQL Manager"/>
|
||||
@@ -95,9 +97,6 @@
|
||||
<tab id="Search_Engines" name="Motores de búsqueda"/>
|
||||
<tab id="Referrers" name="Referido"/>
|
||||
<tab id="Accounting_export" name="Accounting export"/>
|
||||
<tab id="Shops_1" name="Shops"/>
|
||||
<tab id="Group_Shops" name="Group Shops"/>
|
||||
<tab id="Shop_Urls" name="Shop Urls"/>
|
||||
<tab id="Warehouses" name="Warehouses"/>
|
||||
<tab id="Stock_Management" name="Stock Management"/>
|
||||
<tab id="Stock_Movement" name="Movimiento de Stock"/>
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
<tab id="Combinations_generator" name="Générateur de déclinaisons"/>
|
||||
<tab id="Search" name="Recherche"/>
|
||||
<tab id="Login" name="Connexion"/>
|
||||
<tab id="Shops" name="Boutiques"/>
|
||||
<tab id="Shop_Urls" name="URLs de boutique"/>
|
||||
<tab id="Catalog" name="Catalogue"/>
|
||||
<tab id="Orders" name="Commandes"/>
|
||||
<tab id="Customers" name="Clients"/>
|
||||
@@ -17,7 +19,6 @@
|
||||
<tab id="Advanced_parameters" name="Paramètres avancés"/>
|
||||
<tab id="Administration" name="Administration"/>
|
||||
<tab id="Stats" name="Stats"/>
|
||||
<tab id="Shops" name="Boutiques"/>
|
||||
<tab id="Stock" name="Stock"/>
|
||||
<tab id="Products" name="Produits"/>
|
||||
<tab id="Categories" name="Catégories"/>
|
||||
@@ -78,6 +79,7 @@
|
||||
<tab id="Configuration_Information" name="Informations"/>
|
||||
<tab id="Performance" name="Performances"/>
|
||||
<tab id="E-mail" name="Emails"/>
|
||||
<tab id="Multi-shop" name="Multi-boutique"/>
|
||||
<tab id="CSV_Import" name="Import"/>
|
||||
<tab id="DB_Backup" name="Sauvegarde BDD"/>
|
||||
<tab id="SQL_Manager" name="SQL Manager"/>
|
||||
@@ -95,9 +97,6 @@
|
||||
<tab id="Search_Engines" name="Moteurs de recherche"/>
|
||||
<tab id="Referrers" name="Sites affluents"/>
|
||||
<tab id="Accounting_export" name="Export comptable"/>
|
||||
<tab id="Shops_1" name="Boutiques"/>
|
||||
<tab id="Group_Shops" name="Groupes de boutique"/>
|
||||
<tab id="Shop_Urls" name="URLs de boutique"/>
|
||||
<tab id="Warehouses" name="Entrepôts"/>
|
||||
<tab id="Stock_Management" name="Gestion du stock"/>
|
||||
<tab id="Stock_Movement" name="Mouvements de Stock"/>
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
<tab id="Combinations_generator" name="Combinations generator"/>
|
||||
<tab id="Search" name="Cerca"/>
|
||||
<tab id="Login" name="Login"/>
|
||||
<tab id="Shops" name="Shops"/>
|
||||
<tab id="Shop_Urls" name="Shop Urls"/>
|
||||
<tab id="Catalog" name="Catalogo"/>
|
||||
<tab id="Orders" name="Ordini"/>
|
||||
<tab id="Customers" name="Clienti"/>
|
||||
@@ -17,7 +19,6 @@
|
||||
<tab id="Advanced_parameters" name="Advanced parameters"/>
|
||||
<tab id="Administration" name="Administration"/>
|
||||
<tab id="Stats" name="Stat"/>
|
||||
<tab id="Shops" name="Shops"/>
|
||||
<tab id="Stock" name="Stock"/>
|
||||
<tab id="Products" name="Products"/>
|
||||
<tab id="Categories" name="Categories"/>
|
||||
@@ -78,6 +79,7 @@
|
||||
<tab id="Configuration_Information" name="Informazioni di configurazione"/>
|
||||
<tab id="Performance" name="Performance"/>
|
||||
<tab id="E-mail" name="E-mail"/>
|
||||
<tab id="Multi-shop" name="Multi-shop"/>
|
||||
<tab id="CSV_Import" name="Importa"/>
|
||||
<tab id="DB_Backup" name="DB backup"/>
|
||||
<tab id="SQL_Manager" name="SQL Manager"/>
|
||||
@@ -95,9 +97,6 @@
|
||||
<tab id="Search_Engines" name="Motori di ricerca"/>
|
||||
<tab id="Referrers" name="Referenti"/>
|
||||
<tab id="Accounting_export" name="Accounting export"/>
|
||||
<tab id="Shops_1" name="Shops"/>
|
||||
<tab id="Group_Shops" name="Group Shops"/>
|
||||
<tab id="Shop_Urls" name="Shop Urls"/>
|
||||
<tab id="Warehouses" name="Warehouses"/>
|
||||
<tab id="Stock_Management" name="Stock Management"/>
|
||||
<tab id="Stock_Movement" name="Movimenti magazzino"/>
|
||||
|
||||
@@ -593,6 +593,7 @@ class InstallModelInstall extends InstallAbstractModel
|
||||
continue;
|
||||
|
||||
$module = Module::getInstanceByName($module_name);
|
||||
$module->uninstall();
|
||||
if (!$module->install())
|
||||
$errors[] = $this->language->l('Cannot install module "%s"', $module_name);
|
||||
}
|
||||
|
||||
@@ -606,11 +606,11 @@ function submitAddcmsAndPreview()
|
||||
|
||||
function checkAllMultishopDefaultValue(item)
|
||||
{
|
||||
$(item).parent().find('input[name^=\'configUseDefault\']').each(function(k, v)
|
||||
$(item).parent().find('input[name^=\'multishopOverrideOption\']').each(function(k, v)
|
||||
{
|
||||
$(v).attr('checked', item.checked);
|
||||
var name = $(v).attr('name');
|
||||
checkMultishopDefaultValue(v, name.substr(17, name.length - 18));
|
||||
checkMultishopDefaultValue(v, name.substr(24, name.length - 25));
|
||||
})
|
||||
}
|
||||
|
||||
@@ -692,7 +692,7 @@ $(document).ready(function()
|
||||
{
|
||||
var key = $(v).attr('name');
|
||||
var len = key.length;
|
||||
checkMultishopDefaultValue(v, key.substr(17, len - 18));
|
||||
checkMultishopDefaultValue(v, key.substr(24, len - 25));
|
||||
});
|
||||
|
||||
$(".copy2friendlyUrl").live('keyup change',function(e){
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/*!
|
||||
* jQuery Cookie Plugin
|
||||
* https://github.com/carhartl/jquery-cookie
|
||||
*
|
||||
* Copyright 2011, Klaus Hartl
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.opensource.org/licenses/GPL-2.0
|
||||
*/
|
||||
(function($) {
|
||||
$.cookie = function(key, value, options) {
|
||||
|
||||
// key and at least value given, set cookie...
|
||||
if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
|
||||
options = $.extend({}, options);
|
||||
|
||||
if (value === null || value === undefined) {
|
||||
options.expires = -1;
|
||||
}
|
||||
|
||||
if (typeof options.expires === 'number') {
|
||||
var days = options.expires, t = options.expires = new Date();
|
||||
t.setDate(t.getDate() + days);
|
||||
}
|
||||
|
||||
value = String(value);
|
||||
|
||||
return (document.cookie = [
|
||||
encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
|
||||
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
||||
options.path ? '; path=' + options.path : '',
|
||||
options.domain ? '; domain=' + options.domain : '',
|
||||
options.secure ? '; secure' : ''
|
||||
].join(''));
|
||||
}
|
||||
|
||||
// key and possibly options given, get cookie...
|
||||
options = value || {};
|
||||
var decode = options.raw ? function(s) { return s; } : decodeURIComponent;
|
||||
|
||||
var pairs = document.cookie.split('; ');
|
||||
for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) {
|
||||
if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
|
||||
}
|
||||
return null;
|
||||
};
|
||||
})(jQuery);
|
||||
|
After Width: | Height: | Size: 331 B |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 43 B |
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* jsTree apple theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-apple > ul { background:url("bg.jpg") left top repeat; }
|
||||
.jstree-apple li,
|
||||
.jstree-apple ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-apple li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-apple li.jstree-last { background:transparent; }
|
||||
.jstree-apple .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-apple .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-apple .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-apple a { border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; text-shadow:1px 1px 1px white; }
|
||||
.jstree-apple .jstree-hovered { background:#e7f4f9; border:1px solid #d8f0fa; padding:0 3px 0 1px; text-shadow:1px 1px 1px silver; }
|
||||
.jstree-apple .jstree-clicked { background:#beebff; border:1px solid #99defd; padding:0 3px 0 1px; }
|
||||
.jstree-apple a .jstree-icon { background-position:-56px -20px; }
|
||||
.jstree-apple a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-apple.jstree-focused { background:white; }
|
||||
|
||||
.jstree-apple .jstree-no-dots li,
|
||||
.jstree-apple .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-apple .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-apple .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-apple .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-apple .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-apple .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-apple .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-apple .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-apple .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-apple .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-apple .jstree-checked > a > .checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-apple .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-apple .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-apple ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-apple .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-apple .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-apple { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-apple a.jstree-search { color:aqua; }
|
||||
.jstree-apple .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-apple-context,
|
||||
#vakata-contextmenu.jstree-apple-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-apple-context li { }
|
||||
#vakata-contextmenu.jstree-apple-context a { color:black; }
|
||||
#vakata-contextmenu.jstree-apple-context a:hover,
|
||||
#vakata-contextmenu.jstree-apple-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-apple-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-apple-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-apple-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-apple-context li ul { margin-left:-4px; }
|
||||
|
||||
/* TODO: IE6 support - the `>` selectors */
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 43 B |
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* jsTree classic theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-classic li,
|
||||
.jstree-classic ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-classic li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-classic li.jstree-last { background:transparent; }
|
||||
.jstree-classic .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-classic .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-classic .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-classic .jstree-hovered { background:#e7f4f9; border:1px solid #e7f4f9; padding:0 2px 0 1px; }
|
||||
.jstree-classic .jstree-clicked { background:navy; border:1px solid navy; padding:0 2px 0 1px; color:white; }
|
||||
.jstree-classic a .jstree-icon { background-position:-56px -19px; }
|
||||
.jstree-classic .jstree-open > a .jstree-icon { background-position:-56px -36px; }
|
||||
.jstree-classic a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-classic.jstree-focused { background:white; }
|
||||
|
||||
.jstree-classic .jstree-no-dots li,
|
||||
.jstree-classic .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-classic .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-classic .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-classic .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-classic .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-classic .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-classic .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-classic .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-classic .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-classic .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-classic .jstree-checked > a > .jstree-checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-classic .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-classic .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-classic ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-classic .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-classic .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-classic { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-classic a.jstree-search { color:aqua; }
|
||||
.jstree-classic .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-classic-context,
|
||||
#vakata-contextmenu.jstree-classic-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-classic-context li { }
|
||||
#vakata-contextmenu.jstree-classic-context a { color:black; }
|
||||
#vakata-contextmenu.jstree-classic-context a:hover,
|
||||
#vakata-contextmenu.jstree-classic-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-classic-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-classic-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-classic-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-classic-context li ul { margin-left:-4px; }
|
||||
|
||||
/* IE6 BEGIN */
|
||||
.jstree-classic li,
|
||||
.jstree-classic ins,
|
||||
#vakata-dragged.jstree-classic .jstree-invalid,
|
||||
#vakata-dragged.jstree-classic .jstree-ok,
|
||||
#jstree-marker.jstree-classic { _background-image:url("d.gif"); }
|
||||
.jstree-classic .jstree-open ins { _background-position:-72px 0; }
|
||||
.jstree-classic .jstree-closed ins { _background-position:-54px 0; }
|
||||
.jstree-classic .jstree-leaf ins { _background-position:-36px 0; }
|
||||
.jstree-classic .jstree-open a ins.jstree-icon { _background-position:-56px -36px; }
|
||||
.jstree-classic .jstree-closed a ins.jstree-icon { _background-position:-56px -19px; }
|
||||
.jstree-classic .jstree-leaf a ins.jstree-icon { _background-position:-56px -19px; }
|
||||
#vakata-contextmenu.jstree-classic-context ins { _display:none; }
|
||||
#vakata-contextmenu.jstree-classic-context li { _zoom:1; }
|
||||
.jstree-classic .jstree-undetermined a .jstree-checkbox { _background-position:-20px -19px; }
|
||||
.jstree-classic .jstree-checked a .jstree-checkbox { _background-position:-38px -19px; }
|
||||
.jstree-classic .jstree-unchecked a .jstree-checkbox { _background-position:-2px -19px; }
|
||||
/* IE6 END */
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 132 B |
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* jsTree default-rtl theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-default-rtl li,
|
||||
.jstree-default-rtl ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-default-rtl li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-default-rtl li.jstree-last { background:transparent; }
|
||||
.jstree-default-rtl .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-default-rtl .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-default-rtl .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-default-rtl .jstree-hovered { background:#e7f4f9; border:1px solid #d8f0fa; padding:0 2px 0 1px; }
|
||||
.jstree-default-rtl .jstree-clicked { background:#beebff; border:1px solid #99defd; padding:0 2px 0 1px; }
|
||||
.jstree-default-rtl a .jstree-icon { background-position:-56px -19px; }
|
||||
.jstree-default-rtl a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-default-rtl.jstree-focused { background:#ffffee; }
|
||||
|
||||
.jstree-default-rtl .jstree-no-dots li,
|
||||
.jstree-default-rtl .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-default-rtl .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-default-rtl .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-default-rtl .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-default-rtl .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-default-rtl .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-default-rtl .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-default-rtl .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-default-rtl .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-default-rtl .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-default-rtl .jstree-checked > a > .jstree-checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-default-rtl .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-default-rtl .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-default-rtl ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-default-rtl .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-default-rtl .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-default-rtl { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-default-rtl a.jstree-search { color:aqua; }
|
||||
.jstree-default-rtl .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-default-rtl-context,
|
||||
#vakata-contextmenu.jstree-default-rtl-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li { }
|
||||
#vakata-contextmenu.jstree-default-rtl-context a { color:black; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context a:hover,
|
||||
#vakata-contextmenu.jstree-default-rtl-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-default-rtl-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li ul { margin-left:-4px; }
|
||||
|
||||
/* IE6 BEGIN */
|
||||
.jstree-default-rtl li,
|
||||
.jstree-default-rtl ins,
|
||||
#vakata-dragged.jstree-default-rtl .jstree-invalid,
|
||||
#vakata-dragged.jstree-default-rtl .jstree-ok,
|
||||
#jstree-marker.jstree-default-rtl { _background-image:url("d.gif"); }
|
||||
.jstree-default-rtl .jstree-open ins { _background-position:-72px 0; }
|
||||
.jstree-default-rtl .jstree-closed ins { _background-position:-54px 0; }
|
||||
.jstree-default-rtl .jstree-leaf ins { _background-position:-36px 0; }
|
||||
.jstree-default-rtl a ins.jstree-icon { _background-position:-56px -19px; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context ins { _display:none; }
|
||||
#vakata-contextmenu.jstree-default-rtl-context li { _zoom:1; }
|
||||
.jstree-default-rtl .jstree-undetermined a .jstree-checkbox { _background-position:-18px -19px; }
|
||||
.jstree-default-rtl .jstree-checked a .jstree-checkbox { _background-position:-36px -19px; }
|
||||
.jstree-default-rtl .jstree-unchecked a .jstree-checkbox { _background-position:0px -19px; }
|
||||
/* IE6 END */
|
||||
|
||||
/* RTL part */
|
||||
.jstree-default-rtl .jstree-hovered, .jstree-default-rtl .jstree-clicked { padding:0 1px 0 2px; }
|
||||
.jstree-default-rtl li { background-image:url("dots.gif"); background-position: 100% 0px; }
|
||||
.jstree-default-rtl .jstree-checked > a > .jstree-checkbox { background-position:-36px -19px; margin-left:2px; }
|
||||
.jstree-default-rtl .jstree-unchecked > a > .jstree-checkbox { background-position:0px -19px; margin-left:2px; }
|
||||
.jstree-default-rtl .jstree-undetermined > a > .jstree-checkbox { background-position:-18px -19px; margin-left:2px; }
|
||||
.jstree-default-rtl .jstree-checked > a > .jstree-checkbox:hover { background-position:-36px -37px; }
|
||||
.jstree-default-rtl .jstree-unchecked > a > .jstree-checkbox:hover { background-position:0px -37px; }
|
||||
.jstree-default-rtl .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-18px -37px; }
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* jsTree default theme 1.0
|
||||
* Supported features: dots/no-dots, icons/no-icons, focused, loading
|
||||
* Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
|
||||
*/
|
||||
|
||||
.jstree-default li,
|
||||
.jstree-default ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
|
||||
.jstree-default li { background-position:-90px 0; background-repeat:repeat-y; }
|
||||
.jstree-default li.jstree-last { background:transparent; }
|
||||
.jstree-default .jstree-open > ins { background-position:-72px 0; }
|
||||
.jstree-default .jstree-closed > ins { background-position:-54px 0; }
|
||||
.jstree-default .jstree-leaf > ins { background-position:-36px 0; }
|
||||
|
||||
.jstree-default .jstree-hovered { background:#e7f4f9; border:1px solid #d8f0fa; padding:0 2px 0 1px; }
|
||||
.jstree-default .jstree-clicked { background:#beebff; border:1px solid #99defd; padding:0 2px 0 1px; }
|
||||
.jstree-default a .jstree-icon { background-position:-56px -19px; }
|
||||
.jstree-default a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
|
||||
|
||||
.jstree-default.jstree-focused {}
|
||||
|
||||
.jstree-default .jstree-no-dots li,
|
||||
.jstree-default .jstree-no-dots .jstree-leaf > ins { background:transparent; }
|
||||
.jstree-default .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
|
||||
.jstree-default .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
|
||||
|
||||
.jstree-default .jstree-no-icons a .jstree-icon { display:none; }
|
||||
|
||||
.jstree-default .jstree-search { font-style:italic; }
|
||||
|
||||
.jstree-default .jstree-no-icons .jstree-checkbox { display:inline-block; }
|
||||
.jstree-default .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
|
||||
.jstree-default .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
|
||||
.jstree-default .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
|
||||
.jstree-default .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
|
||||
.jstree-default .jstree-checked > a > .jstree-checkbox:hover { background-position:-38px -37px; }
|
||||
.jstree-default .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
|
||||
.jstree-default .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
|
||||
|
||||
#vakata-dragged.jstree-default ins { background:transparent !important; }
|
||||
#vakata-dragged.jstree-default .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
|
||||
#vakata-dragged.jstree-default .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
|
||||
#jstree-marker.jstree-default { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
|
||||
|
||||
.jstree-default a.jstree-search { color:aqua; }
|
||||
.jstree-default .jstree-locked a { color:silver; cursor:default; }
|
||||
|
||||
#vakata-contextmenu.jstree-default-context,
|
||||
#vakata-contextmenu.jstree-default-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
|
||||
#vakata-contextmenu.jstree-default-context li { }
|
||||
#vakata-contextmenu.jstree-default-context a { color:black; }
|
||||
#vakata-contextmenu.jstree-default-context a:hover,
|
||||
#vakata-contextmenu.jstree-default-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
|
||||
#vakata-contextmenu.jstree-default-context li.jstree-contextmenu-disabled a,
|
||||
#vakata-contextmenu.jstree-default-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
|
||||
#vakata-contextmenu.jstree-default-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
|
||||
#vakata-contextmenu.jstree-default-context li ul { margin-left:-4px; }
|
||||
|
||||
/* IE6 BEGIN */
|
||||
.jstree-default li,
|
||||
.jstree-default ins,
|
||||
#vakata-dragged.jstree-default .jstree-invalid,
|
||||
#vakata-dragged.jstree-default .jstree-ok,
|
||||
#jstree-marker.jstree-default { _background-image:url("d.gif"); }
|
||||
.jstree-default .jstree-open ins { _background-position:-72px 0; }
|
||||
.jstree-default .jstree-closed ins { _background-position:-54px 0; }
|
||||
.jstree-default .jstree-leaf ins { _background-position:-36px 0; }
|
||||
.jstree-default a ins.jstree-icon { _background-position:-56px -19px; }
|
||||
#vakata-contextmenu.jstree-default-context ins { _display:none; }
|
||||
#vakata-contextmenu.jstree-default-context li { _zoom:1; }
|
||||
.jstree-default .jstree-undetermined a .jstree-checkbox { _background-position:-20px -19px; }
|
||||
.jstree-default .jstree-checked a .jstree-checkbox { _background-position:-38px -19px; }
|
||||
.jstree-default .jstree-unchecked a .jstree-checkbox { _background-position:-2px -19px; }
|
||||
/* IE6 END */
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -27,7 +27,7 @@
|
||||
|
||||
if (!defined('_CAN_LOAD_FILES_'))
|
||||
exit;
|
||||
|
||||
|
||||
class Blockreinsurance extends Module
|
||||
{
|
||||
public function __construct()
|
||||
@@ -44,7 +44,7 @@ class Blockreinsurance extends Module
|
||||
$this->displayName = $this->l('Bloc reinsurance');
|
||||
$this->description = $this->l('Add a block to display more infos to reassure your customers');
|
||||
}
|
||||
|
||||
|
||||
public function install()
|
||||
{
|
||||
$return = (parent::install() && $this->installDB() && Configuration::updateValue('blockreinsurance_nbblocks', 5) && $this->registerHook('footer'));
|
||||
@@ -217,10 +217,11 @@ class Blockreinsurance extends Module
|
||||
);
|
||||
$success = true;
|
||||
for ($a = 1; $a <= $nb_blocks; $a++)
|
||||
{
|
||||
$success &= Db::getInstance()->execute('
|
||||
INSERT INTO `'._DB_PREFIX_.'reinsurance` (`filename`, `text`)
|
||||
VALUES ("reassurance'.$a.'", "'.$tab_texts[($a-1)].'")');
|
||||
INSERT INTO `'._DB_PREFIX_.'reinsurance` (`filename`, `text`, `id_shop`)
|
||||
VALUES ("reassurance'.$a.'", "'.$tab_texts[($a-1)].'", '.(int)$this->context->shop->id.')');
|
||||
}
|
||||
return $success;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1820,6 +1820,7 @@ $_LANGADM['AdminMeta1092637069f4ebf1bee2b02fd280888b'] = 'Route vers les catégo
|
||||
$_LANGADM['AdminMeta13f52e209a05e588d6966c38b5e1586b'] = 'Liste des mots-clés';
|
||||
$_LANGADM['AdminMeta14caa3d50da16368a8f30b53a5b72aa4'] = 'Rediriger automatiquement vers l\'URL canonique';
|
||||
$_LANGADM['AdminMeta193cfc9be3b995831c6af2fea6650e60'] = 'Page';
|
||||
$_LANGADM['AdminMeta1ce8c30b7ac35494b290332e37c9e7b4'] = 'Le multi-boutique est activé. Si vous souhaitez changer l\'URL d\'une de vos boutiques, veuillez vous rendre dans l\'onglet \"Advanced Parameters\" -> \"Multi-boutique\".';
|
||||
$_LANGADM['AdminMeta1dec4f55522b828fe5dacf8478021a9e'] = 'URL simplifiée :';
|
||||
$_LANGADM['AdminMeta2b8d5d29082dcd15416bfda7936daabd'] = 'L\'URL rewriting (mod_rewrite) n\'est pas activé sur votre serveur. Si vous voulez utiliser les URL simplifiées, veuillez activer ce module Apache.';
|
||||
$_LANGADM['AdminMeta2f00a8ca42b86bfcb39cdd34665a1386'] = 'Exemple : \"contacts\" pour http://maboutique.com/shop/contacts redirigera vers http://maboutique.com/shop/contact-form.php';
|
||||
@@ -1830,14 +1831,17 @@ $_LANGADM['AdminMeta38fb7d24e0d60a048f540ecb18e13376'] = 'Enregistrer';
|
||||
$_LANGADM['AdminMeta394deec8b4e901394f69ad41095b1ecc'] = 'Méta mots-clés :';
|
||||
$_LANGADM['AdminMeta3c7cbced91d6e2e0b34500449597779f'] = 'N\'activez cette option que si vous rencontrez des problèmes avec la redirection d\'URL de certaines pages.';
|
||||
$_LANGADM['AdminMeta3cb0403ba2ec65e9030c1013b5edb42d'] = 'Configuration des URL';
|
||||
$_LANGADM['AdminMeta41e0dc2e5b02da0e290cee6ef11f675a'] = 'Vous pouvez changer ici l\'URL de votre boutique. Si vous migrez votre boutique vers une nouvelle URL, veuillez penser à changer les valeurs ci dessous.';
|
||||
$_LANGADM['AdminMeta43199543574edd476ab25337ad4a223c'] = 'URL de la boutique';
|
||||
$_LANGADM['AdminMeta4af8920622301fd5c44c3a9678790202'] = 'Votre fichier robots.txt DOIT être dans le dossier racine de votre site web, et nulle part ailleurs.';
|
||||
$_LANGADM['AdminMeta4b9a9672a96a435f1d15ad934e093104'] = 'Route vers les modules';
|
||||
$_LANGADM['AdminMeta4c8b0de98df5c029863c90c4239003fb'] = 'Vous pouvez changer ici le format de vos liens. Il y a plusieurs mots-clés disponibles pour chaque route listée ci-dessous. Les mots-clés avec * sont obligatoires. Pour ajouter un mot-clé dans l\'URL, utilisez la syntaxe {motclé}. Vous pouvez ajouter du texte avant ou après le mot-clé, qui s\'affichera si le contenu du mot-clé n\'est pas vide, avec la syntaxe {avant:motclé:après}. Par exemple {-bonjour-:meta_title} ajoutera \"-bonjour-mon-titre\" dans l\'URL si la méta titre est remplie, autrement il n\'affichera rien. Les URL simplifiées et le module mod_rewrite d\'Apache doivent être activés sur votre serveur pour pouvoir utiliser cette option.';
|
||||
$_LANGADM['AdminMeta532a7bf10fd5a4315e0dfefe7a110d43'] = 'Page par défaut';
|
||||
$_LANGADM['AdminMeta532a7bf10fd5a4315e0dfefe7a110d43'] = 'Pages par défaut';
|
||||
$_LANGADM['AdminMeta5575f8bf467eba7499f22e78db6f3f56'] = 'Route vers les produits';
|
||||
$_LANGADM['AdminMeta6252c0f2c2ed83b7b06dfca86d4650bb'] = 'Caractères non valables :';
|
||||
$_LANGADM['AdminMeta7959e21ff0b83542251ca0b4e9a62eea'] = 'Générer le fichier robots.txt';
|
||||
$_LANGADM['AdminMeta7a7e8c770c2e9392ab9bbafff71ca498'] = 'Ex. : http://www.monsite.com/robots.txt';
|
||||
$_LANGADM['AdminMeta7efeee26d2914e586169f61213741599'] = 'Domaine SSL';
|
||||
$_LANGADM['AdminMeta83495f05c4aa5f326f23b6d58d0da5e6'] = 'Route vers les catégories CMS';
|
||||
$_LANGADM['AdminMeta84e2bd6cb02b2ed581449b1ed5dd3d03'] = 'donnez les permissions d\'écriture au fichier (CHMOD 666 sur un système Unix)';
|
||||
$_LANGADM['AdminMeta8eee2883d683841b6ab08c1bb6d13fb7'] = 'Route vers les pages CMS';
|
||||
@@ -1853,10 +1857,12 @@ $_LANGADM['AdminMetab78a3223503896721cca1303f776159b'] = 'Titre';
|
||||
$_LANGADM['AdminMetab7e4848d64e66565d360a42e54fd1b3b'] = 'Une courte description';
|
||||
$_LANGADM['AdminMetab8a27e47e64caa3e36c8894c3745357b'] = 'Avant de pouvoir utiliser cet outil, vous devez :';
|
||||
$_LANGADM['AdminMetabafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
|
||||
$_LANGADM['AdminMetac274743f6bf3e3682c41e9ee269913f4'] = 'Chemin';
|
||||
$_LANGADM['AdminMetac9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
|
||||
$_LANGADM['AdminMetad3b206d196cd6be3a2764c1fb90b200f'] = 'Supprimer la sélection';
|
||||
$_LANGADM['AdminMetad7d6df2bf29a7c786936c13dade04d8c'] = 'Page des modules';
|
||||
$_LANGADM['AdminMetad7d6df2bf29a7c786936c13dade04d8c'] = 'Pages des modules';
|
||||
$_LANGADM['AdminMetada82a2002384409477655085d5c4136e'] = 'N\'activez cette option que si votre serveur autorise la réécriture d\'URL (recommandé).';
|
||||
$_LANGADM['AdminMetadb309cb65c4220d02c0fd13927d315ae'] = 'Domaine';
|
||||
$_LANGADM['AdminMetadbb5f11eab5c5c375c4c5face47ddf1e'] = 'Page :';
|
||||
$_LANGADM['AdminMetae1a7478962f9872f0765922496b26851'] = 'Il n\'y a pas de page disponible !';
|
||||
$_LANGADM['AdminMetae25f0ecd41211b01c83e5fec41df4fe7'] = 'Supprimer les éléments sélectionnés ?';
|
||||
@@ -2429,12 +2435,14 @@ $_LANGADM['AdminPreferences1656072e927c8d3acd24359cbb648bb5'] = 'Activer le SSL'
|
||||
$_LANGADM['AdminPreferences17677e6d8339224e645bc98321a8fbed'] = 'Afficher les fournisseurs et les marques même si les blocs correspondants sont désactivés';
|
||||
$_LANGADM['AdminPreferences27f3765c3871cd5fe52f88f31dfe2c89'] = 'supérieur';
|
||||
$_LANGADM['AdminPreferences38fb7d24e0d60a048f540ecb18e13376'] = 'Enregistrer';
|
||||
$_LANGADM['AdminPreferences53d4ff7dff379f54c0ec1f8db0554afa'] = 'Le multi-boutique vous permet de gérer plusieurs boutiques avec une seule administration. Si cette fonctionnalité est activée, un onglet \"multi-boutique\" apparaître dans le menu \"paramètres avancés\".';
|
||||
$_LANGADM['AdminPreferences700e61469b84a66ddb24304a85b0c181'] = 'classique';
|
||||
$_LANGADM['AdminPreferences79a8435260e0c3b17e30ccb1c6dfc75c'] = 'Afficher les fournisseurs et les marques';
|
||||
$_LANGADM['AdminPreferences8de64d6b49cebd2306af6ddbcd268700'] = 'Si votre hébergeur propose le protocole SSL, vous pouvez activer le cryptage SSL (https://) pour l\'identification des clients et le processus de commande';
|
||||
$_LANGADM['AdminPreferences95be164e850e88c5282e84669f368e1b'] = 'Vous pouvez choisir le mode d\'arrondi : arrondir toujours au supérieur, à l\'inférieur, ou arrondi classique.';
|
||||
$_LANGADM['AdminPreferencesac2021d3c67ee796d7ab20a466ebd583'] = 'Règle d\'arrondi';
|
||||
$_LANGADM['AdminPreferencesbbd6622dbbdf4bcb166f5e3f018a2351'] = 'Cliquez ici pour utiliser le protocole HTTPS avant d\'activer le mode SSL.';
|
||||
$_LANGADM['AdminPreferencesc222d9543216761ec191ecb71865d2a9'] = 'Activer le multi-boutique';
|
||||
$_LANGADM['AdminPreferencescce43372fe8624c0edf870f417557b84'] = 'Active ou désactive les jetons (tokens) en front-office afin d\'améliorer la sécurité de PrestaShop';
|
||||
$_LANGADM['AdminPreferencese12874163bcb256726ddfe643aa53a63'] = 'Améliore la sécurité du front-office';
|
||||
$_LANGADM['AdminPreferencesf8d23e159df67b2673d7c29166864453'] = 'inférieur';
|
||||
@@ -3227,37 +3235,45 @@ $_LANGADM['AdminShippingee40885aa3a350e6182b8ada1843ed30'] = 'Ce transporteur es
|
||||
$_LANGADM['AdminShippingf8617a92ba0a0a4eabee724eab7c9f48'] = 'Transporteur :';
|
||||
$_LANGADM['AdminShop00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Activé';
|
||||
$_LANGADM['AdminShop068f80c7519d0528fb08e82137a72131'] = 'Produits';
|
||||
$_LANGADM['AdminShop0fc629d52a6553e98b76fffa727ba878'] = 'Éditer ce groupe de boutique';
|
||||
$_LANGADM['AdminShop1814d65a76028fdfbadab64a5a8076df'] = 'Fournisseurs';
|
||||
$_LANGADM['AdminShop1aa4c641d6920ddb97a2562f8ec53853'] = 'Groupe :';
|
||||
$_LANGADM['AdminShop1d6af794b2599c1407a83029a09d1ecf'] = 'Transporteurs';
|
||||
$_LANGADM['AdminShop1d92a46c4e14c43c3096d85c9f26fc4e'] = 'Choisissez les données ';
|
||||
$_LANGADM['AdminShop2377be3c2ad9b435ba277a73f0f1ca76'] = 'Marques';
|
||||
$_LANGADM['AdminShop247ce0c9b61b77d61c5de8e2c3e32978'] = 'Éditer cette URL';
|
||||
$_LANGADM['AdminShop24a23d787190f2c4812ff9ab11847a72'] = 'État :';
|
||||
$_LANGADM['AdminShop25c25c36ef8fc9436725e3a4eb6044d2'] = 'Supprimer cette boutique';
|
||||
$_LANGADM['AdminShop287234a1ff35a314b5b6bc4e5828e745'] = 'Valeurs d\'attributs';
|
||||
$_LANGADM['AdminShop2df07bc574bd6370979f7762b08b4a32'] = 'Choisissez la boutique (source)';
|
||||
$_LANGADM['AdminShop30cfab87fe702cd2ff1b064fa4729305'] = 'Ajouter une URL';
|
||||
$_LANGADM['AdminShop339b1acb0d1f26923dc4545a9f749ab3'] = 'Comptes service web';
|
||||
$_LANGADM['AdminShop37c0e2b9736bc4cc2005f7be3fd66fe5'] = 'Activer ou désactiver la boutique';
|
||||
$_LANGADM['AdminShop3adbdb3ac060038aa0e6e6c138ef9873'] = 'Catégorie';
|
||||
$_LANGADM['AdminShop4390988a3f7d7cfa3d8a5ecb11976f58'] = 'Groupe de boutiques';
|
||||
$_LANGADM['AdminShop45f739d1a4b022ab097c583c38eb388f'] = 'Langue des transporteurs';
|
||||
$_LANGADM['AdminShop49cae355d9b19a855498548bddbd894f'] = 'Vous ne pouvez pas éditer le groupe de boutique lorsque vous avez plus d\'une boutique';
|
||||
$_LANGADM['AdminShop4a4122f85bc7d1d197ef87cf89f90d01'] = 'Attention : vous ne pourrez plus changer le groupe de boutique de cette boutique, si cette boutique appartient à un groupe avec une des options \"partage de clients\" ou \"partage des quantités\" ou \"partage des commandes\" activée.';
|
||||
$_LANGADM['AdminShop511e7adbb96dafc5569e4be09da8dc93'] = 'Langue des produits';
|
||||
$_LANGADM['AdminShop517a8a7dbf1f6e371509817de328e396'] = 'Groupes de clients';
|
||||
$_LANGADM['AdminShop580cb0ed4cf533163f82c70c7833bb9d'] = 'Groupe de boutique :';
|
||||
$_LANGADM['AdminShop5bafd557247e80174f35c1870e760364'] = 'Boutique par défaut :';
|
||||
$_LANGADM['AdminShop5a8f8f8e0bcbfcd926271ee7d7351134'] = 'Groupes de boutique';
|
||||
$_LANGADM['AdminShop61f0fa926f97eafb392975ed79cebb4a'] = 'Nom de la boutique :';
|
||||
$_LANGADM['AdminShop622f3c75de9f3481ffc58c1f292c1c2b'] = 'Page CMS';
|
||||
$_LANGADM['AdminShop62e5040acb58a7b77dbd16179b1ab557'] = 'Utilisez cette option pour associer les données (produits, modules, etc.) de la même façon que la boutique sélectionnée';
|
||||
$_LANGADM['AdminShop6416e8cb5fc0a208d94fa7f5a300dbc4'] = 'Entrepôt';
|
||||
$_LANGADM['AdminShop64c70a5c238abee8f825294cbd9bcc08'] = 'Cliquez ici pour afficher les URLs de la boutique %s';
|
||||
$_LANGADM['AdminShop652342e19bf26f8d1b350e60aad3e3bf'] = 'Ajouter une boutique';
|
||||
$_LANGADM['AdminShop6a9afe170bdaacb2cdf24336e038597d'] = 'Ajouter l\'adresse';
|
||||
$_LANGADM['AdminShop6c8d0b6839cf16e3b2c7e5d0f6428b40'] = 'Vous ne pouvez déplacer votre boutique que vers un groupe dont les options \"partage\" sont désactivées, ou vers un groupe ne possédant ni clients ni commandes.';
|
||||
$_LANGADM['AdminShop6fab199dbf5a4155871fb0d5dbfa9827'] = 'Règles de taxes';
|
||||
$_LANGADM['AdminShop72cfee7e99f1d0a9df6cb5434fac3665'] = 'Restrictions des groupes d\'utilisateurs pour le module de paiement';
|
||||
$_LANGADM['AdminShop763721005c7411c951ba93086ca02d26'] = 'Options de la boutique';
|
||||
$_LANGADM['AdminShop7641f2d6a19d137714d493ac979e20d5'] = 'Ajouter un groupe de boutique';
|
||||
$_LANGADM['AdminShop775a3ab6add326ef93f2382f49f9e500'] = 'Attributs';
|
||||
$_LANGADM['AdminShop790d59ef178acbc75d233bf4211763c6'] = 'Pays';
|
||||
$_LANGADM['AdminShop7b19b37e7fc3dfe3c3e1ad5b84c7f565'] = 'Page d\'accueil';
|
||||
$_LANGADM['AdminShop7ffa831a8a11eb45e63b4dc3b7393bf9'] = 'URL principale de la boutique';
|
||||
$_LANGADM['AdminShop821b8ee6937cec96c30fdafbfe836d68'] = 'Magasins';
|
||||
$_LANGADM['AdminShop92318dc9b42eb05bb1c958f0a15d19b9'] = 'Langues';
|
||||
$_LANGADM['AdminShop93353a734fe6e60784b839e911d2cbf1'] = 'Vous ne pouvez pas changer le groupe de boutique car une de ses options de partage est activée.';
|
||||
$_LANGADM['AdminShop93cba07454f06a4a960172bbd6e2a435'] = 'Oui';
|
||||
$_LANGADM['AdminShop97c28a285baaceed1a185a2b8a088782'] = 'Exceptions des points d\'accroches des modules';
|
||||
$_LANGADM['AdminShop98f770b0af18ca763421bac22b4b6805'] = 'Caractéristiques';
|
||||
@@ -3268,40 +3284,31 @@ $_LANGADM['AdminShop9ea67be453eaccf020697b4654fc021a'] = 'Enregistrer et rester'
|
||||
$_LANGADM['AdminShop9f82518d468b9fee614fcc92f76bb163'] = 'Boutique';
|
||||
$_LANGADM['AdminShopGroup00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Activé';
|
||||
$_LANGADM['AdminShopGroup0f86285516456595b59620181e9c689c'] = 'Groupe de boutique';
|
||||
$_LANGADM['AdminShopGroup1814d65a76028fdfbadab64a5a8076df'] = 'Fournisseurs';
|
||||
$_LANGADM['AdminShopGroup18e5ed18a875ebffce61b7abe7b5dc1e'] = 'Partager les clients :';
|
||||
$_LANGADM['AdminShopGroup2377be3c2ad9b435ba277a73f0f1ca76'] = 'Marques';
|
||||
$_LANGADM['AdminShopGroup24a23d787190f2c4812ff9ab11847a72'] = 'État :';
|
||||
$_LANGADM['AdminShopGroup287234a1ff35a314b5b6bc4e5828e745'] = 'Attributs';
|
||||
$_LANGADM['AdminShopGroup3d541d3352f36c85628c8dedea668348'] = 'Les règles fiscales des groupes';
|
||||
$_LANGADM['AdminShopGroup41d8e40a58b7e3a6a84f6137a2424b8d'] = 'Partager les commandes et les paniers entre les boutiques de ce groupe (vous ne pouvez partager les commandes que si vous partagez les clients et les quantités disponibles)';
|
||||
$_LANGADM['AdminShopGroup517a8a7dbf1f6e371509817de328e396'] = 'Groupes de clients';
|
||||
$_LANGADM['AdminShopGroup775a3ab6add326ef93f2382f49f9e500'] = 'Les groupes d\'attributs';
|
||||
$_LANGADM['AdminShopGroup3f4e4431c51dfb7074793fdfb01a10a7'] = 'Attention : il n\'est pas recommandé d\'activer les options \"partage des clients\" et \"partage des commandes\", car une fois activées et que des clients ou commandes sont passées, il ne sera plus possible de les désactiver. Si vous souhaitez tout de même utiliser ces options, demandez vous au préalable si scinder votre catalogue produit en plusieurs catégories avec des thèmes différents ne serait pas plus judicieux.';
|
||||
$_LANGADM['AdminShopGroup5bafd557247e80174f35c1870e760364'] = 'Boutique par défaut';
|
||||
$_LANGADM['AdminShopGroup69c655ebbe2393caaadab9495b42e47d'] = 'Une fois que cette option sera activée (ce qui n\'est possible que que le partage de clients et de quantité est activée), le panier du client sera automatiquement partagé dans les différentes boutiques de ce groupe. De cette façon, toute commande commencée sur l\'une des boutiques de ce groupe pourra être continuée depuis une autre boutique du même groupe. Attention : vous ne pourrez plus désactiver cette option dès lors que des commandes seront passées sur au moins une boutique de ce groupe.';
|
||||
$_LANGADM['AdminShopGroup7641f2d6a19d137714d493ac979e20d5'] = 'Ajouter un nouveau groupe de boutique';
|
||||
$_LANGADM['AdminShopGroup7c18039b09018a9af060e9a3b74278bd'] = 'Partager les quantités disponible à la vente entre les boutiques de ce groupe. Si vous changez cette option, les quantités des boutiques du groupe seront remises à 0.';
|
||||
$_LANGADM['AdminShopGroup7f6362c8aa3fbfa67297a61af562975b'] = 'Options multi-boutiques';
|
||||
$_LANGADM['AdminShopGroup86a45aede7b70cccba4f1abd370aea00'] = 'Nom du groupe :';
|
||||
$_LANGADM['AdminShopGroup8cf1c12c31b716190d84ba7c578dbcd8'] = 'Activer ou désactiver le groupe de boutique';
|
||||
$_LANGADM['AdminShopGroup934514d7bd6af6a23fca1b985ec2d640'] = 'Partager les comptes clients entre les différentes boutiques de ce groupe';
|
||||
$_LANGADM['AdminShopGroup98f770b0af18ca763421bac22b4b6805'] = 'Caractéristiques';
|
||||
$_LANGADM['AdminShopGroupa37ede293936e29279ed543129451ec3'] = 'Groupes';
|
||||
$_LANGADM['AdminShopGroupb4507c82e08f844d7a19f2309cbbd76d'] = 'Vous ne pouvez pas éditer le groupe de boutique lorsque vous avez plus d\'une boutique';
|
||||
$_LANGADM['AdminShopGroupb718adec73e04ce3ec720dd11a06a308'] = 'ID';
|
||||
$_LANGADM['AdminShopGroupb9f5c797ebbf55adccdd8539a65a0241'] = 'Désactivé';
|
||||
$_LANGADM['AdminShopGroupbec5ca2064490f938c3478fd90bf2da1'] = 'Partager les quantités disponible à la vente :';
|
||||
$_LANGADM['AdminShopGroupc9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
|
||||
$_LANGADM['AdminShopGroupd3b206d196cd6be3a2764c1fb90b200f'] = 'Supprimer la sélection';
|
||||
$_LANGADM['AdminShopGroupdad1f8d794ee0dd7753fe75e73b78f31'] = 'Zones';
|
||||
$_LANGADM['AdminShopGroupe25f0ecd41211b01c83e5fec41df4fe7'] = 'Supprimer les éléments sélectionnés ?';
|
||||
$_LANGADM['AdminShopGroupe78cc393bbaf15e830e3b22178d74a00'] = 'Groupe';
|
||||
$_LANGADM['AdminShopGroupe9f83d2cd2cd8ce6d8a58d3fc454d5cf'] = 'Partager les commandes :';
|
||||
$_LANGADM['AdminShopGroupfc7782110aebfc15f6f04144dfdc1cbc'] = 'Une fois que cette option sera activée, les boutiques de ce groupes partageront leurs clients : si un client s\'enregistre sur une des boutiques de ce groupe, son compte sera automatiquement disponible sur les autres boutiques de ce groupe. Attention : vous ne pourrez plus désactiver cette option dès lors que des clients seront enregistrés sur au moins une boutique de ce groupe.';
|
||||
$_LANGADM['AdminShopUrl00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Activé';
|
||||
$_LANGADM['AdminShopUrl10a0bce6f732af77fbc0b310de0a0f47'] = 'La boutique choisie a déjà une URL principale ; si vous choisissez l\'URL actuelle comme étant son URL principale, son ancienne URL redeviendra normale (et non plus principale).';
|
||||
$_LANGADM['AdminShopUrl1a12a19a4e3e3626f44f2c7969ce2b5b'] = 'Dossier physique de votre boutique sur le serveur. Laissez ce champ vide si votre boutique est installée à la racine. Par exemple, si votre boutique est accessible via l’adresse www.mon-prestashop.com/ma-boutique/, vous devez saisir ma-boutique/ dans ce champ.';
|
||||
$_LANGADM['AdminShopUrl24a23d787190f2c4812ff9ab11847a72'] = 'État :';
|
||||
$_LANGADM['AdminShopUrl32401234f706ad260cc990d83fe5d7ec'] = 'Votre URL finale sera :';
|
||||
$_LANGADM['AdminShopUrl37d00f4554dc3c0baeb34a9c22d787d9'] = 'URL de la boutique';
|
||||
$_LANGADM['AdminShopUrl3cbc37f94997d23bfe2824165dc45549'] = 'Ajouter une URL';
|
||||
$_LANGADM['AdminShopUrl676e457154510d142765d535fbf11df0'] = 'URL principale';
|
||||
$_LANGADM['AdminShopUrl7e01d4a0c1fa89814ea68649a506eeee'] = 'Domaine SSL';
|
||||
$_LANGADM['AdminShopUrl8447306210a0972ac94b7d774799df1a'] = 'URI';
|
||||
$_LANGADM['AdminShopUrl873646ada13763eda1a5393d99973204'] = 'Domaine SSL :';
|
||||
$_LANGADM['AdminShopUrl9c8417aa5dbcccb5b4c48b4176ae1e8a'] = 'URI physique :';
|
||||
$_LANGADM['AdminShopUrl9efaaad2d5b51cd643529cd6872e169a'] = 'URL principale :';
|
||||
@@ -3310,13 +3317,13 @@ $_LANGADM['AdminShopUrlb718adec73e04ce3ec720dd11a06a308'] = 'ID';
|
||||
$_LANGADM['AdminShopUrlb91c371eeb88143fd0260f990bcf8d75'] = 'Boutique :';
|
||||
$_LANGADM['AdminShopUrlb9f5c797ebbf55adccdd8539a65a0241'] = 'Désactivé';
|
||||
$_LANGADM['AdminShopUrlbd5f9f37b54fe8f66369f74784576e6c'] = 'Domaine :';
|
||||
$_LANGADM['AdminShopUrlbfc70beddce99a8ab159563d4e03f7af'] = 'Options de l\'URL';
|
||||
$_LANGADM['AdminShopUrlc9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
|
||||
$_LANGADM['AdminShopUrld3b206d196cd6be3a2764c1fb90b200f'] = 'Supprimer la sélection';
|
||||
$_LANGADM['AdminShopUrld42225935a374f1249f2a45ebed00772'] = 'Activée ou désactivée';
|
||||
$_LANGADM['AdminShopUrld63c1ea9ab7850a74940ff760f25034b'] = 'Éditer cette boutique';
|
||||
$_LANGADM['AdminShopUrldd22844f47ebedcec07f9c920af00fb3'] = 'URI virtuelle :';
|
||||
$_LANGADM['AdminShopUrle25f0ecd41211b01c83e5fec41df4fe7'] = 'Supprimer les éléments sélectionnés ?';
|
||||
$_LANGADM['AdminShopUrle6b391a8d2c4d45902a23a8b6585703d'] = 'URL';
|
||||
$_LANGADM['AdminShopUrle93c33bd1341ab74195430daeb63db13'] = 'Nom de la boutique';
|
||||
$_LANGADM['AdminShopUrleae639a70006feff484a39363c977e24'] = 'Domaine';
|
||||
$_LANGADM['AdminShopUrlec0a460d665960aaa805fe83079c8a29'] = 'Comme la boutique choisi n\'a pas d\'URL principale, l\'URL que vous êtes en train de créer doit être mise en tant qu\'URL principale.';
|
||||
$_LANGADM['AdminShopUrlf34e3f34ca9b7d83cb35376b6cbc9a2a'] = 'Vous pouvez utiliser cette option si vous souhaitez créer un boutique avec une URI qui n\'existe pas réellement sur votre serveur. Par exemple, si vous souhaitez que votre boutique soit accessible via l\'adresse www.mon-prestashop.com/ma-boutique/chaussures/, vous devez saisir chaussures/ dans ce champ (en considérant que ma-boutique/ est votre URI physique).';
|
||||
$_LANGADM['AdminShopUrlf6e7829277b67d5a8805d6728a810362'] = 'La réécriture d\'URL doit être activée sur votre serveur pour utiliser cette fonctionnalité.';
|
||||
@@ -3332,19 +3339,20 @@ $_LANGADM['AdminShopbb34f602e45a9fbcb2cdfee7a48673fc'] = 'Scènes';
|
||||
$_LANGADM['AdminShopbbaff12800505b22a853e8b7f4eb6a22'] = 'Contact';
|
||||
$_LANGADM['AdminShopbf17ac149e2e7a530c677e9bd51d3fd2'] = 'Modules';
|
||||
$_LANGADM['AdminShopc269874d047098fef892a344be025303'] = 'Restrictions des pays pour le module de paiement';
|
||||
$_LANGADM['AdminShopc3dd254606fb978c7b0c51b6d8987865'] = 'Arbre multi-boutique';
|
||||
$_LANGADM['AdminShopc8cfbbbe4253e14390b2b14d7e60d9c8'] = 'Importer les données';
|
||||
$_LANGADM['AdminShopc9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
|
||||
$_LANGADM['AdminShopcceb3f70e3d4cda3aea8ace295459881'] = 'Cliquez ici pour afficher la liste des groupes de boutiques';
|
||||
$_LANGADM['AdminShopce2530ff1fb8dc66d6c940c5ce32508d'] = 'Catégories associées :';
|
||||
$_LANGADM['AdminShopcf173b732a2a0377698d631db6185836'] = 'Quantités disponibles à la vente';
|
||||
$_LANGADM['AdminShopd3b206d196cd6be3a2764c1fb90b200f'] = 'Supprimer la sélection';
|
||||
$_LANGADM['AdminShopd63c1ea9ab7850a74940ff760f25034b'] = 'Éditer cette boutique';
|
||||
$_LANGADM['AdminShopdd71ab2e72d6eaee589cb9915172b400'] = 'Groupe de boutique :';
|
||||
$_LANGADM['AdminShopdfcfc43722eef1eab1e4a12e50a068b1'] = 'Devises';
|
||||
$_LANGADM['AdminShope25f0ecd41211b01c83e5fec41df4fe7'] = 'Supprimer les éléments sélectionnés ?';
|
||||
$_LANGADM['AdminShopeb626c94531ec554f93b2b78a77c8b1b'] = 'Employées';
|
||||
$_LANGADM['AdminShoped1553edc123179130b5944e22287ef6'] = 'Cliquez ici pour définir une URL pour cette boutique';
|
||||
$_LANGADM['AdminShopf5d52e166d3891c911dc7ac910387df6'] = 'La boutique par défaut';
|
||||
$_LANGADM['AdminShopfafd952418c73bbc20286f8b0ec5bd6a'] = 'Racine des catégories';
|
||||
$_LANGADM['AdminShopfedca77235d8e28be78f54c7f960c5a0'] = 'Catégorie parente :';
|
||||
$_LANGADM['AdminShopff398a1c3434e160c655aa1613e0eace'] = 'Sites affluents';
|
||||
$_LANGADM['AdminShopff74ff0dd750d9a5493e2ab7f90ffeab'] = 'Cliquez ici pour afficher les boutiques du groupe %s';
|
||||
$_LANGADM['AdminShopfff0d600f8a0b5e19e88bfb821dd1157'] = 'Images';
|
||||
$_LANGADM['AdminSlip067af5895a7ced3197520b591f9a41eb'] = 'Générer le PDF';
|
||||
$_LANGADM['AdminSlip1e6d57e813355689e9c77e947d73ad8f'] = 'Début';
|
||||
|
||||