// Release branch merged

This commit is contained in:
François Gaillard
2013-03-27 10:25:16 +01:00
1089 changed files with 4260 additions and 52622 deletions
+4 -1
View File
@@ -26,4 +26,7 @@ tools/smarty*/compile/*.php
!tools/smarty*/compile/index.php
override/classes/*.php
themes/default/cache/*.js
themes/default/cache/*.css
themes/default/cache/*.css
modules/*/translations/*.php
!modules/*/translations/index.php
+2
View File
@@ -94,6 +94,8 @@ function rewriteSettingsFile($baseUrls = NULL, $theme = NULL, $arrayDB = NULL)
$defines['_DB_PASSWD_'] = (($arrayDB AND isset($arrayDB['_DB_PASSWD_'])) ? $arrayDB['_DB_PASSWD_'] : _DB_PASSWD_);
$defines['_COOKIE_KEY_'] = addslashes(_COOKIE_KEY_);
$defines['_COOKIE_IV_'] = addslashes(_COOKIE_IV_);
$defines['_PS_CREATION_DATE_'] = addslashes(_PS_CREATION_DATE_);
if (defined('_RIJNDAEL_KEY_'))
$defines['_RIJNDAEL_KEY_'] = addslashes(_RIJNDAEL_KEY_);
if (defined('_RIJNDAEL_IV_'))
+5 -7
View File
@@ -249,12 +249,11 @@ a.module_toggle_all{color: #268CCD;}
display: block;
float: right;
height: auto;
width: 300px;
width: 500px;
position: absolute;
right: 13px;
top: 63px;
z-index: 100;
padding: 10px;
box-shadow: 1px 5px 5px #CCCCCC;
-moz-box-shadow: 1px 5px 10px #CCCCCC;
-webkit-box-shadow: 1px 5px 10px #CCCCCC;
@@ -271,7 +270,7 @@ a.module_toggle_all{color: #268CCD;}
.toolbarBox #modules_list_container #modules_list_container_tab {margin-top: 10px;width: auto;height: auto; }
.toolbarBox #modules_list_container #modules_list_container_tab table {width: 100%;border-spacing: 0px; }
.toolbarBox #modules_list_container #modules_list_container_tab tr { height: auto}
.toolbarBox #modules_list_container #modules_list_container_tab tr.rowalt {background-color: #EEE}
.toolbarBox #modules_list_container #modules_list_container_tab tr.rowalt {background-color: #F0F7FF}
.toolbarBox #modules_list_container #modules_list_container_tab #tab_module_switch {margin-bottom: 10px;}
.toolbarBox #modules_list_container #modules_list_loader {margin-top: 10px}
.toolbarBox #modules_list_container .nav-tabs-modules:after {clear: both;}
@@ -304,7 +303,7 @@ a.module_toggle_all{color: #268CCD;}
.toolbarBox #modules_list_container .nav-tabs-modules > .active > a:hover {
color: #555555;
cursor: default;
background-color: #EEE;
background-color: #F8F8F8;
border: 1px solid #ddd;
border-bottom-color: transparent;
}
@@ -540,9 +539,8 @@ form#product_form h4 { font-size:18px; font-weight:normal;}
#modules_list_container_tab table tr td { font-size:12px; padding: 3px 3px 3px; border-top:1px solid #ccc; border-bottom:none;}
#modules_list_container_tab table tr td tr td {border: none}
#modules_list_container_tab table tr:first-child {border-top:1px solid #ccc}
#modules_list_container_tab table td.tab_modules_actions_row {border-top:1px solid #ccc}
#modules_list_container_tab .imgm {width:32px;}
#modules_list_container_tab .moduleDesc { font-size:12px;width: 238px;}
#modules_list_container_tab .moduleDesc {font-size:12px}
#modules_list_container_tab .moduleDesc h3 { color:#3A6EA7;margin: 0;font-size: 1.1em;text-align: left;white-space: normal;}
#modules_list_container_tab .moduleDesc .metadata { float:left; display:block; margin:5px 0;}
#modules_list_container_tab .moduleDesc .metadata dl { float:left; margin:0; padding-right:10px;}
@@ -565,7 +563,7 @@ form#product_form h4 { font-size:18px; font-weight:normal;}
.default_modules_list_display_type #modules_list_container_content li table tr td{border: none}
.default_modules_list_display_type #modules_list_container_content li table {border: solid 1px #ccc; height: 140px;width: 100%;margin-bottom:15px}
#modules_list_container_tab ul li {margin:5px;height:140px}
#modules_list_container_tab ul li {height:140px}
/******** ie7 ******/
.ie7 #modules_list_container_tab #modules_list_container_content li{zoom:1;display:inline;}
@@ -23,6 +23,10 @@
* International Registered Trademark & Property of PrestaShop SA
*}
{$localization_form}
<div class="width4">
{$localization_form}
</div>
<br />
{$localization_options}
<div class="width4">
{$localization_options}
</div>
@@ -48,7 +48,7 @@
{/if}
<div id="login">
<h1>{$shop_name}</h1>
{if !isset($wrong_folder_name)}
{if !isset($wrong_folder_name) && !isset($wrong_install_name)}
<form action="#" id="login_form" method="post">
<div class="field">
<label for="email">{l s='Email address:'}</label>
@@ -101,10 +101,10 @@
<div class="padding-30">
<p>{l s='For security reasons, you cannot connect to the Back Office until after you have:'}</p>
<ul>
<li>{l s='deleted the /install folder'}</li>
<li>{l s='renamed the /admin folder (e.g. /admin123%d)' sprintf=$randomNb}</li>
{if isset($wrong_install_name) && $wrong_install_name == true}<li>{l s='deleted the /install folder'}</li>{/if}
{if isset($wrong_folder_name) && $wrong_folder_name == true}<li>{l s='renamed the /admin folder (e.g. /admin%d)' sprintf=$randomNb}</li>{/if}
</ul>
<p>{l s='Please then access this page by the new URL (e.g. http://www.yoursite.com/admin123%d)' sprintf=$randomNb}</p>
{if isset($wrong_folder_name) && $wrong_folder_name == true}<p>{l s='Please then access this page by the new URL (e.g. http://www.yoursite.com/admin%d)' sprintf=$randomNb}</p>{/if}
</div>
{/if}
</div>
@@ -28,13 +28,27 @@
<td>
<table border="0" cellpadding="0" cellspacing="5">
<tr>
<td height="60" valign="top" width="75" align="center">
<td valign="top" width="32" align="center">
<img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}">
</td>
<td height="60" width="100" valign="top">
<td height="60" valign="top">
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
<h3>{$module->displayName|truncate:40:'…'} {$module->version}
<h3>
{$module->displayName|truncate:40:'…'} {$module->version}
{if isset($module->id) && $module->id gt 0 }
{if $module->active}
<span class="setup">{l s='Enabled'}</span>
{else}
<span class="setup off">{l s='Disabled'}</span>
{/if}
{else}
{if isset($module->type) && $module->type == 'addonsMustHave'}
<span class="setup must-have">{l s='Must Have'}</span>
{else}
<span class="setup off">{l s='Not installed'}</span>
{/if}
{/if}
</h3>
<p class="desc">
{if isset($module->description) && $module->description ne ''}
@@ -45,37 +59,18 @@
</p>
</div>
</td>
</tr>
<tr>
<td border="0" height="20" width="75" align="left" valign="bottom">
{if isset($module->id) && $module->id gt 0 }
{if $module->active}
<span class="setup">{l s='Enabled'}</span>
{else}
<span class="setup off">{l s='Disabled'}</span>
{/if}
<td border="0" valign="middle" align="right">
{if isset($module->type) && $module->type == 'addonsMustHave'}
<a href="{$module->addons_buy_url}" target="_blank" class="button updated">
<span><img src="../img/admin/cart_addons.png">&nbsp;&nbsp;{displayPrice price=$module->price currency=$module->id_currency}</span></a>
{else if !isset($module->not_on_disk)}
{$module->optionsHtml}
<div class="clear">&nbsp;</div>
<a href="#" class="button action_tab_module" data-option="select_{$module->name}" class="button">Valider</a>
{else}
{if isset($module->type) && $module->type == 'addonsMustHave'}
<span class="setup must-have">{l s='Must Have'}</span>
{else}
<span class="setup off">{l s='Not installed'}</span>
{/if}
<a href="{$module->options.install_url}" class="button">{l s='Install'}</a>
{/if}
</td>
<td class="tab_modules_actions_row" height="20" border="0" valign="bottom" align="right">
<div class="btn_right">
{if isset($module->type) && $module->type == 'addonsMustHave'}
<a href="{$module->addons_buy_url}" target="_blank" class="button updated">
<span><img src="../img/admin/cart_addons.png">&nbsp;&nbsp;{displayPrice price=$module->price currency=$module->id_currency}</span></a>
{else if !isset($module->not_on_disk)}
{$module->optionsHtml}
<a href="#" class="button action_tab_module" data-option="select_{$module->name}" class="button">Valider</a>
{else}
<a href="{$module->options.install_url}" class="button action_tab_module">{l s='Install'}</a>
{/if}
</div>
</td>
</tr>
</table>
</td>
@@ -27,61 +27,60 @@
{if isset($tab_modules_list) && !empty($tab_modules_list)}
<script type="text/javascript">
$(document).ready(function() {
$('.action_tab_module').each( function (){
$(this).click(function () {
option = $('#'+$(this).data('option')+' :selected');
if ($(option).data('onclick') != '')
{
var f = eval("(function(){ "+$(option).data('onclick')+"})");
if (f.call())
window.location.href = $(option).data('href');
}
else
window.location.href = $(option).data('href');
return false;
});
});
$('#nav_tabs_modules_installed').click(function () { showInstalledModules() });
$('#nav_tabs_modules_not_installed').click(function () { showNotInstalledModules() });
{if count($tab_modules_list.installed)}
showInstalledModules();
{else}
showNotInstalledModules();
{/if}
$('#nav_tabs_modules_installed').click( function () {
$('#tab_modules_list_not_installed').hide();
$('#tab_modules_list_installed').show();
$(this).parent('li').addClass('active');
$('#nav_tabs_modules_not_installed').parent('li').removeClass('active');
return false;
});
$('#nav_tabs_modules_not_installed').click( function () {
$('#tab_modules_list_installed').hide();
$('#tab_modules_list_not_installed').show();
$(this).parent('li').addClass('active');
$('#nav_tabs_modules_installed').parent('li').removeClass('active');
return false;
});
bindTabModuleListAction();
});
function showInstalledModules(element)
{
$('#tab_modules_list_not_installed').hide();
$('#tab_modules_list_installed').show();
$('#nav_tabs_modules_installed').parent('li').addClass('active');
$('#nav_tabs_modules_not_installed').parent('li').removeClass('active');
return false;
}
function showNotInstalledModules(element)
{
$('#tab_modules_list_installed').hide();
$('#tab_modules_list_not_installed').show();
$(element).parent('li').addClass('active');
$('#nav_tabs_modules_not_installed').parent('li').removeClass('active');
return false;
}
</script>
<ul class="nav-tabs-modules">
<li class="active"><a id="nav_tabs_modules_installed" href="#" onclick="">{l s='Installed'}</a></li>
<li><a href="#" id="nav_tabs_modules_not_installed" >{l s='Not Installed'}</a></li>
{if count($tab_modules_list.installed)}
<li><a id="nav_tabs_modules_installed" href="#" onclick="">{l s='Installed'}</a></li>
{/if}
{if count($tab_modules_list.not_installed)}
<li><a href="#" id="nav_tabs_modules_not_installed" >{l s='Not Installed'}</a></li>
{/if}
</ul>
<div id="modules_list_container_content" style="clear:both">
<table id="tab_modules_list_installed" style="clear:both">
{if count($tab_modules_list.installed)}
{foreach from=$tab_modules_list.installed item=module}
{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",rowalt"}}
{/foreach}
{else}
<tr><td><b>{l s='No modules available in this section.'}</b></td></tr>
{/if}
</table>
<table id="tab_modules_list_not_installed" style="display:none;clear:both">
{if count($tab_modules_list.not_installed)}
{foreach from=$tab_modules_list.not_installed item=module}
{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",rowalt"}}
{/foreach}
{else}
<tr><td><b>{l s='No modules available in this section.'}</b></td></tr>
{/if}
</table>
{if count($tab_modules_list.installed)}
<table id="tab_modules_list_installed" style="clear:both">
{foreach from=$tab_modules_list.installed item=module}
{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",rowalt"}}
{/foreach}
</table>
{/if}
{if count($tab_modules_list.not_installed)}
<table id="tab_modules_list_not_installed" style="display:none;clear:both">
{foreach from=$tab_modules_list.not_installed item=module}
{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",rowalt"}}
{/foreach}
</table>
{/if}
</div>
{/if}
<p style="text-align:right;text-decoration:underline"><a href="{$admin_module_favorites_view}" style="color:#666">{l s='More options'}</a></p>
<p style="text-align:right;text-decoration:underline;padding-right:10px"><a href="{$admin_module_favorites_view}" style="color:#666">{l s='More options'}</a></p>
@@ -98,7 +98,7 @@
<input type="hidden" name="totalQty" id="totalQty" value="{$product['product_quantity']}" />
<input type="hidden" name="productName" id="productName" value="{$product['product_name']}" />
{if ((!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN')) AND (int)($product['product_quantity_return']) < (int)($product['product_quantity']))}
<input type="checkbox" name="id_order_detail[{$product['id_order_detail']}]" id="id_order_detail[{$product['id_order_detail']}]" value="{$product['id_order_detail']}" onchange="setCancelQuantity(this, {$product['id_order_detail']}, {$product['product_quantity_in_stock'] - $product['customizationQuantityTotal'] - $product['product_quantity_reinjected']})" {if ($product['product_quantity_return'] + $product['product_quantity_refunded'] >= $product['product_quantity'])}disabled="disabled" {/if}/>
<input type="checkbox" name="id_order_detail[{$product['id_order_detail']}]" id="id_order_detail[{$product['id_order_detail']}]" value="{$product['id_order_detail']}" onchange="setCancelQuantity(this, {$product['id_order_detail']}, {$product['product_quantity'] - $product['customizationQuantityTotal'] - $product['product_quantity_return']})" {if ($product['product_quantity_return'] + $product['product_quantity_refunded'] >= $product['product_quantity'])}disabled="disabled" {/if}/>
{else}
--
{/if}
@@ -45,7 +45,7 @@
<tr>
<td>{dateFormat date=$line.date_add full=true}</td>
<td>{$line.type}</td>
<td>{$line.state_name}</td>
<td>{$line.carrier_name}</td>
<td>{$line.weight|string_format:"%.3f"} {Configuration::get('PS_WEIGHT_UNIT')}</td>
<td>
{if $order->getTaxCalculationMethod() == $smarty.const.PS_TAX_INC}
@@ -30,10 +30,6 @@
tabs_manager.onLoad('Informations', function(){
tinySetup({
editor_selector :"autoload_rte",
theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,media,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "styleprops,|,cite,abbr,acronym,del,ins,attribs,pagebreak",
setup : function(ed) {
ed.onInit.add(function(ed)
{
@@ -26,177 +26,174 @@
{if isset($product->id)}
<input type="hidden" name="submitted_tabs[]" value="Quantities" />
<h4>{l s='Available quantities for sale'}</h4>
{include file="controllers/products/multishop/check_fields.tpl" product_tab="Quantities"}
<div class="separation"></div>
<div class="hint" style="display:block; position:'auto';">
<p>{l s='This interface allows you to manage available quantities for sale for products. It also allows you to manage product combinations in the current shop.'}</p>
<p>{l s='You can choose whether or not to use the advanced stock management system for this product.'}</p>
<p>{l s='You can manually specify the quantities for the product/each product combination, or you can choose to automatically determine these quantities based on your stock (if advanced stock management is activated).'}</p>
<p>{l s='In this case, quantities correspond to the real-stock quantities in the warehouses connected with the current shop, or current group of shops.'}</p>
<br/>
<p>{l s='For packs: If it has products that use advanced stock management, you have to specify a common warehouse for these products in the pack.'}</p>
<p>{l s='Also, please note that when a product has combinations, its default combination will be used in stock movements.'}</p>
</div>
<br />
<h4>{l s='Available quantities for sale'}</h4>
<div class="separation"></div>
{if $show_quantities == true}
<div class="warn" id="available_quantity_ajax_msg" style="display: none;"></div>
<div class="error" id="available_quantity_ajax_error_msg" style="display: none;"></div>
<div class="conf" id="available_quantity_ajax_success_msg" style="display: none;"></div>
{if !$ps_stock_management}
<div class="hint" style="display:block; position:auto;">{l s='The stock management is disabled'}</div>
{else}
{include file="controllers/products/multishop/check_fields.tpl" product_tab="Quantities"}
<div class="hint" style="display:block; position:'auto';">
<p>{l s='This interface allows you to manage available quantities for sale for products. It also allows you to manage product combinations in the current shop.'}</p>
<p>{l s='You can choose whether or not to use the advanced stock management system for this product.'}</p>
<p>{l s='You can manually specify the quantities for the product/each product combination, or you can choose to automatically determine these quantities based on your stock (if advanced stock management is activated).'}</p>
<p>{l s='In this case, quantities correspond to the real-stock quantities in the warehouses connected with the current shop, or current group of shops.'}</p>
<br/>
<p>{l s='For packs: If it has products that use advanced stock management, you have to specify a common warehouse for these products in the pack.'}</p>
<p>{l s='Also, please note that when a product has combinations, its default combination will be used in stock movements.'}</p>
</div>
<br />
{if $show_quantities == true}
<div class="warn" id="available_quantity_ajax_msg" style="display: none;"></div>
<div class="error" id="available_quantity_ajax_error_msg" style="display: none;"></div>
<div class="conf" id="available_quantity_ajax_success_msg" style="display: none;"></div>
<table cellpadding="5" style="width:100%">
<tbody>
<tr {if $product->is_virtual || $product->cache_is_pack}style="display:none;"{/if} class="stockForVirtualProduct">
<td valign="top" style="vertical-align:top;">
<input
{if $product->advanced_stock_management == 1 && $stock_management_active == 1}
value="1" checked="checked"
{else}
value="0"
{/if}
{if $stock_management_active == 0 || $product->cache_is_pack}
disabled="disabled"
{/if}
type="checkbox" name="advanced_stock_management" class="advanced_stock_management" id="advanced_stock_management" />
<label style="float:none;font-weight:normal" for="advanced_stock_management">
{l s='I want to use the advanced stock management system for this product.'}
{if $stock_management_active == 0 && !$product->cache_is_pack}
&nbsp;-&nbsp;<b>{l s='This requires you to enable advanced stock management.'}</b>
{else if $product->cache_is_pack}
&nbsp;-&nbsp;<b>{l s='This parameter depends on the product(s) in the pack.'}</b>
{/if}
</label>
<br /><br />
</td>
</tr>
<tr {if $product->is_virtual || $product->cache_is_pack}style="display:none;"{/if} class="stockForVirtualProduct">
<td valign="top" style="vertical-align:top;">
<input
{if $product->depends_on_stock == 1 && $stock_management_active == 1}
checked="checked"
{/if}
{if $stock_management_active == 0 || $product->advanced_stock_management == 0 || $product->cache_is_pack}
disabled="disabled"
{/if}
type="radio" name="depends_on_stock" class="depends_on_stock" id="depends_on_stock_1" value="1"/>
<label style="float:none;font-weight:normal" for="depends_on_stock_1">
{l s='Available quantities for current product and its combinations are based on warehouse stock. '}
{if ($stock_management_active == 0 || $product->advanced_stock_management == 0) && !$product->cache_is_pack}
&nbsp;-&nbsp;<b>{l s='This requires you to enable advanced stock management globally or for this product.'}</b>
{else if $product->cache_is_pack}
&nbsp;-&nbsp;<b>{l s='This parameter depends on the product(s) in the pack.'}</b>
{/if}
</label>
<br /><br />
</td>
</tr>
<table cellpadding="5" style="width:100%">
<tbody>
<tr {if $product->is_virtual || $product->cache_is_pack}style="display:none;"{/if} class="stockForVirtualProduct">
<td valign="top" style="vertical-align:top;">
<input
{if $product->advanced_stock_management == 1 && $stock_management_active == 1}
value="1" checked="checked"
{else}
value="0"
{/if}
{if $stock_management_active == 0 || $product->cache_is_pack}
disabled="disabled"
{/if}
type="checkbox" name="advanced_stock_management" class="advanced_stock_management" id="advanced_stock_management" />
<label style="float:none;font-weight:normal" for="advanced_stock_management">
{l s='I want to use the advanced stock management system for this product.'}
{if $stock_management_active == 0 && !$product->cache_is_pack}
&nbsp;-&nbsp;<b>{l s='This requires you to enable advanced stock management.'}</b>
{else if $product->cache_is_pack}
&nbsp;-&nbsp;<b>{l s='This parameter depends on the product(s) in the pack.'}</b>
{/if}
</label>
<br /><br />
</td>
</tr>
<tr {if $product->is_virtual || $product->cache_is_pack}style="display:none;"{/if} class="stockForVirtualProduct">
<td valign="top" style="vertical-align:top;">
<input
{if $product->depends_on_stock == 1 && $stock_management_active == 1}
checked="checked"
{/if}
{if $stock_management_active == 0 || $product->advanced_stock_management == 0 || $product->cache_is_pack}
disabled="disabled"
{/if}
type="radio" name="depends_on_stock" class="depends_on_stock" id="depends_on_stock_1" value="1"/>
<label style="float:none;font-weight:normal" for="depends_on_stock_1">
{l s='Available quantities for current product and its combinations are based on warehouse stock. '}
{if ($stock_management_active == 0 || $product->advanced_stock_management == 0) && !$product->cache_is_pack}
&nbsp;-&nbsp;<b>{l s='This requires you to enable advanced stock management globally or for this product.'}</b>
{else if $product->cache_is_pack}
&nbsp;-&nbsp;<b>{l s='This parameter depends on the product(s) in the pack.'}</b>
{/if}
</label>
<br /><br />
</td>
</tr>
<tr {if $product->is_virtual || $product->cache_is_pack}style="display:none;"{/if} class="stockForVirtualProduct">
<td valign="top" style="vertical-align:top;">
<input
{if $product->depends_on_stock == 0 || $stock_management_active == 0}
checked="checked"
{/if}
type="radio" name="depends_on_stock" class="depends_on_stock" id="depends_on_stock_0" value="0"/>
<label style="float:none;font-weight:normal" for="depends_on_stock_0">
{l s='I want to specify available quantities manually.'}
</label>
<br /><br />
</td>
</tr>
{if isset($pack_quantity)}
<tr>
<td valign="top" style="text-align:left;vertical-align:top;">
<p><b>{l s='When a product has combinations, quantities will be based on the default combination.'}</b></p>
<p><b>{l s='Given the quantities of the products in this pack, the maximum quantity should be:'} {$pack_quantity}</b></p>
</td>
</tr>
{/if}
<tr>
<td valign="top" style="text-align:left;vertical-align:top;">
<table class="table" cellpadding="0" cellspacing="0" style="width:100%;">
<colgroup>
<col width="50">
<col>
</colgroup>
<thead>
<tr>
<th>{l s='Quantity'}</th>
<th>{l s='Designation'}</th>
</tr>
</thead>
<tbody>
{foreach from=$attributes item=attribute}
<tr>
<td class="available_quantity" id="qty_{$attribute['id_product_attribute']}">
<span>{$available_quantity[$attribute['id_product_attribute']]}</span>
<input type="text" value="{$available_quantity[$attribute['id_product_attribute']]|htmlentities}"/>
</td>
<td>{$product_designation[$attribute['id_product_attribute']]}</td>
</tr>
{/foreach}
</tbody>
</table>
</td>
</tr>
<tr id="when_out_of_stock">
<td>
<table style="margin-top: 15px;">
<tbody>
<tr>
<td class="col-left"><label>{l s='When out of stock:'}</label></td>
<td style="padding-bottom:5px;">
<ul class="listForm">
<li>
<input {if $product->out_of_stock == 0} checked="checked" {/if} id="out_of_stock_1" type="radio" checked="checked" value="0" class="out_of_stock" name="out_of_stock">
<label id="label_out_of_stock_1" class="t" for="out_of_stock_1">{l s='Deny orders'}</label>
<tr {if $product->is_virtual || $product->cache_is_pack}style="display:none;"{/if} class="stockForVirtualProduct">
<td valign="top" style="vertical-align:top;">
<input
{if $product->depends_on_stock == 0 || $stock_management_active == 0}
checked="checked"
{/if}
type="radio" name="depends_on_stock" class="depends_on_stock" id="depends_on_stock_0" value="0"/>
<label style="float:none;font-weight:normal" for="depends_on_stock_0">
{l s='I want to specify available quantities manually.'}
</label>
<br /><br />
</td>
</tr>
{if isset($pack_quantity)}
<tr>
<td valign="top" style="text-align:left;vertical-align:top;">
<p><b>{l s='When a product has combinations, quantities will be based on the default combination.'}</b></p>
<p><b>{l s='Given the quantities of the products in this pack, the maximum quantity should be:'} {$pack_quantity}</b></p>
</td>
</tr>
{/if}
<tr>
<td valign="top" style="text-align:left;vertical-align:top;">
<table class="table" cellpadding="0" cellspacing="0" style="width:100%;">
<colgroup>
<col width="50">
<col>
</colgroup>
<thead>
<tr>
<th>{l s='Quantity'}</th>
<th>{l s='Designation'}</th>
</tr>
</thead>
<tbody>
{foreach from=$attributes item=attribute}
<tr>
<td class="available_quantity" id="qty_{$attribute['id_product_attribute']}">
<span>{$available_quantity[$attribute['id_product_attribute']]}</span>
<input type="text" value="{$available_quantity[$attribute['id_product_attribute']]|htmlentities}"/>
</td>
<td>{$product_designation[$attribute['id_product_attribute']]}</td>
</tr>
{/foreach}
</tbody>
</table>
</td>
</tr>
<tr id="when_out_of_stock">
<td>
<table style="margin-top: 15px;">
<tbody>
<tr>
<td class="col-left"><label>{l s='When out of stock:'}</label></td>
<td style="padding-bottom:5px;">
<ul class="listForm">
<li>
<input {if $product->out_of_stock == 0} checked="checked" {/if} id="out_of_stock_1" type="radio" checked="checked" value="0" class="out_of_stock" name="out_of_stock">
<label id="label_out_of_stock_1" class="t" for="out_of_stock_1">{l s='Deny orders'}</label>
</li>
<li>
<input {if $product->out_of_stock == 1} checked="checked" {/if} id="out_of_stock_2" type="radio" value="1" class="out_of_stock" name="out_of_stock">
<label id="label_out_of_stock_2" class="t" for="out_of_stock_2">{l s='Allow orders'}</label>
</li>
<li>
<input {if $product->out_of_stock == 1} checked="checked" {/if} id="out_of_stock_2" type="radio" value="1" class="out_of_stock" name="out_of_stock">
<label id="label_out_of_stock_2" class="t" for="out_of_stock_2">{l s='Allow orders'}</label>
</li>
<li>
<input {if $product->out_of_stock == 2} checked="checked" {/if} id="out_of_stock_3" type="radio" value="2" class="out_of_stock" name="out_of_stock">
<label id="label_out_of_stock_3" class="t" for="out_of_stock_3">
{l s='Default'}:
{if $order_out_of_stock == 1}
<i>{l s='Allow orders'}</i>
{else}
<i>{l s='Deny orders'}</i>
{/if}
<a class="confirm_leave" href="index.php?tab=AdminPPreferences&token={$token_preferences}">
{l s='as set in Preferences'}
</a>
</label>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
{else}
<div class="warn">
<p>{l s='It is not possible to manage quantities when:'}</p>
<ul>
<li>{l s='You are currently managing all of your shops.'}</li>
<li>{l s='You are currently managing a group of shops where quantities are not shared between every shop in this group.'}</li>
<li>{l s='You are currently managing a shop that is in a group where quantities are shared between every shop in this group.'}</li>
</ul>
</div>
<input {if $product->out_of_stock == 2} checked="checked" {/if} id="out_of_stock_3" type="radio" value="2" class="out_of_stock" name="out_of_stock">
<label id="label_out_of_stock_3" class="t" for="out_of_stock_3">
{l s='Default'}:
{if $order_out_of_stock == 1}
<i>{l s='Allow orders'}</i>
{else}
<i>{l s='Deny orders'}</i>
{/if}
<a class="confirm_leave" href="index.php?tab=AdminPPreferences&token={$token_preferences}">
{l s='as set in Preferences'}
</a>
</label>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
{else}
<div class="warn">
<p>{l s='It is not possible to manage quantities when:'}</p>
<ul>
<li>{l s='You are currently managing all of your shops.'}</li>
<li>{l s='You are currently managing a group of shops where quantities are not shared between every shop in this group.'}</li>
<li>{l s='You are currently managing a shop that is in a group where quantities are shared between every shop in this group.'}</li>
</ul>
</div>
{/if}
{/if}
<div class="separation"></div>
<h4>{l s='Availability settings'}</h4>
<table cellpadding="5">
{if !$ps_stock_management}
<tr>
<td colspan="2">{l s='The stock management is disabled'}</td>
</tr>
{/if}
{if !$has_attribute}
<tr>
<td class="col-left"><label>{l s='Minimum quantity:'}</label></td>
@@ -206,41 +203,43 @@
</td>
</tr>
{/if}
<tr>
<td class="col-left">
{include file="controllers/products/multishop/checkbox.tpl" field="available_now" type="default" multilang="true"}
<label>{l s='Displayed text when in-stock:'}</label>
</td>
<td style="padding-bottom:5px;" class="col-right">
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_value=$product->available_now
input_name='available_now'}
<span class="hint" name="help_box">{l s='Forbidden characters:'} <>;=#{}<span class="hint-pointer">&nbsp;</span></span>
</td>
</tr>
<tr>
<td class="col-left">
{include file="controllers/products/multishop/checkbox.tpl" field="available_later" type="default" multilang="true"}
<label>{l s='Displayed text when back-ordereding is allowed:'}</label>
</td>
<td style="padding-bottom:5px;" class="col-right">
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_value=$product->available_later
input_name='available_later'}
<span class="hint" name="help_box">{l s='Forbidden characters:'} <>;=#{}<span class="hint-pointer">&nbsp;</span></span>
</td>
</tr>
{if !$countAttributes}
{if $ps_stock_management}
<tr>
<td class="col-left"><label>{l s='Available date:'}</label></td>
<td style="padding-bottom:5px;">
<input id="available_date" name="available_date" value="{$product->available_date}" class="datepicker"
style="text-align: center;" type="text" />
<p>{l s='The available date when this product is out of stock.'}</p>
<td class="col-left">
{include file="controllers/products/multishop/checkbox.tpl" field="available_now" type="default" multilang="true"}
<label>{l s='Displayed text when in-stock:'}</label>
</td>
<td style="padding-bottom:5px;" class="col-right">
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_value=$product->available_now
input_name='available_now'}
<span class="hint" name="help_box">{l s='Forbidden characters:'} <>;=#{}<span class="hint-pointer">&nbsp;</span></span>
</td>
</tr>
<tr>
<td class="col-left">
{include file="controllers/products/multishop/checkbox.tpl" field="available_later" type="default" multilang="true"}
<label>{l s='Displayed text when back-ordereding is allowed:'}</label>
</td>
<td style="padding-bottom:5px;" class="col-right">
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_value=$product->available_later
input_name='available_later'}
<span class="hint" name="help_box">{l s='Forbidden characters:'} <>;=#{}<span class="hint-pointer">&nbsp;</span></span>
</td>
</tr>
{if !$countAttributes}
<tr>
<td class="col-left"><label>{l s='Available date:'}</label></td>
<td style="padding-bottom:5px;">
<input id="available_date" name="available_date" value="{$product->available_date}" class="datepicker"
style="text-align: center;" type="text" />
<p>{l s='The available date when this product is out of stock.'}</p>
</td>
</tr>
{/if}
{/if}
</table>
@@ -398,11 +398,7 @@
$(document).ready(function(){
{block name="autoload_tinyMCE"}
tinySetup({
editor_selector :"autoload_rte",
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull|cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,undo,redo",
theme_advanced_buttons2 : "link,unlink,anchor,image,cleanup,code,|,forecolor,backcolor,|,hr,removeformat,visualaid,|,charmap,media,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons3 : "",
theme_advanced_buttons4 : ""
editor_selector :"autoload_rte"
});
{/block}
});
@@ -119,8 +119,7 @@
{if $table_id} id={$table_id}{/if}
class="table {if $table_dnd}tableDnD{/if} {$table}"
cellpadding="0" cellspacing="0"
style="width: 100%; margin-bottom:10px;"
>
style="width: 100%; margin-bottom:10px;">
<col width="10px" />
{foreach $fields_display AS $key => $params}
<col {if isset($params.width) && $params.width != 'auto'}width="{$params.width}px"{/if}/>
@@ -146,8 +145,10 @@
</span>
{if (!isset($params.orderby) || $params.orderby) && !$simple_header}
<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>
<a href="{$currentIndex}&{$table}Orderby={$key|urlencode}&{$table}Orderway=desc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
<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}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
<img border="0" src="../img/admin/up{if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}_d{/if}.gif" /></a>
{elseif !$simple_header}
<br />&nbsp;
{/if}
@@ -30,7 +30,7 @@
<li>
{counter start=1 assign="count"}
{foreach from=$modules_list item=module}
{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",row alt"}}
<div style="width:400px">{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",row alt"}}</div>
{if $count %2 == 0}
</li>
<li>
@@ -39,7 +39,7 @@
{/foreach}
</li>
{else}
<tr><td><b>{l s='No modules available in this section.'}</b></td></tr>
<tr><td><div style="font-weight:700;margin-top:20px">{l s='No modules available in this section.'}</b></td></tr>
{/if}
</ul>
</div>
@@ -35,7 +35,7 @@
</a>
{if $k == 'modules-list'}
<div id="modules_list_container" style="display:none">
<div style="float:right;top:-5px">
<div style="float:right;margin:5px">
<a href="#" onclick="$('#modules_list_container').slideUp();return false;"><img alt="X" src="../img/admin/close.png"></a>
</div>
<div id="modules_list_loader"><img src="../img/loader.gif" alt="" border="0"></div>
+4 -5
View File
@@ -604,8 +604,8 @@ class CategoryCore extends ObjectModel
return (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
}
$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, product_attribute_shop.`id_product_attribute`, product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, pl.`description`, pl.`description_short`, pl.`available_now`,
pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, image_shop.`id_image`,
$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, MAX(product_attribute_shop.id_product_attribute) id_product_attribute, product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, pl.`description`, pl.`description_short`, pl.`available_now`,
pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, MAX(image_shop.`id_image`) id_image,
il.`legend`, m.`name` AS manufacturer_name, cl.`name` AS category_default,
DATEDIFF(product_shop.`date_add`, DATE_SUB(NOW(),
INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).'
@@ -633,12 +633,11 @@ class CategoryCore extends ObjectModel
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m
ON m.`id_manufacturer` = p.`id_manufacturer`
WHERE product_shop.`id_shop` = '.(int)$context->shop->id.'
AND (pa.id_product_attribute IS NULL OR product_attribute_shop.id_shop='.(int)$context->shop->id.')
AND (i.id_image IS NULL OR image_shop.id_shop='.(int)$context->shop->id.')
AND cp.`id_category` = '.(int)$this->id
.($active ? ' AND product_shop.`active` = 1' : '')
.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '')
.($id_supplier ? ' AND p.id_supplier = '.(int)$id_supplier : '');
.($id_supplier ? ' AND p.id_supplier = '.(int)$id_supplier : '')
.' GROUP BY product_shop.id_product';
if ($random === true)
{
+1 -1
View File
@@ -84,7 +84,7 @@ class CustomerMessageCore extends ObjectModel
LEFT OUTER JOIN `'._DB_PREFIX_.'employee` e
ON e.`id_employee` = cm.`id_employee`
WHERE ct.id_order = '.(int)$id_order.'
AND '.(!$private ? 'cm.`private` = 0' : '').'
'.(!$private ? 'AND cm.`private` = 0' : '').'
GROUP BY cm.id_customer_message
ORDER BY cm.date_add DESC
');
+10 -10
View File
@@ -312,16 +312,16 @@ class FeatureCore extends ObjectModel
*/
public static function cleanPositions()
{
$return = true;
$sql = '
UPDATE `'._DB_PREFIX_.'feature` f LEFT JOIN
(SELECT @i := @i +1 AS rank, id_feature, position
FROM `'._DB_PREFIX_.'feature` JOIN (SELECT @i :=1) dummy
ORDER by position) AS f2
USING(id_feature)
SET f.position = f2.rank-1';
$return = Db::getInstance()->executeS($sql);
return $return;
return Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'feature` f
LEFT JOIN (
SELECT @i := @i +1 AS rank, id_feature, position
FROM `'._DB_PREFIX_.'feature`
JOIN (SELECT @i :=1) dummy
ORDER by position
) AS f2
USING (id_feature)
SET f.position = f2.rank - 1');
}
/**
+11 -1
View File
@@ -393,7 +393,17 @@ class HookCore extends ObjectModel
if ($check_exceptions)
{
$exceptions = $moduleInstance->getExceptions($array['id_hook']);
if (in_array(Dispatcher::getInstance()->getController(), $exceptions))
$controller = Dispatcher::getInstance()->getController();
if (in_array($controller, $exceptions))
continue;
//retro compat of controller names
$matching_name = array(
'authentication' => 'auth',
'compare' => 'products-comparison',
);
if (isset($matching_name[$controller]) && in_array($matching_name[$controller], $exceptions))
continue;
if (Validate::isLoadedObject($context->employee) && !$moduleInstance->getPermission('view', $context->employee))
continue;
+102 -55
View File
@@ -190,19 +190,22 @@ class LanguageCore extends ObjectModel
return $themes;
}
public function add($autodate = true, $nullValues = false)
public function add($autodate = true, $nullValues = false, $only_add = false)
{
if (!parent::add($autodate))
return false;
if ($only_add)
return true;
// create empty files if they not exists
$this->_generateFiles();
// @todo Since a lot of modules are not in right format with their primary keys name, just get true ...
$resUpdateSQL = $this->loadUpdateSQL();
$resUpdateSQL = true;
return $resUpdateSQL && Tools::generateHtaccess();
Tools::generateHtaccess();
return $resUpdateSQL;
}
public function toggleStatus()
@@ -681,66 +684,66 @@ class LanguageCore extends ObjectModel
return Tools::generateHtaccess();
}
public static function checkAndAddLanguage($iso_code)
public static function checkAndAddLanguage($iso_code, $lang_pack = false, $only_add = false, $params_lang = null)
{
if (Language::getIdByIso($iso_code))
return true;
else
$lang = new Language();
$lang->iso_code = $iso_code;
$lang->active = true;
if (!$lang_pack)
$lang_pack = Tools::jsonDecode(Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version='._PS_VERSION_.'&iso_lang='.$iso_code));
if ($lang_pack)
{
if (@fsockopen('www.prestashop.com', 80))
if (isset($lang_pack->name)
&& isset($lang_pack->version)
&& isset($lang_pack->iso_code))
$lang->name = $lang_pack->name;
}
elseif ($params_lang !== null && is_array($params_lang))
{
foreach ($params_lang as $key => $value)
$lang->$key = $value;
}
else
return false;
if (!$lang->add(true, false, $only_add))
return false;
$flag = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/flags/jpeg/'.$iso_code.'.jpg');
if ($flag != null && !preg_match('/<body>/', $flag))
{
$file = fopen(dirname(__FILE__).'/../img/l/'.(int)$lang->id.'.jpg', 'w');
if ($file)
{
$lang = new Language();
$lang->iso_code = $iso_code;
$lang->active = true;
if ($lang_pack = Tools::jsonDecode(Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version='._PS_VERSION_.'&iso_lang='.$iso_code)))
{
if (isset($lang_pack->name)
&& isset($lang_pack->version)
&& isset($lang_pack->iso_code))
$lang->name = $lang_pack->name;
}
if (!$lang->name || !$lang->add())
return false;
$insert_id = (int)$lang->id;
if ($lang_pack)
{
$flag = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/flags/jpeg/'.$iso_code.'.jpg');
if ($flag != null && !preg_match('/<body>/', $flag))
{
$file = fopen(dirname(__FILE__).'/../img/l/'.$insert_id.'.jpg', 'w');
if ($file)
{
fwrite($file, $flag);
fclose($file);
}
else
Language::_copyNoneFlag($insert_id);
}
else
Language::_copyNoneFlag($insert_id);
}
else
Language::_copyNoneFlag($insert_id);
$files_copy = array(
'/en.jpg',
'/en-default-'.ImageType::getFormatedName('thickbox').'.jpg',
'/en-default-'.ImageType::getFormatedName('home').'.jpg',
'/en-default-'.ImageType::getFormatedName('large').'.jpg',
'/en-default-'.ImageType::getFormatedName('medium').'.jpg',
'/en-default-'.ImageType::getFormatedName('small').'.jpg',
'/en-default-'.ImageType::getFormatedName('scene').'.jpg'
);
foreach (array(_PS_CAT_IMG_DIR_, _PS_MANU_IMG_DIR_, _PS_PROD_IMG_DIR_, _PS_SUPP_IMG_DIR_) as $to)
foreach ($files_copy as $file)
@copy(dirname(__FILE__).'/../img/l'.$file, $to.str_replace('/en', '/'.$iso_code, $file));
return true;
fwrite($file, $flag);
fclose($file);
}
else
return false;
Language::_copyNoneFlag((int)$lang->id);
}
else
Language::_copyNoneFlag((int)$lang->id);
$files_copy = array(
'/en.jpg',
'/en-default-'.ImageType::getFormatedName('thickbox').'.jpg',
'/en-default-'.ImageType::getFormatedName('home').'.jpg',
'/en-default-'.ImageType::getFormatedName('large').'.jpg',
'/en-default-'.ImageType::getFormatedName('medium').'.jpg',
'/en-default-'.ImageType::getFormatedName('small').'.jpg',
'/en-default-'.ImageType::getFormatedName('scene').'.jpg'
);
foreach (array(_PS_CAT_IMG_DIR_, _PS_MANU_IMG_DIR_, _PS_PROD_IMG_DIR_, _PS_SUPP_IMG_DIR_) as $to)
foreach ($files_copy as $file)
@copy(dirname(__FILE__).'/../img/l'.$file, $to.str_replace('/en', '/'.$iso_code, $file));
return true;
}
protected static function _copyNoneFlag($id)
@@ -772,6 +775,50 @@ class LanguageCore extends ObjectModel
return self::$countActiveLanguages;
}
public static function downloadAndInstallLanguagePack($iso, $version = null, $params = null)
{
require_once(_PS_TOOL_DIR_.'tar/Archive_Tar.php');
if (!Validate::isLanguageIsoCode($iso))
return false;
if ($version == null)
$version = _PS_VERSION_;
$lang_pack = false;
$lang_pack_ok = false;
$errors = array();
$file = _PS_TRANSLATIONS_DIR_.$iso.'.gzip';
if (!$lang_pack_link = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version='.$version.'&iso_lang='.$iso))
$errors[] = Tools::displayError('Archive cannot be downloaded from prestashop.com.');
elseif (!$lang_pack = Tools::jsonDecode($lang_pack_link))
$errors[] = Tools::displayError('Error occurred when language was checked according to your Prestashop version.');
elseif ($content = Tools::file_get_contents('http://translations.prestashop.com/download/lang_packs/gzip/'.$lang_pack->version.'/'.$lang_pack->iso_code.'.gzip'))
if (!@file_put_contents($file, $content))
$errors[] = Tools::displayError('Server does not have permissions for writing.');
if (file_exists($file))
{
$gz = new Archive_Tar($file, true);
$files_list = $gz->listContent();
if (!$gz->extract(_PS_TRANSLATIONS_DIR_.'../', false))
$errors[] = Tools::displayError('Cannot decompress the translation file for the following language: ').(string)$iso;
if (!Language::checkAndAddLanguage((string)$iso, $lang_pack, false, $params))
$errors[] = Tools::displayError('An error occurred while creating the language: ').(string)$iso;
else
{
// Reset cache
Language::loadLanguages();
AdminTranslationsController::checkAndAddMailsFiles($iso, $files_list);
AdminTranslationsController::addNewTabs($iso, $files_list);
}
@unlink($file);
}
else
$errors[] = Tools::displayError('No language pack is available for your version.');
return count($errors) ? $errors : true;
}
/**
* Check if more on than one language is activated
*
+4 -36
View File
@@ -295,47 +295,15 @@ class LocalizationPackCore
// if we are not in an installation context or if the pack is not available in the local directory
if (Language::getIdByIso($attributes['iso_code']) && !$install_mode)
continue;
$errno = 0;
$errstr = '';
if (!$lang_pack_link = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version='._PS_VERSION_.'&iso_lang='.$attributes['iso_code']))
$this->_errors[] = Tools::displayError('Archive cannot be downloaded from prestashop.com.');
elseif (!$lang_pack = Tools::jsonDecode($lang_pack_link))
$this->_errors[] = Tools::displayError('Error occurred when language was checked according to your Prestashop version.');
elseif ($content = Tools::file_get_contents('http://translations.prestashop.com/download/lang_packs/gzip/'.$lang_pack->version.'/'.$attributes['iso_code'].'.gzip'))
{
$file = _PS_TRANSLATIONS_DIR_.$attributes['iso_code'].'.gzip';
if (file_put_contents($file, $content))
{
$gz = new Archive_Tar($file, true);
$files_list = $gz->listContent();
if (!$gz->extract(_PS_TRANSLATIONS_DIR_.'../', false))
{
$this->_errors[] = Tools::displayError('Cannot decompress the translation file for the following language: ').(string)$attributes['iso_code'];
return false;
}
else
{
AdminTranslationsController::checkAndAddMailsFiles($attributes['iso_code'], $files_list);
AdminTranslationsController::addNewTabs($attributes['iso_code'], $files_list);
}
if (!Language::checkAndAddLanguage((string)$attributes['iso_code']))
{
$this->_errors[] = Tools::displayError('An error occurred while creating the language: ').(string)$attributes['iso_code'];
return false;
}
@unlink($file);
}
else
$this->_errors[] = Tools::displayError('Server does not have permissions for writing.');
}
$errors = Language::downloadAndInstallLanguagePack($attributes['iso_code'], $attributes['version']);
if ($errors !== true && is_array($errors))
$this->_errors = array_merge($this->_errors, $errors);
}
// change the default language if there is only one language in the localization pack
if (!count($this->_errors) && $install_mode && isset($attributes['iso_code']) && count($xml->languages->language) == 1)
$this->iso_code_lang = $attributes['iso_code'];
return true;
return !count($this->_errors);
}
protected function _installUnits($xml)
+3 -4
View File
@@ -325,9 +325,9 @@ class ManufacturerCore extends ObjectModel
$alias = 'stock.';
else
$alias = 'p.';
$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pa.`id_product_attribute`,
$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, MAX(product_attribute_shop.`id_product_attribute`) id_product_attribute,
pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`,
pl.`meta_title`, pl.`name`, image_shop.`id_image`, il.`legend`, m.`name` AS manufacturer_name,
pl.`meta_title`, pl.`name`, MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` AS manufacturer_name,
DATEDIFF(
product_shop.`date_add`,
DATE_SUB(
@@ -353,7 +353,6 @@ class ManufacturerCore extends ObjectModel
WHERE p.`id_manufacturer` = '.(int)$id_manufacturer.'
'.($active ? ' AND product_shop.`active` = 1' : '').'
'.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').'
AND (product_attribute_shop.default_on = 1 OR product_attribute_shop.default_on IS NULL)
AND p.`id_product` IN (
SELECT cp.`id_product`
FROM `'._DB_PREFIX_.'category_group` cg
@@ -362,7 +361,7 @@ class ManufacturerCore extends ObjectModel
($active_category ? ' INNER JOIN `'._DB_PREFIX_.'category` ca ON cp.`id_category` = ca.`id_category` AND ca.`active` = 1' : '').'
WHERE cg.`id_group` '.$sql_groups.'
)
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))
GROUP BY product_shop.id_product
ORDER BY '.$alias.'`'.bqSQL($order_by).'` '.pSQL($order_way).'
LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n;
+2
View File
@@ -859,6 +859,8 @@ abstract class ObjectModelCore
$values = $this->$field;
if (!is_array($values))
$values = array($this->id_lang => $values);
if (!isset($values[Configuration::get('PS_LANG_DEFAULT')]))
$values[Configuration::get('PS_LANG_DEFAULT')] = '';
foreach ($values as $id_lang => $value)
{
+5 -5
View File
@@ -124,7 +124,7 @@ class PackCore extends Product
if (!Pack::isFeatureActive())
return array();
$sql = 'SELECT p.*, product_shop.*, pl.*, image_shop.`id_image`, il.`legend`, cl.`name` AS category_default, a.quantity AS pack_quantity, product_shop.`id_category_default`, a.id_product_pack
$sql = 'SELECT p.*, product_shop.*, pl.*, MAX(image_shop.`id_image`) id_image, il.`legend`, cl.`name` AS category_default, a.quantity AS pack_quantity, product_shop.`id_category_default`, a.id_product_pack
FROM `'._DB_PREFIX_.'pack` a
LEFT JOIN `'._DB_PREFIX_.'product` p ON p.id_product = a.id_product_item
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
@@ -138,8 +138,8 @@ class PackCore extends Product
ON product_shop.`id_category_default` = cl.`id_category`
AND cl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('cl').'
WHERE product_shop.`id_shop` = '.(int)Context::getContext()->shop->id.'
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))
AND a.`id_product_pack` = '.(int)$id_product;
AND a.`id_product_pack` = '.(int)$id_product.'
GROUP BY product_shop.id_product';
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
foreach ($result as &$line)
@@ -169,7 +169,7 @@ class PackCore extends Product
return array();
$sql = '
SELECT p.*, product_shop.*, pl.*, image_shop.`id_image`, il.`legend`
SELECT p.*, product_shop.*, pl.*, MAX(image_shop.`id_image`) id_image, il.`legend`
FROM `'._DB_PREFIX_.'product` p
NATURAL LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
'.Shop::addSqlAssociation('product', 'p').'
@@ -179,7 +179,7 @@ class PackCore extends Product
WHERE pl.`id_lang` = '.(int)$id_lang.'
'.Shop::addSqlRestrictionOnLang('pl').'
AND p.`id_product` IN ('.$packs.')
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))';
GROUP BY product_shop.id_product';
if ($limit)
$sql .= ' LIMIT '.(int)$limit;
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
+16 -18
View File
@@ -1991,7 +1991,7 @@ class ProductCore extends ObjectModel
$sql = new DbQuery();
$sql->select(
'p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`,
pl.`meta_keywords`, pl.`meta_title`, pl.`name`, image_shop.`id_image`, il.`legend`, m.`name` AS manufacturer_name,
pl.`meta_keywords`, pl.`meta_title`, pl.`name`, MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` AS manufacturer_name,
DATEDIFF(
product_shop.`date_add`,
DATE_SUB(
@@ -2013,7 +2013,7 @@ class ProductCore extends ObjectModel
$sql->leftJoin('manufacturer', 'm', 'm.`id_manufacturer` = p.`id_manufacturer`');
$sql->where('product_shop.`active` = 1');
$sql->where('(image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1)');
if ($front)
$sql->where('product_shop.`visibility` IN ("both", "catalog")');
$sql->where('
@@ -2032,16 +2032,16 @@ class ProductCore extends ObjectModel
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
WHERE cg.`id_group` '.$sql_groups.')'
);
$sql->groupBy('product_shop.id_product');
$sql->orderBy((isset($order_by_prefix) ? pSQL($order_by_prefix).'.' : '').'`'.pSQL($order_by).'` '.pSQL($order_way));
$sql->limit($nb_products, $page_number * $nb_products);
if (Combination::isFeatureActive())
{
$sql->select('pa.id_product_attribute');
$sql->select('MAX(product_attribute_shop.id_product_attribute) id_product_attribute');
$sql->leftOuterJoin('product_attribute', 'pa', 'p.`id_product` = pa.`id_product`');
$sql->join(Shop::addSqlAssociation('product_attribute', 'pa', false, 'product_attribute_shop.default_on = 1'));
$sql->where('(pa.id_product_attribute IS NULL OR product_attribute_shop.id_shop='.(int)$context->shop->id.')');
}
$sql->join(Product::sqlStock('p', Combination::isFeatureActive() ? 'product_attribute_shop' : 0));
@@ -2111,7 +2111,7 @@ class ProductCore extends ObjectModel
$sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
// Please keep 2 distinct queries because RAND() is an awful way to achieve this result
$sql = 'SELECT product_shop.id_product, product_attribute_shop.id_product_attribute
$sql = 'SELECT product_shop.id_product, MAX(product_attribute_shop.id_product_attribute) id_product_attribute
FROM `'._DB_PREFIX_.'product` p
'.Shop::addSqlAssociation('product', 'p').'
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (product_shop.id_product = pa.id_product)
@@ -2125,7 +2125,6 @@ class ProductCore extends ObjectModel
WHERE cg.`id_group` '.$sql_groups.'
)
'.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').'
AND (pa.id_product_attribute IS NULL OR product_attribute_shop.default_on = 1)
GROUP BY product_shop.id_product
ORDER BY RAND()';
@@ -2136,7 +2135,7 @@ class ProductCore extends ObjectModel
$sql = 'SELECT p.*, product_shop.*, stock.`out_of_stock` out_of_stock, pl.`description`, pl.`description_short`,
pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`,
p.`ean13`, p.`upc`, image_shop.`id_image`, il.`legend`
p.`ean13`, p.`upc`, MAX(image_shop.`id_image`) id_image, il.`legend`
FROM `'._DB_PREFIX_.'product` p
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (
p.`id_product` = pl.`id_product`
@@ -2148,7 +2147,7 @@ class ProductCore extends ObjectModel
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
'.Product::sqlStock('p', 0).'
WHERE p.id_product = '.(int)$id_product.'
AND (i.id_image IS NULL OR image_shop.id_shop='.(int)$context->shop->id.')';
GROUP BY product_shop.id_product';
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql);
if (!$row)
@@ -2228,9 +2227,9 @@ class ProductCore extends ObjectModel
$order_by = explode('.', $order_by);
$order_by = pSQL($order_by[0]).'.`'.pSQL($order_by[1]).'`';
}
$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description`, pl.`description_short`, product_attribute_shop.id_product_attribute,
$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description`, pl.`description_short`, MAX(product_attribute_shop.id_product_attribute) id_product_attribute,
pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`,
pl.`name`, image_shop.`id_image`, il.`legend`, m.`name` AS manufacturer_name,
pl.`name`, MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` AS manufacturer_name,
DATEDIFF(
p.`date_add`,
DATE_SUB(
@@ -2253,7 +2252,6 @@ class ProductCore extends ObjectModel
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`)
WHERE product_shop.`active` = 1
AND product_shop.`show_price` = 1
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))
'.($front ? ' AND p.`visibility` IN ("both", "catalog")' : '').'
'.((!$beginning && !$ending) ? ' AND p.`id_product` IN ('.((is_array($tab_id_product) && count($tab_id_product)) ? implode(', ', $tab_id_product) : 0).')' : '').'
AND p.`id_product` IN (
@@ -2262,7 +2260,7 @@ class ProductCore extends ObjectModel
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
WHERE cg.`id_group` '.$sql_groups.'
)
AND (pa.id_product_attribute IS NULL OR product_attribute_shop.default_on = 1)
GROUP BY product_shop.id_product
ORDER BY '.(isset($order_by_prefix) ? pSQL($order_by_prefix).'.' : '').pSQL($order_by).' '.pSQL($order_way).'
LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products;
@@ -3045,7 +3043,7 @@ class ProductCore extends ObjectModel
AND al.`id_lang` = '.(int)$id_lang.'
AND agl.`id_lang` = '.(int)$id_lang.'
GROUP BY id_attribute_group, id_product_attribute
ORDER BY ag.`position` ASC, a.`position` ASC';
ORDER BY ag.`position` ASC, a.`position` ASC, agl.`name` ASC';
return Db::getInstance()->executeS($sql);
}
@@ -3107,7 +3105,7 @@ class ProductCore extends ObjectModel
$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description`, pl.`description_short`, pl.`link_rewrite`,
pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`,
i.`id_image`, il.`legend`, m.`name` as manufacturer_name, cl.`name` AS category_default,
MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` as manufacturer_name, cl.`name` AS category_default,
DATEDIFF(
p.`date_add`,
DATE_SUB(
@@ -3131,9 +3129,9 @@ class ProductCore extends ObjectModel
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (p.`id_manufacturer`= m.`id_manufacturer`)
'.Product::sqlStock('p', 0).'
WHERE `id_product_1` = '.(int)$this->id.'
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))'.
($active ? ' AND product_shop.`active` = 1' : '');
WHERE `id_product_1` = '.(int)$this->id.
($active ? ' AND product_shop.`active` = 1' : '').'
GROUP BY product_shop.id_product';
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql))
return false;
foreach ($result as &$row)
@@ -4879,7 +4877,7 @@ class ProductCore extends ObjectModel
$result[] = array_merge($attribute, $group[0]);
}
$values_not_custom = Db::getInstance()->executeS('
SELECT DISTINCT a.`id_attribute`, a.`id_attribute_group`, a.`id_attribute_group`, al.`name` as `attribute`, agl.`name` as `group`
SELECT DISTINCT a.`id_attribute`, a.`id_attribute_group`, al.`name` as `attribute`, agl.`name` as `group`
FROM `'._DB_PREFIX_.'attribute` a
LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al
ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)Context::getContext()->language->id.')
+4 -4
View File
@@ -78,7 +78,7 @@ class ProductSaleCore
pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`,
pl.`meta_keywords`, pl.`meta_title`, pl.`name`,
m.`name` AS manufacturer_name, p.`id_manufacturer` as id_manufacturer,
image_shop.`id_image`, il.`legend`,
MAX(image_shop.`id_image`) id_image, il.`legend`,
ps.`quantity` AS sales, t.`rate`, pl.`meta_keywords`, pl.`meta_title`, pl.`meta_description`,
DATEDIFF(p.`date_add`, DATE_SUB(NOW(),
INTERVAL '.$interval.' DAY)) > 0 AS new
@@ -105,7 +105,7 @@ class ProductSaleCore
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
WHERE cg.`id_group` '.$sql_groups.'
)
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))
GROUP BY product_shop.id_product
ORDER BY `'.pSQL($order_by).'` '.pSQL($order_way).'
LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products;
@@ -136,7 +136,7 @@ class ProductSaleCore
$groups = FrontController::getCurrentCustomerGroups();
$sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
$sql = 'SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, image_shop.`id_image`, il.`legend`,
$sql = 'SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, MAX(image_shop.`id_image`) id_image, il.`legend`,
ps.`quantity` AS sales, p.`ean13`, p.`upc`, cl.`link_rewrite` AS category
FROM `'._DB_PREFIX_.'product_sale` ps
LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product`
@@ -158,7 +158,7 @@ class ProductSaleCore
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
WHERE cg.`id_group` '.$sql_groups.'
)
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))
GROUP BY product_shop.id_product
ORDER BY sales DESC
LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products;
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql))
+5 -10
View File
@@ -283,7 +283,7 @@ class SearchCore
$alias = 'product_shop.';
$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity,
pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`,
image_shop.`id_image`, il.`legend`, m.`name` manufacturer_name '.$score.', product_attribute_shop.`id_product_attribute`,
MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` manufacturer_name '.$score.', MAX(product_attribute_shop.`id_product_attribute`) id_product_attribute,
DATEDIFF(
p.`date_add`,
DATE_SUB(
@@ -305,8 +305,7 @@ class SearchCore
Shop::addSqlAssociation('image', 'i', false, 'image_shop.cover=1').'
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
WHERE p.`id_product` '.$product_pool.'
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))
AND (pa.id_product_attribute IS NULL OR product_attribute_shop.id_shop='.(int)$context->shop->id.')
GROUP BY product_shop.id_product
'.($order_by ? 'ORDER BY '.$alias.$order_by : '').($order_way ? ' '.$order_way : '').'
LIMIT '.(int)(($page_number - 1) * $page_size).','.(int)$page_size;
$result = $db->executeS($sql);
@@ -319,11 +318,7 @@ class SearchCore
AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').'
)
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product`)'.
Shop::addSqlAssociation('image', 'i', false, 'image_shop.cover=1').'
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
WHERE p.`id_product` '.$product_pool.'
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))';
WHERE p.`id_product` '.$product_pool;
$total = $db->getValue($sql);
if (!$result)
@@ -633,7 +628,7 @@ class SearchCore
}
$sql = 'SELECT DISTINCT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description_short`, pl.`link_rewrite`, pl.`name`,
image_shop.`id_image`, il.`legend`, m.`name` manufacturer_name, 1 position,
MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` manufacturer_name, 1 position,
DATEDIFF(
p.`date_add`,
DATE_SUB(
@@ -663,7 +658,7 @@ class SearchCore
SELECT id_group FROM '._DB_PREFIX_.'customer_group
WHERE id_customer = '.(int)$id_customer.')').'
AND t.`name` LIKE \'%'.pSQL($tag).'%\'
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))
GROUP BY product_shop.id_image
ORDER BY position DESC'.($orderBy ? ', '.$orderBy : '').($orderWay ? ' '.$orderWay : '').'
LIMIT '.(int)(($pageNumber - 1) * $pageSize).','.(int)$pageSize;
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql))
+2 -2
View File
@@ -258,7 +258,7 @@ class SupplierCore extends ObjectModel
pl.`meta_keywords`,
pl.`meta_title`,
pl.`name`,
image_shop.`id_image`,
MAX(image_shop.`id_image`) id_image,
il.`legend`,
s.`name` AS supplier_name,
DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.($nb_days_new_product).' DAY)) > 0 AS new,
@@ -286,7 +286,7 @@ class SupplierCore extends ObjectModel
($active_category ? ' INNER JOIN `'._DB_PREFIX_.'category` ca ON cp.`id_category` = ca.`id_category` AND ca.`active` = 1' : '').'
WHERE cg.`id_group` '.$sql_groups.'
)
AND ((image_shop.id_image IS NOT NULL OR i.id_image IS NULL) OR (image_shop.id_image IS NULL AND i.cover=1))
GROUP BY product_shop.id_product
ORDER BY '.$alias.pSQL($order_by).' '.pSQL($order_way).'
LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n;
+93
View File
@@ -1956,6 +1956,13 @@ exit;
}
}
public static function getSafeModeStatus()
{
if (!$safe_mode = @ini_get('safe_mode'))
$safe_mode = '';
return in_array(Tools::strtolower($safe_mode), array(1, 'on'));
}
/**
* @desc extract a zip file to the given directory
* @return bool success
@@ -2332,6 +2339,92 @@ exit;
return $pattern;
return preg_replace('/\\\[px]\{[a-z]\}{1,2}|(\/[a-z]*)u([a-z]*)$/i', "$1$2", $pattern);
}
public static function addonsRequest($request, $params = array())
{
$addons_url = 'api.addons.prestashop.com';
$postData = '';
$postDataArray = array(
'version' => _PS_VERSION_,
'iso_lang' => strtolower(Context::getContext()->language->iso_code),
'iso_code' => strtolower(Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))),
'shop_url' => urlencode(Tools::getShopDomain()),
'mail' => urlencode(Configuration::get('PS_SHOP_EMAIL'))
);
foreach ($postDataArray as $postDataKey => $postDataValue)
$postData .= '&'.$postDataKey.'='.$postDataValue;
$postData = ltrim($postData, '&');
// Config for each request
if ($request == 'native')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443, 'http://' => 80);
$postData .= '&method=listing&action=native';
}
if ($request == 'must-have')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443, 'http://' => 80);
$postData .= '&method=listing&action=must-have';
}
if ($request == 'customer')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443);
$postData .= '&method=listing&action=customer&username='.urlencode(trim(Context::getContext()->cookie->username_addons)).'&password='.urlencode(trim(Context::getContext()->cookie->password_addons));
}
if ($request == 'check_customer')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443);
$postData .= '&method=check_customer&username='.urlencode($params['username_addons']).'&password='.urlencode($params['password_addons']);
}
if ($request == 'module')
{
// Define protocol accepted and post data values for this request
if (isset($params['username_addons']) && isset($params['password_addons']))
{
$protocolsList = array('https://' => 443);
$postData .= '&method=module&id_module='.urlencode($params['id_module']).'&username='.urlencode($params['username_addons']).'&password='.urlencode($params['password_addons']);
}
else
{
$protocolsList = array('https://' => 443, 'http://' => 80);
$postData .= '&method=module&id_module='.urlencode($params['id_module']);
}
}
if ($request == 'install-modules')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443, 'http://' => 80);
$postData .= '&method=listing&action=install-modules';
}
// Make the request
$opts = array(
'http'=>array(
'method'=> 'POST',
'content' => $postData,
'header' => 'Content-type: application/x-www-form-urlencoded',
'timeout' => 5,
)
);
$context = stream_context_create($opts);
foreach ($protocolsList as $protocol => $port)
{
$content = Tools::file_get_contents($protocol.$addons_url, false, $context);
// If content returned, we cache it
if ($content)
return $content;
}
// No content, return false
return false;
}
}
/**
+2 -1
View File
@@ -53,7 +53,8 @@ class TranslateCore
$iso = Context::getContext()->language->iso_code;
if (empty($iso))
$iso = Language::getIsoById((int)(Configuration::get('PS_LANG_DEFAULT')));
include_once(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php');
if (file_exists(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php'))
include_once(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php');
}
if (isset($modules_tabs[strtolower($class)]))
+47 -112
View File
@@ -34,8 +34,6 @@ class AdminControllerCore extends Controller
public $confirmations = array();
public $shopShareDatas = false;
protected $addons_url = 'api.addons.prestashop.com';
public $_languages = array();
public $default_form_language;
public $allow_employee_form_lang;
@@ -583,7 +581,7 @@ class AdminControllerCore extends Controller
$headers = array();
foreach ($this->fields_list as $datas)
$headers[] = $datas['title'];
$headers[] = Tools::htmlentitiesDecodeUTF8($datas['title']);
$content = array();
foreach ($this->_list as $i => $row)
@@ -591,7 +589,7 @@ class AdminControllerCore extends Controller
$content[$i] = array();
foreach ($this->fields_list as $key => $value)
if (isset($row[$key]))
$content[$i][] = $row[$key];
$content[$i][] = Tools::htmlentitiesDecodeUTF8($row[$key]);
}
$this->context->smarty->assign(array(
@@ -1514,6 +1512,7 @@ class AdminControllerCore extends Controller
public function renderModulesList()
{
if ($this->getModulesList($this->filter_modules_list))
{
$helper = new Helper();
@@ -2214,7 +2213,18 @@ class AdminControllerCore extends Controller
$this->modules_list = array();
foreach($all_modules as $module)
{
if (in_array($module->name, $filter_modules_list))
$perm = true;
if ($module->id)
$perm &= Module::getPermissionStatic($module->id, 'configure');
else
{
$id_admin_module = Tab::getIdFromClassName('AdminModules');
$access = Profile::getProfileAccess($this->context->employee->id_profile, $id_admin_module);
if (!$access['edit'])
$perm &= false;
}
if (in_array($module->name, $filter_modules_list) && $perm)
{
$this->fillModuleData($module, 'select');
$this->modules_list[] = $module;
@@ -2853,83 +2863,6 @@ class AdminControllerCore extends Controller
return (bool)file_put_contents(_PS_ROOT_DIR_.$file_to_refresh, $content);
return false;
}
public function addonsRequest($request, $params = array())
{
$postData = '';
$postDataArray = array(
'version' => _PS_VERSION_,
'iso_lang' => strtolower(Context::getContext()->language->iso_code),
'iso_code' => strtolower(Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))),
'shop_url' => urlencode(Tools::getShopDomain()),
'mail' => urlencode(Configuration::get('PS_SHOP_EMAIL'))
);
foreach ($postDataArray as $postDataKey => $postDataValue)
$postData .= '&'.$postDataKey.'='.$postDataValue;
$postData = ltrim($postData, '&');
// Config for each request
if ($request == 'native')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443, 'http://' => 80);
$postData .= '&method=listing&action=native';
}
if ($request == 'must-have')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443, 'http://' => 80);
$postData .= '&method=listing&action=must-have';
}
if ($request == 'customer')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443);
$postData .= '&method=listing&action=customer&username='.urlencode(trim($this->context->cookie->username_addons)).'&password='.urlencode(trim($this->context->cookie->password_addons));
}
if ($request == 'check_customer')
{
// Define protocol accepted and post data values for this request
$protocolsList = array('https://' => 443);
$postData .= '&method=check_customer&username='.urlencode($params['username_addons']).'&password='.urlencode($params['password_addons']);
}
if ($request == 'module')
{
// Define protocol accepted and post data values for this request
if (isset($params['username_addons']) && isset($params['password_addons']))
{
$protocolsList = array('https://' => 443);
$postData .= '&method=module&id_module='.urlencode($params['id_module']).'&username='.urlencode($params['username_addons']).'&password='.urlencode($params['password_addons']);
}
else
{
$protocolsList = array('https://' => 443, 'http://' => 80);
$postData .= '&method=module&id_module='.urlencode($params['id_module']);
}
}
// Make the request
$opts = array(
'http'=>array(
'method'=> 'POST',
'content' => $postData,
'header' => 'Content-type: application/x-www-form-urlencoded',
'timeout' => 5,
)
);
$context = stream_context_create($opts);
foreach ($protocolsList as $protocol => $port)
{
$content = Tools::file_get_contents($protocol.$this->addons_url, false, $context);
// If content returned, we cache it
if ($content)
return $content;
}
// No content, return false
return false;
}
public function fillModuleData(&$module, $output_type = 'link', $back = null)
{
@@ -2943,9 +2876,11 @@ class AdminControllerCore extends Controller
if (file_exists('../modules/'.$module->name.'/logo.png'))
$module->logo = 'logo.png';
$module->optionsHtml = $this->displayModuleOptions($module, $output_type);
$module->options['install_url'] = self::$currentIndex.'&install='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$module->options['update_url'] = self::$currentIndex.'&update='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$module->options['uninstall_url'] = self::$currentIndex.'&uninstall='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$link_admin_modules = $this->context->link->getAdminLink('AdminModules', true);
$module->options['install_url'] = $link_admin_modules.'&install='.urlencode($module->name).'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$module->options['update_url'] = $link_admin_modules.'&update='.urlencode($module->name).'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$module->options['uninstall_url'] = $link_admin_modules.'&uninstall='.urlencode($module->name).'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$module->options['uninstall_onclick'] = ((!$module->onclick_option) ?
((empty($module->confirmUninstall)) ? '' : 'return confirm(\''.addslashes($module->confirmUninstall).'\');') :
@@ -2983,60 +2918,60 @@ class AdminControllerCore extends Controller
$this->translationsTab['Uninstall'] = $this->l('Uninstall');
$this->translationsTab['This action will permanently remove the module from the server. Are you sure you want to do this?'] = $this->l('This action will permanently remove the module from the server. Are you sure you want to do this?');
}
$link_admin_modules = $this->context->link->getAdminLink('AdminModules', true);
$modules_options = array(
'configure-module' => array(
'href' => self::$currentIndex.'&configure='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name),
'href' => $link_admin_modules.'&configure='.urlencode($module->name).'&tab_module='.$module->tab.'&module_name='.urlencode($module->name),
'onclick' => $module->onclick_option && isset($module->onclick_option_content['configure']) ? $module->onclick_option_content['configure'] : '',
'title' => '',
'text' => $this->translationsTab['Configure'],
'cond' => $module->id && isset($module->is_configurable) && $module->is_configurable,
),
'desactive-module' => array(
'href' => self::$currentIndex.'&token='.$this->token.'&module_name='.urlencode($module->name).'&'.($module->active ? 'enable=0' : 'enable=1').'&tab_module='.$module->tab,
'href' => $link_admin_modules.'&module_name='.urlencode($module->name).'&'.($module->active ? 'enable=0' : 'enable=1').'&tab_module='.$module->tab,
'onclick' => $module->active && $module->onclick_option && isset($module->onclick_option_content['desactive']) ? $module->onclick_option_content['desactive'] : '' ,
'title' => Shop::isFeatureActive() ? htmlspecialchars($module->active ? $this->translationsTab['Disable this module'] : $this->translationsTab['Enable this module for all shops']) : '',
'text' => $module->active ? $this->translationsTab['Disable'] : $this->translationsTab['Enable'],
'cond' => $module->id,
),
'reset-module' => array(
'href' => self::$currentIndex.'&token='.$this->token.'&module_name='.urlencode($module->name).'&reset&tab_module='.$module->tab,
'href' => $link_admin_modules.'&module_name='.urlencode($module->name).'&reset&tab_module='.$module->tab,
'onclick' => $module->onclick_option && isset($module->onclick_option_content['reset']) ? $module->onclick_option_content['reset'] : '',
'title' => '',
'text' => $this->translationsTab['Reset'],
'cond' => $module->id && $module->active,
),
'delete-module' => array(
'href' => self::$currentIndex.'&delete='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name),
'href' => $link_admin_modules.'&delete='.urlencode($module->name).'&tab_module='.$module->tab.'&module_name='.urlencode($module->name),
'onclick' => $module->onclick_option && isset($module->onclick_option_content['delete']) ? $module->onclick_option_content['delete'] : 'return confirm(\''.$this->translationsTab['This action will permanently remove the module from the server. Are you sure you want to do this?'].'\');',
'title' => '',
'text' => $this->translationsTab['Delete'],
'cond' => true,
),
);
$return = '';
foreach($modules_options as $option_name => $option)
{
if ($option['cond'])
{
if ($output_type == 'link')
$return .= '<span class="'.$option_name.'">
<a class="action_module" href="'.$option['href'].(!is_null($back) ? '&back='.urlencode($back) : '').'" onclick="'.$option['onclick'].'" title="'.$option['title'].'">'.$option['text'].'</a>
</span>';
else if ($output_type == 'select')
$return .= '<option id="'.$option_name.'" data-href="'.$option['href'].(!is_null($back) ? '&back='.urlencode($back) : '').'" data-onclick="'.$option['onclick'].'">'.$option['text'].'</option>';
}
}
if ($output_type == 'select')
{
if (!$module->id)
$return = '<option data-onclick="" data-href="'.self::$currentIndex.'&install='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(!is_null($back) ? '&back='.urlencode($back) : '').'" >'.$this->translationsTab['Install'].'</option>'.$return;
else
$return = '<option data-onclick="" data-href="'.self::$currentIndex.'&uninstall='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(!is_null($back) ? '&back='.urlencode($back) : '').'" >'.$this->translationsTab['Uninstall'].'</option>'.$return;
$return = '<select id="select_'.$module->name.'">'.$return.'</select>';
);
$return = '';
foreach ($modules_options as $option_name => $option)
{
if ($option['cond'])
{
if ($output_type == 'link')
$return .= '<span class="'.$option_name.'">
<a class="action_module" href="'.$option['href'].(!is_null($back) ? '&back='.urlencode($back) : '').'" onclick="'.$option['onclick'].'" title="'.$option['title'].'">'.$option['text'].'</a>
</span>';
elseif ($output_type == 'select')
$return .= '<option id="'.$option_name.'" data-href="'.$option['href'].(!is_null($back) ? '&back='.urlencode($back) : '').'" data-onclick="'.$option['onclick'].'">'.$option['text'].'</option>';
}
}
if ($output_type == 'select')
{
if (!$module->id)
$return = '<option data-onclick="" data-href="'.$link_admin_modules.'&install='.urlencode($module->name).'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(!is_null($back) ? '&back='.urlencode($back) : '').'" >'.$this->translationsTab['Install'].'</option>'.$return;
else
$return .= '<option data-onclick="" data-href="'.$link_admin_modules.'&uninstall='.urlencode($module->name).'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(!is_null($back) ? '&back='.urlencode($back) : '').'" >'.$this->translationsTab['Uninstall'].'</option>';
$return = '<select id="select_'.$module->name.'">'.$return.'</select>';
}
return $return;
}
}
+2 -3
View File
@@ -178,8 +178,6 @@ abstract class ModuleCore
}
$this->local_path = _PS_MODULE_DIR_.$this->name.'/';
}
$this->database_version = $this->version;
}
/**
@@ -187,6 +185,7 @@ abstract class ModuleCore
*/
public function install()
{
Hook::exec('actionModuleInstallBefore', array('object' => $this));
// Check module name validation
if (!Validate::isModuleName($this->name))
{
@@ -265,7 +264,7 @@ abstract class ModuleCore
// Adding Restrictions for client groups
Group::addRestrictionsForModule($this->id, Shop::getShops(true, null, true));
Hook::exec('actionModuleInstallAfter', array('object' => $this));
return true;
}
+4 -2
View File
@@ -1510,11 +1510,12 @@ class OrderCore extends ObjectModel
/**
* @return array return all shipping method for the current order
* state_name sql var is now deprecated - use order_state_name for the state name and carrier_name for the carrier_name
*/
public function getShipping()
{
return Db::getInstance()->executeS('
SELECT DISTINCT oc.`id_order_invoice`, oc.`weight`, oc.`shipping_cost_tax_excl`, oc.`shipping_cost_tax_incl`, c.`url`, oc.`id_carrier`, c.`name` as `state_name`, oc.`date_add`, "Delivery" as `type`, "true" as `can_edit`, oc.`tracking_number`, oc.`id_order_carrier`
SELECT DISTINCT oc.`id_order_invoice`, oc.`weight`, oc.`shipping_cost_tax_excl`, oc.`shipping_cost_tax_incl`, c.`url`, oc.`id_carrier`, c.`name` as `carrier_name`, oc.`date_add`, "Delivery" as `type`, "true" as `can_edit`, oc.`tracking_number`, oc.`id_order_carrier`, osl.`name` as order_state_name, c.`name` as state_name
FROM `'._DB_PREFIX_.'orders` o
LEFT JOIN `'._DB_PREFIX_.'order_history` oh
ON (o.`id_order` = oh.`id_order`)
@@ -1524,7 +1525,8 @@ class OrderCore extends ObjectModel
ON (oc.`id_carrier` = c.`id_carrier`)
LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl
ON (oh.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)Context::getContext()->language->id.')
WHERE oc.`id_order` = '.(int)$this->id);
WHERE o.`id_order` = '.(int)$this->id.'
GROUP BY c.id_carrier');
}
+11 -1
View File
@@ -249,7 +249,17 @@ class OrderDetailCore extends ObjectModel
$context = Context::getContext();
$this->context = $context->cloneContext();
}
public function delete()
{
if(!$res = parent::delete())
return false;
Db::getInstance()->delete('order_detail_tax', 'id_order_detail='.(int)$this->id);
return $res;
}
protected function setContext($id_shop)
{
if ($this->context->shop->id != $id_shop)
+30 -1
View File
@@ -39,7 +39,36 @@ class PDFGeneratorCore extends TCPDF
public $content;
public $font;
public $font_by_lang = array('ja' => 'cid0jp', 'bg' => 'freeserif', 'ru' => 'freeserif', 'el' => 'freeserif', 'vn' => 'dejavusans', 'pl' => 'dejavusans');
public $font_by_lang = array(
'ja' => 'cid0jp',
'bg' => 'freeserif',
'ru' => 'freeserif',
'uk' => 'freeserif',
'mk' => 'freeserif',
'el' => 'freeserif',
'vn' => 'dejavusans',
'pl' => 'dejavusans',
'ar' => 'dejavusans',
'fa' => 'dejavusans',
'ur' => 'dejavusans',
'az' => 'dejavusans',
'ca' => 'dejavusans',
'gl' => 'dejavusans',
'hr' => 'dejavusans',
'sr' => 'dejavusans',
'si' => 'dejavusans',
'cs' => 'dejavusans',
'sk' => 'dejavusans',
'ka' => 'dejavusans',
'he' => 'dejavusans',
'lo' => 'dejavusans',
'lv' => 'dejavusans',
'tr' => 'dejavusans',
'ko' => 'cid0kr',
'zh' => 'cid0cs',
'tw' => 'cid0cs',
'th' => 'freeserif'
);
public function __construct($use_cache = false)
+1
View File
@@ -228,6 +228,7 @@ class WebserviceRequestCore
'categories' => array('description' => 'The product categories','class' => 'Category'),
'combinations' => array('description' => 'The product combinations','class' => 'Combination'),
'configurations' => array('description' => 'Shop configuration', 'class' => 'Configuration'),
'contacts' => array('description' => 'Shop contacts','class' => 'Contact'),
'countries' => array('description' => 'The countries','class' => 'Country'),
'currencies' => array('description' => 'The currencies', 'class' => 'Currency'),
'customers' => array('description' => 'The e-shop\'s customers','class' => 'Customer'),
+9 -10
View File
@@ -151,19 +151,18 @@ if (defined('_PS_ADMIN_DIR_'))
if ($employee->id_profile != _PS_ADMIN_PROFILE_)
Shop::cacheShops(true);
$language = new Language($employee->id_lang);
$context->language = $language;
$cookie->id_lang = (int)$employee->id_lang;
}
else
{
/* if the language stored in the cookie is not available language, use default language */
if (isset($cookie->id_lang) && $cookie->id_lang)
$language = new Language($cookie->id_lang);
if (!isset($language) || !Validate::isLoadedObject($language))
$language = new Language(Configuration::get('PS_LANG_DEFAULT'));
$context->language = $language;
/* if the language stored in the cookie is not available language, use default language */
if (isset($cookie->id_lang) && $cookie->id_lang)
$language = new Language($cookie->id_lang);
if (!isset($language) || !Validate::isLoadedObject($language))
$language = new Language(Configuration::get('PS_LANG_DEFAULT'));
$context->language = $language;
if (!defined('_PS_ADMIN_DIR_'))
{
if (isset($cookie->id_customer) && (int)$cookie->id_customer)
{
$customer = new Customer($cookie->id_customer);
@@ -90,6 +90,41 @@ class AdminGroupsControllerCore extends AdminController
WHERE jc.`deleted` != 1
'.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).'
AND jcg.`id_group` = a.`id_group`) AS nb';
$groups = Group::getGroups(Context::getContext()->language->id, true);
if (Shop::isFeatureActive())
$this->fields_options = array(
'general' => array(
'title' => $this->l('Default groups options'),
'fields' => array(
'PS_UNIDENTIFIED_GROUP' => array(
'title' => $this->l('Visitors group:'),
'desc' => $this->l('The group defined for your un-identified visitors'),
'cast' => 'intval',
'type' => 'select',
'list' => $groups,
'identifier' => 'id_group'
),
'PS_GUEST_GROUP' => array(
'title' => $this->l('Guests group:'),
'desc' => $this->l('The group defined for your identified guest customers (used in guest checkout)'),
'cast' => 'intval',
'type' => 'select',
'list' => $groups,
'identifier' => 'id_group'
),
'PS_CUSTOMER_GROUP' => array(
'title' => $this->l('Customers group:'),
'desc' => $this->l('The group defined for your identified customers'),
'cast' => 'intval',
'type' => 'select',
'list' => $groups,
'identifier' => 'id_group'
),
),
'submit' => array()
),
);
}
public function setMedia()
+4 -7
View File
@@ -480,10 +480,8 @@ class AdminHomeControllerCore extends AdminController
$stream_context = @stream_context_create(array('http' => array('method'=> 'GET', 'timeout' => 2)));
// SCREENCAST
if (@fsockopen('screencasts.prestashop.com', 80, $errno, $errst, AdminHomeController::TIPS_TIMEOUT))
$result['screencast'] = 'OK';
else
$result['screencast'] = 'NOK';
$result['screencast'] = 'OK';
// PREACTIVATION
$result['partner_preactivation'] = $this->getBlockPartners();
@@ -491,8 +489,7 @@ class AdminHomeControllerCore extends AdminController
// DISCOVER PRESTASHOP
$result['discover_prestashop'] = '<div id="block_tips">'.$this->getBlockDiscover().'</div>';
if (@fsockopen('api.prestashop.com', 80, $errno, $errst, AdminHomeController::TIPS_TIMEOUT))
$result['discover_prestashop'] .= '<div class="row-news"><div id="block_discover"><iframe frameborder="no" style="margin: 0px; padding: 0px; width: 100%; height:300px; overflow:hidden;" src="'.$protocol.'://api.prestashop.com/rss2/news2.php?v='._PS_VERSION_.'&lang='.$isoUser.'"></iframe></div>';
$result['discover_prestashop'] .= '<div class="row-news"><div id="block_discover"><iframe frameborder="no" style="margin: 0px; padding: 0px; width: 100%; height:300px; overflow:hidden;" src="'.$protocol.'://api.prestashop.com/rss2/news2.php?v='._PS_VERSION_.'&lang='.$isoUser.'"></iframe></div>';
// SHOW TIPS OF THE DAY
$content = @file_get_contents($protocol.'://api.prestashop.com/partner/tipsoftheday/?protocol='.$protocol.'&iso_country='.$isoCountry.'&iso_lang='.Tools::strtolower($isoUser), false, $stream_context);
@@ -672,7 +669,7 @@ class AdminHomeControllerCore extends AdminController
}
if (!$this->isFresh(Module::CACHE_FILE_DEFAULT_COUNTRY_MODULES_LIST, 86400))
file_put_contents(_PS_ROOT_DIR_.Module::CACHE_FILE_DEFAULT_COUNTRY_MODULES_LIST, $this->addonsRequest('native'));
file_put_contents(_PS_ROOT_DIR_.Module::CACHE_FILE_DEFAULT_COUNTRY_MODULES_LIST, Tools::addonsRequest('native'));
$tpl_vars['upgrade'] = $upgrade;
+4 -1
View File
@@ -645,7 +645,7 @@ class AdminImportControllerCore extends AdminController
do $uniqid_path = _PS_UPLOAD_DIR_.uniqid(); while (file_exists($uniqid_path));
file_put_contents($uniqid_path, $field);
$tab = '';
if(!empty($uniqid_path))
if (!empty($uniqid_path))
{
$fd = fopen($uniqid_path, 'r');
$tab = fgetcsv($fd, MAX_LINE_SIZE, $separator);
@@ -1261,6 +1261,9 @@ class AdminImportControllerCore extends AdminController
foreach (Product::$definition['fields'] as $key => $array)
if ($array['type'] == Product::TYPE_FLOAT)
$product->{$key} = str_replace(',', '.', $product->{$key});
// Indexation is already 0 if it's a new product, but not if it's an update
$product->indexed = 0;
$res = false;
$field_error = $product->validateFields(UNFRIENDLY_ERROR, true);
@@ -485,10 +485,10 @@ class AdminLanguagesControllerCore extends AdminController
$this->status = 'error';
$this->errors[] = '[TECHNICAL ERROR] ps_version not set or empty';
}
if (@fsockopen('www.prestashop.com', 80))
// Get all iso code available
if($lang_packs = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version='.(string)$_GET['ps_version'].'&iso_lang='.(string)$_GET['iso_lang']))
{
// Get all iso code available
$lang_packs = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version='.(string)$_GET['ps_version'].'&iso_lang='.(string)$_GET['iso_lang']);
$result = Tools::jsonDecode($lang_packs);
if ($lang_packs !== '' && $result && !isset($result->error))
{
@@ -510,7 +510,7 @@ class AdminLanguagesControllerCore extends AdminController
$this->errors[] = '[TECHNICAL ERROR] Server unreachable';
}
}
protected function checkEmployeeIdLang($current_id_lang)
{
//update employee lang if current id lang is disabled
+5 -3
View File
@@ -69,18 +69,20 @@ class AdminLoginControllerCore extends AdminController
}
if (file_exists(_PS_ADMIN_DIR_.'/../install'))
$this->context->smarty->assign('wrong_folder_name', true);
$this->context->smarty->assign('wrong_install_name', true);
if (file_exists(_PS_ADMIN_DIR_.'/../admin'))
{
{
$rand = sprintf('%04d', rand(0, 9999));
if (@rename(_PS_ADMIN_DIR_.'/../admin', _PS_ADMIN_DIR_.'/../admin'.$rand))
Tools::redirectAdmin('../admin'.$rand);
else
$this->context->smarty->assign(array(
'randomNb' => rand(100, 999),
'wrong_folder_name' => true
));
}
$this->context->smarty->assign(array(
'randomNb' => rand(0, 9999)
));
// Redirect to admin panel
if (Tools::isSubmit('redirect') && Validate::isControllerName(Tools::getValue('redirect')))
+24 -10
View File
@@ -156,7 +156,7 @@ class AdminModulesControllerCore extends AdminController
{
if (!$this->isFresh(Module::CACHE_FILE_DEFAULT_COUNTRY_MODULES_LIST, 86400))
{
if (file_put_contents(_PS_ROOT_DIR_.Module::CACHE_FILE_DEFAULT_COUNTRY_MODULES_LIST, $this->addonsRequest('native')))
if (file_put_contents(_PS_ROOT_DIR_.Module::CACHE_FILE_DEFAULT_COUNTRY_MODULES_LIST, Tools::addonsRequest('native')))
$this->status = 'refresh';
else
$this->status = 'error';
@@ -166,7 +166,7 @@ class AdminModulesControllerCore extends AdminController
if (!$this->isFresh(Module::CACHE_FILE_MUST_HAVE_MODULES_LIST, 86400))
{
if (file_put_contents(_PS_ROOT_DIR_.Module::CACHE_FILE_MUST_HAVE_MODULES_LIST, $this->addonsRequest('must-have')))
if (file_put_contents(_PS_ROOT_DIR_.Module::CACHE_FILE_MUST_HAVE_MODULES_LIST, Tools::addonsRequest('must-have')))
$this->status = 'refresh';
else
$this->status = 'error';
@@ -180,7 +180,7 @@ class AdminModulesControllerCore extends AdminController
{
if (!$this->isFresh(Module::CACHE_FILE_CUSTOMER_MODULES_LIST, 60))
{
if (file_put_contents(_PS_ROOT_DIR_.Module::CACHE_FILE_CUSTOMER_MODULES_LIST, $this->addonsRequest('customer')))
if (file_put_contents(_PS_ROOT_DIR_.Module::CACHE_FILE_CUSTOMER_MODULES_LIST, Tools::addonsRequest('customer')))
$this->status = 'refresh';
else
$this->status = 'error';
@@ -198,7 +198,7 @@ class AdminModulesControllerCore extends AdminController
public function ajaxProcessLogOnAddonsWebservices()
{
$content = $this->addonsRequest('check_customer', array('username_addons' => pSQL(trim(Tools::getValue('username_addons'))), 'password_addons' => pSQL(trim(Tools::getValue('password_addons')))));
$content = Tools::addonsRequest('check_customer', array('username_addons' => pSQL(trim(Tools::getValue('username_addons'))), 'password_addons' => pSQL(trim(Tools::getValue('password_addons')))));
$xml = @simplexml_load_string($content, null, LIBXML_NOCDATA);
if (!$xml)
die('KO');
@@ -250,11 +250,25 @@ class AdminModulesControllerCore extends AdminController
{
if (in_array($module->name, $tab_modules_list))
{
$this->fillModuleData($module, 'select', $back);
$perm = true;
if ($module->id)
$modules_list['installed'][] = $module;
$perm &= Module::getPermissionStatic($module->id, 'configure');
else
$modules_list['not_installed'][] = $module;
{
$id_admin_module = Tab::getIdFromClassName('AdminModules');
$access = Profile::getProfileAccess($this->context->employee->id_profile, $id_admin_module);
if (!$access['edit'])
$perm &= false;
}
if ($perm)
{
$this->fillModuleData($module, 'select', $back);
if ($module->id)
$modules_list['installed'][] = $module;
else
$modules_list['not_installed'][] = $module;
}
}
}
}
@@ -615,10 +629,10 @@ class AdminModulesControllerCore extends AdminController
if ($name == $modaddons->name && isset($modaddons->id) && ($this->logged_on_addons || $f['loggedOnAddons'] == 0))
{
if ($f['loggedOnAddons'] == 0)
if (file_put_contents('../modules/'.$modaddons->name.'.zip', $this->addonsRequest('module', array('id_module' => pSQL($modaddons->id)))))
if (file_put_contents('../modules/'.$modaddons->name.'.zip', Tools::addonsRequest('module', array('id_module' => pSQL($modaddons->id)))))
$this->extractArchive('../modules/'.$modaddons->name.'.zip', false);
if ($f['loggedOnAddons'] == 1 && $this->logged_on_addons)
if (file_put_contents('../modules/'.$modaddons->name.'.zip', $this->addonsRequest('module', array('id_module' => pSQL($modaddons->id), 'username_addons' => pSQL(trim($this->context->cookie->username_addons)), 'password_addons' => pSQL(trim($this->context->cookie->password_addons))))))
if (file_put_contents('../modules/'.$modaddons->name.'.zip', Tools::addonsRequest('module', array('id_module' => pSQL($modaddons->id), 'username_addons' => pSQL(trim($this->context->cookie->username_addons)), 'password_addons' => pSQL(trim($this->context->cookie->password_addons))))))
$this->extractArchive('../modules/'.$modaddons->name.'.zip', false);
}
}
@@ -781,7 +795,7 @@ class AdminModulesControllerCore extends AdminController
// Call appropriate module callback
if (!isset($ppmReturn))
$this->postProcessCallback();
if ($back = Tools::getValue('back'))
Tools::redirectAdmin($back);
}
@@ -303,7 +303,7 @@ class AdminModulesPositionsControllerCore extends AdminController
{
$url = $this->context->shop->getBaseURL().Dispatcher::getInstance()->createUrl('index', (int)$this->context->language->id, $live_edit_params);
if (Configuration::get('PS_REWRITING_SETTINGS'))
$url = str_replace('index.php', '', $url);
$url = str_replace('index.php', Language::getIsoById($this->context->employee->id_lang).'/', $url);
return $url;
}
+25 -7
View File
@@ -126,6 +126,15 @@ class AdminProductsControllerCore extends AdminController
if (Tools::getValue('reset_filter_category'))
$this->context->cookie->id_category_products_filter = false;
if (Shop::isFeatureActive() && $this->context->cookie->id_category_products_filter)
{
$category = new Category((int)$this->context->cookie->id_category_products_filter);
if (!$category->inShop())
{
$this->context->cookie->id_category_products_filter = false;
Tools::redirectAdmin($this->context->link->getAdminLink('AdminProducts'));
}
}
/* Join categories table */
if ($id_category = (int)Tools::getValue('productFilter_cl!name'))
{
@@ -162,7 +171,6 @@ class AdminProductsControllerCore extends AdminController
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON ('.$alias.'.`id_category_default` = cl.`id_category` AND b.`id_lang` = cl.`id_lang` AND cl.id_shop = '.(int)$this->context->shop->id.')
LEFT JOIN `'._DB_PREFIX_.'shop` shop ON (shop.id_shop = '.(int)$this->context->shop->id.')
LEFT JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (image_shop.`id_image` = i.`id_image` AND image_shop.`cover` = 1 AND image_shop.id_shop='.(int)$this->context->shop->id.')';
$this->_where .= 'AND (i.id_image IS NULL OR image_shop.id_shop='.(int)$this->context->shop->id.')';
}
else
{
@@ -170,7 +178,6 @@ class AdminProductsControllerCore extends AdminController
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON ('.$alias.'.`id_category_default` = cl.`id_category` AND b.`id_lang` = cl.`id_lang` AND cl.id_shop = a.id_shop_default)
LEFT JOIN `'._DB_PREFIX_.'shop` shop ON (shop.id_shop = a.id_shop_default)
LEFT JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (image_shop.`id_image` = i.`id_image` AND image_shop.`cover` = 1 AND image_shop.id_shop=a.id_shop_default)';
$this->_where .= 'AND (i.id_image IS NULL OR image_shop.id_shop=a.id_shop_default)';
}
$this->_select .= 'shop.name as shopname, ';
}
@@ -181,11 +188,15 @@ class AdminProductsControllerCore extends AdminController
$this->_join .= 'LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON ('.$alias.'.`id_category_default` = cl.`id_category` AND b.`id_lang` = cl.`id_lang` AND cl.id_shop = 1)';
}
$this->_select .= 'MAX('.$alias_image.'.id_image) id_image,';
$this->_join .= ($join_category ? 'INNER JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_product` = a.`id_product` AND cp.`id_category` = '.(int)$this->_category->id.')' : '').'
LEFT JOIN `'._DB_PREFIX_.'stock_available` sav ON (sav.`id_product` = a.`id_product` AND sav.`id_product_attribute` = 0
'.StockAvailable::addSqlShopRestriction(null, null, 'sav').') ';
$this->_select .= 'cl.name `name_category` '.($join_category ? ', cp.`position`' : '').', '.$alias_image.'.`id_image`, '.$alias.'.`price`, 0 AS price_final, sav.`quantity` as sav_quantity, '.$alias.'.`active`';
$this->_group = 'GROUP BY '.$alias.'.id_product';
$this->fields_list = array();
$this->fields_list['id_product'] = array(
'title' => $this->l('ID'),
@@ -356,7 +367,16 @@ class AdminProductsControllerCore extends AdminController
{
$result = parent::loadObject($opt);
if ($result && Validate::isLoadedObject($this->object))
{
if (Shop::getContext() == Shop::CONTEXT_SHOP && !$this->object->isAssociatedToShop())
{
$default_product = new Product((int)$this->object->id, false, null, (int)$this->object->id_shop_default);
$def = ObjectModel::getDefinition($this->object);
foreach ($def['fields'] as $field_name => $row)
$this->object->$field_name = $default_product->$field_name;
}
$this->object->loadStockData();
}
return $result;
}
@@ -710,6 +730,8 @@ class AdminProductsControllerCore extends AdminController
}
if (!count($this->errors))
$success &= $product->delete();
else
$success = 0;
}
}
@@ -2184,10 +2206,6 @@ class AdminProductsControllerCore extends AdminController
foreach ($this->available_tabs as $product_tab => $value)
{
// if it's the quantities tab and stock management is disabled, continue
if ($stock_management_active == 0 && $product_tab == 'Quantities')
continue;
// if it's the warehouses tab and advanced stock management is disabled, continue
if ($advanced_stock_management_active == 0 && $product_tab == 'Warehouses')
continue;
@@ -35,6 +35,7 @@ class AdminStatusesControllerCore extends AdminController
$this->colorOnBackground = false;
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
$this->context = Context::getContext();
$this->multishop_context = Shop::CONTEXT_ALL;
$this->imageType = 'gif';
$this->fieldImageSettings = array(
'name' => 'icon',
@@ -31,6 +31,7 @@ class AdminTabsControllerCore extends AdminController
public function __construct()
{
$this->context = Context::getContext();
$this->multishop_context = Shop::CONTEXT_ALL;
$this->table = 'tab';
$this->className = 'Tab';
$this->lang = true;
@@ -687,18 +687,25 @@ class AdminTranslationsControllerCore extends AdminController
if (pathinfo($file2check['filename'], PATHINFO_BASENAME) == 'index.php' && file_put_contents(_PS_TRANSLATIONS_DIR_.'../'.$file2check['filename'], Tools::getDefaultIndexContent()))
continue;
AdminTranslationsController::checkAndAddMailsFiles($iso_code, $files_list);
$this->checkAndAddThemesFiles($files_list, $themes_selected);
$tab_errors = AdminTranslationsController::addNewTabs($iso_code, $files_list);
if (count($tab_errors))
{
$this->errors += $tab_errors;
return false;
}
if (Validate::isLanguageFileName($filename))
{
if (!Language::checkAndAddLanguage($iso_code))
$conf = 20;
else
{
// Reset cache
Language::loadLanguages();
AdminTranslationsController::checkAndAddMailsFiles($iso_code, $files_list);
$this->checkAndAddThemesFiles($files_list, $themes_selected);
$tab_errors = AdminTranslationsController::addNewTabs($iso_code, $files_list);
if (count($tab_errors))
{
$this->errors += $tab_errors;
return false;
}
}
}
$this->redirect(false, (isset($conf) ? $conf : '15'));
}
@@ -719,32 +726,39 @@ class AdminTranslationsControllerCore extends AdminController
@stream_context_create(array('http' => array('method' => 'GET', 'timeout' => 5)))))
{
$file = _PS_TRANSLATIONS_DIR_.$arr_import_lang[0].'.gzip';
if (file_put_contents($file, $content))
if ((bool)@file_put_contents($file, $content))
{
$gz = new Archive_Tar($file, true);
$files_list = $gz->listContent();
if ($gz->extract(_PS_TRANSLATIONS_DIR_.'../', false))
if ($error = $gz->extract(_PS_TRANSLATIONS_DIR_.'../', false))
{
AdminTranslationsController::checkAndAddMailsFiles($arr_import_lang[0], $files_list);
$tab_errors = AdminTranslationsController::addNewTabs($arr_import_lang[0], $files_list);
if (count($tab_errors))
$this->errors += $tab_errors;
if (is_object($error) && !empty($error->message))
$this->errors[] = Tools::displayError('The archive cannot be extracted.'). ' '.$error->message;
else
{
if (!Language::checkAndAddLanguage($arr_import_lang[0]))
$conf = 20;
}
if (!unlink($file))
$this->errors[] = Tools::displayError('Cannot delete the archive.');
else
{
// Reset cache
Language::loadLanguages();
$this->redirect(false, (isset($conf) ? $conf : '15'));
AdminTranslationsController::checkAndAddMailsFiles($arr_import_lang[0], $files_list);
if ($tab_errors = AdminTranslationsController::addNewTabs($arr_import_lang[0], $files_list))
$this->errors += $tab_errors;
}
if (!unlink($file))
$this->errors[] = sprintf(Tools::displayError('Cannot delete the archive %s.'), $file);
$this->redirect(false, (isset($conf) ? $conf : '15'));
}
}
$this->errors[] = Tools::displayError('The archive cannot be extracted.');
if (!unlink($file))
$this->errors[] = Tools::displayError('Cannot delete the archive.');
elseif (!unlink($file))
$this->errors[] = sprintf(Tools::displayError('Cannot delete the archive %s.'), $file);
}
else
$this->errors[] = Tools::displayError('The server does not have permissions for writing.');
$this->errors[] = Tools::displayError('The server does not have permissions for writing.'. ' '.sprintf(Tools::displayError('Please check rights for %s'), dirname($file)));
}
else
$this->errors[] = Tools::displayError('Language not found.');
+3 -3
View File
@@ -379,6 +379,8 @@ class AuthControllerCore extends FrontController
$this->errors[] = Tools::displayError('An account using this email address has already been registered.', false);
// Preparing customer
$customer = new Customer();
$lastnameAddress = $_POST['lastname'];
$firstnameAddress = $_POST['firstname'];
$_POST['lastname'] = Tools::getValue('customer_lastname');
$_POST['firstname'] = Tools::getValue('customer_firstname');
@@ -387,7 +389,7 @@ class AuthControllerCore extends FrontController
{
if (Tools::isSubmit('submitGuestAccount') || !Tools::getValue('is_new_customer'))
{
if (!Tools::getValue('phone'))
if (!Tools::getValue('phone') && !Tools::getValue('phone_mobile'))
$error_phone = true;
}
elseif (((Configuration::get('PS_REGISTRATION_PROCESS_TYPE') || Configuration::get('PS_ORDER_PROCESS_TYPE'))
@@ -468,8 +470,6 @@ class AuthControllerCore extends FrontController
}
else // if registration type is in one step, we save the address
{
$lastnameAddress = $_POST['lastname'];
$firstnameAddress = $_POST['firstname'];
// Preparing address
$address = new Address();
$_POST['lastname'] = $lastnameAddress;
+2 -2
View File
@@ -21,8 +21,8 @@ needs please refer to http://www.prestashop.com for more information.
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
International Registered Trademark & Property of PrestaShop SA
NAME: Prestashop 1.5.3.1
VERSION: 1.5.3.1
NAME: Prestashop 1.5.4.0
VERSION: 1.5.4.0
VORBEREITUNG
===========
+2 -2
View File
@@ -21,8 +21,8 @@ needs please refer to http://www.prestashop.com for more information.
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
International Registered Trademark & Property of PrestaShop SA
NAME: Prestashop 1.5.3.1
VERSION: 1.5.3.1
NAME: Prestashop 1.5.4.0
VERSION: 1.5.4.0
PREPARATION
===========
+2 -2
View File
@@ -21,8 +21,8 @@ needs please refer to http://www.prestashop.com for more information.
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
International Registered Trademark & Property of PrestaShop SA
NAME: Prestashop 1.5.3.1
VERSION: 1.5.3.1
NAME: Prestashop 1.5.4.0
VERSION: 1.5.4.0
PREPARACIN
===========
+2 -2
View File
@@ -21,8 +21,8 @@ needs please refer to http://www.prestashop.com for more information.
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
International Registered Trademark & Property of PrestaShop SA
NAME: Prestashop 1.5.3.1
VERSION: 1.5.3.1
NAME: Prestashop 1.5.4.0
VERSION: 1.5.4.0
PREPARATION
===========
+2 -2
View File
@@ -21,8 +21,8 @@ needs please refer to http://www.prestashop.com for more information.
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
International Registered Trademark & Property of PrestaShop SA
NAME: Prestashop 1.5.3.1
VERSION: 1.5.3.1
NAME: Prestashop 1.5.4.0
VERSION: 1.5.4.0
PREPARAZIONE
===========
+1 -1
View File
@@ -237,7 +237,7 @@ class InstallXmlLoader
$default_lang = null;
foreach ($this->languages as $id_lang => $iso)
{
if ($iso == 'en')
if ($iso == $this->language->getLanguageIso())
$default_lang = $id_lang;
try
+2
View File
@@ -109,6 +109,8 @@ class InstallControllerHttpProcess extends InstallControllerHttp
{
$this->session->process_validated = array();
$this->session->database_clear = true;
if (Tools::getSafeModeStatus())
$this->session->safe_mode = true;
}
elseif (!Tools::getValue('submitNext'))
{
+5 -1
View File
@@ -4,5 +4,9 @@
<field name="id_carrier" relation="carrier"/>
<field name="id_group" relation="group"/>
</fields>
<entities/>
<entities>
<carrier_group id="carrier_group_1_1" id_carrier="carrier_1" id_group="Visitor"/>
<carrier_group id="carrier_group_1_2" id_carrier="carrier_1" id_group="Guest"/>
<carrier_group id="carrier_group_1_3" id_carrier="carrier_1" id_group="Customer"/>
</entities>
</entity_carrier_group>
+6
View File
@@ -265,5 +265,11 @@
<hook id="displayMyAccountBlock" live_edit="0">
<name>displayMyAccountBlock</name><title>My account block</title><description>This hook displays extra information within the 'my account' block"</description>
</hook>
<hook id="actionModuleInstallBefore" live_edit="0">
<name>actionModuleInstallBefore</name><title>actionModuleInstallBefore</title><description></description>
</hook>
<hook id="actionModuleInstallAfter" live_edit="0">
<name>actionModuleInstallAfter</name><title>actionModuleInstallAfter</title><description></description>
</hook>
</entities>
</entity_hook>
@@ -0,0 +1,63 @@
<?xml version="1.0"?>
<entity_attribute>
<attribute id="2GB">
<name>2GB</name>
</attribute>
<attribute id="4GB">
<name>4GB</name>
</attribute>
<attribute id="Metal">
<name>Metaliczny</name>
</attribute>
<attribute id="Blue">
<name>Niebieski</name>
</attribute>
<attribute id="Pink">
<name>Różowy</name>
</attribute>
<attribute id="Green">
<name>Zielony</name>
</attribute>
<attribute id="Orange">
<name>Pomarańczowy</name>
</attribute>
<attribute id="Optional_64GB_solid-state_drive">
<name>Opcjonalnie Dysk SSD - 64GB</name>
</attribute>
<attribute id="80GB_Parallel_ATA_Drive_4200_rpm">
<name>80GB Dysk ATA @ 4200 rpm</name>
</attribute>
<attribute id="1_60GHz_Intel_Core_2_Duo">
<name>1.60GHz Intel Core 2 Duo</name>
</attribute>
<attribute id="1_80GHz_Intel_Core_2_Duo">
<name>1.80GHz Intel Core 2 Duo</name>
</attribute>
<attribute id="80GB_20_000_Songs">
<name>80GB: 20,000 Songs</name>
</attribute>
<attribute id="160GB_40_000_Songs">
<name>160GB: 40,000 Songs</name>
</attribute>
<attribute id="Black">
<name>Czarny</name>
</attribute>
<attribute id="8GB">
<name>8GB</name>
</attribute>
<attribute id="16GB">
<name>16GB</name>
</attribute>
<attribute id="32GB">
<name>32GB</name>
</attribute>
<attribute id="Purple">
<name>Fioletowy</name>
</attribute>
<attribute id="Yellow">
<name>Żółty</name>
</attribute>
<attribute id="Red">
<name>Czerwony</name>
</attribute>
</entity_attribute>
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<entity_attribute_group>
<attribute_group id="Disk_space">
<name>Pojemność dysku</name>
<public_name>Pojemność dysku</public_name>
</attribute_group>
<attribute_group id="Color">
<name>Kolor</name>
<public_name>Kolor</public_name>
</attribute_group>
<attribute_group id="ICU">
<name>Procesor</name>
<public_name>Procesor</public_name>
</attribute_group>
</entity_attribute_group>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<list_attributegroup>
<attributegroup id="capacity">
<name><![CDATA[Dysk twardy]]></name>
</attributegroup>
<attributegroup id="capacity_public">
<name><![CDATA[Dysk twardy]]></name>
</attributegroup>
<attributegroup id="color">
<name><![CDATA[Kolor]]></name>
</attributegroup>
<attributegroup id="color_public">
<name><![CDATA[Kolor]]></name>
</attributegroup>
<attributegroup id="processor">
<name><![CDATA[Procesor]]></name>
</attributegroup>
<attributegroup id="processor_public">
<name><![CDATA[Procesor]]></name>
</attributegroup>
</list_attributegroup>
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<entity_carrier>
<carrier id="My_carrier" id_shop="1">
<delay>Dostawa następnego dnia!</delay>
</carrier>
</entity_carrier>
@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<entity_category>
<category id="iPods" id_shop="1">
<name>iPod</name>
<description>Teraz możesz kupić filmy na ITunes, a następnie zsynchronizować je ze swoim iPod, cały świat to Twój wielki teatr.</description>
<link_rewrite>muzyczne-ipod</link_rewrite>
<meta_title/>
<meta_keywords/>
<meta_description/>
</category>
<category id="Accessories" id_shop="1">
<name>Akcesoria</name>
<description>Fantastyczne akcesoria dla Twojego iPod</description>
<link_rewrite>akcesoria-ipod</link_rewrite>
<meta_title/>
<meta_keywords/>
<meta_description/>
</category>
<category id="Laptops" id_shop="1">
<name>Laptopy</name>
<description>Najnowocześniejsze laptopy od Apple</description>
<link_rewrite>laptopy</link_rewrite>
<meta_title>Laptoty Apple</meta_title>
<meta_keywords>Apple Laptopy MacBook Air</meta_keywords>
<meta_description>Piękne i szybkie laptopy Apple Mac Book Air</meta_description>
</category>
</entity_category>
@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<entity_feature>
<feature id="Height">
<name>Wysokość</name>
</feature>
<feature id="Width">
<name>Szerokość</name>
</feature>
<feature id="Depth">
<name>Głębokość</name>
</feature>
<feature id="Weight">
<name>Waga</name>
</feature>
<feature id="Headphone">
<name>Słuchawki</name>
</feature>
</entity_feature>
@@ -0,0 +1,45 @@
<?xml version="1.0"?>
<entity_feature_value>
<feature_value id="Jack_stereo">
<value>Jack stereo</value>
</feature_value>
<feature_value id="Mini-jack_stereo">
<value>Mini-jack stereo</value>
</feature_value>
<feature_value id="2_75_in">
<value>2.75 in</value>
</feature_value>
<feature_value id="2_06_in">
<value>2.06 in</value>
</feature_value>
<feature_value id="49_2_g">
<value>49.2 g</value>
</feature_value>
<feature_value id="0_26_in">
<value>0.26 in</value>
</feature_value>
<feature_value id="1_07_in">
<value>1.07 in</value>
</feature_value>
<feature_value id="1_62_in">
<value>1.62 in</value>
</feature_value>
<feature_value id="15_5_g">
<value>15.5 g</value>
</feature_value>
<feature_value id="0_41_in_clip_included">
<value>0.41 in (clip included)</value>
</feature_value>
<feature_value id="4_33_in">
<value>4.33 in</value>
</feature_value>
<feature_value id="2_76_in">
<value>2.76 in</value>
</feature_value>
<feature_value id="120g">
<value>120g</value>
</feature_value>
<feature_value id="0_31_in">
<value>0.31 in</value>
</feature_value>
</entity_feature_value>
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<list_featurevalue>
<featurevalue id="jack_stereo">
<value><![CDATA[Jack stereo]]></value>
</featurevalue>
<featurevalue id="mini_jack_stereo">
<value><![CDATA[Mini-jack stereo]]></value>
</featurevalue>
<featurevalue id="2.75in">
<value><![CDATA[2.75 in]]></value>
</featurevalue>
<featurevalue id="2.06in">
<value><![CDATA[2.06 in]]></value>
</featurevalue>
<featurevalue id="49.2g">
<value><![CDATA[49.2 g]]></value>
</featurevalue>
<featurevalue id="0.26in">
<value><![CDATA[0.26 in]]></value>
</featurevalue>
<featurevalue id="1.07in">
<value><![CDATA[1.07 in]]></value>
</featurevalue>
<featurevalue id="1.62in">
<value><![CDATA[1.62 in]]></value>
</featurevalue>
<featurevalue id="15.5g">
<value><![CDATA[15.5 g]]></value>
</featurevalue>
<featurevalue id="0.41in">
<value><![CDATA[0.41 in (clip included)]]></value>
</featurevalue>
<featurevalue id="4.33in">
<value><![CDATA[4.33 in]]></value>
</featurevalue>
<featurevalue id="2.76in">
<value><![CDATA[2.76 in]]></value>
</featurevalue>
<featurevalue id="120g">
<value><![CDATA[120g]]></value>
</featurevalue>
<featurevalue id="0.31in">
<value><![CDATA[0.31 in]]></value>
</featurevalue>
</list_featurevalue>
@@ -0,0 +1,81 @@
<?xml version="1.0"?>
<entity_image>
<image id="MacBook_Air">
<legend>MacBook Air</legend>
</image>
<image id="MacBook_Air_1">
<legend>MacBook Air</legend>
</image>
<image id="MacBook_Air_2">
<legend>MacBook Air</legend>
</image>
<image id="MacBook_Air_3">
<legend>MacBook Air</legend>
</image>
<image id="MacBook_Air_4">
<legend>MacBook Air</legend>
</image>
<image id="MacBook_Air_SuperDrive">
<legend> MacBook Air SuperDrive</legend>
</image>
<image id="iPod_touch">
<legend>iPod touch</legend>
</image>
<image id="iPod_touch_1">
<legend>iPod touch</legend>
</image>
<image id="iPod_touch_2">
<legend>iPod touch</legend>
</image>
<image id="iPod_touch_3">
<legend>iPod touch</legend>
</image>
<image id="iPod_touch_4">
<legend>iPod touch</legend>
</image>
<image id="iPod_touch_5">
<legend>iPod touch</legend>
</image>
<image id="housse-portefeuille-en-cuir">
<legend>housse-portefeuille-en-cuir</legend>
</image>
<image id="Shure_SE210_Sound-Isolating_Earphones_for_iPod_and_iPhone">
<legend>Shure SE210 Sound-Isolating Earphones for iPod and iPhone</legend>
</image>
<image id="iPod_Nano">
<legend>iPod Nano</legend>
</image>
<image id="iPod_Nano_1">
<legend>iPod Nano</legend>
</image>
<image id="iPod_Nano_2">
<legend>iPod Nano</legend>
</image>
<image id="iPod_Nano_3">
<legend>iPod Nano</legend>
</image>
<image id="iPod_Nano_4">
<legend>iPod Nano</legend>
</image>
<image id="iPod_Nano_5">
<legend>iPod Nano</legend>
</image>
<image id="iPod_Nano_6">
<legend>iPod Nano</legend>
</image>
<image id="iPod_Nano_7">
<legend>iPod Nano</legend>
</image>
<image id="iPod_shuffle">
<legend>iPod shuffle</legend>
</image>
<image id="iPod_shuffle_1">
<legend>iPod shuffle</legend>
</image>
<image id="iPod_shuffle_2">
<legend>iPod shuffle</legend>
</image>
<image id="iPod_shuffle_3">
<legend>iPod shuffle</legend>
</image>
</entity_image>
@@ -1,35 +1,35 @@
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../');
exit;
@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<entity_manufacturer>
<manufacturer id="Apple_Computer_Inc">
<description/>
<short_description/>
<meta_title/>
<meta_keywords/>
<meta_description/>
</manufacturer>
<manufacturer id="Shure_Incorporated">
<description/>
<short_description/>
<meta_title/>
<meta_keywords/>
<meta_description/>
</manufacturer>
</entity_manufacturer>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<entity_order_message>
<order_message id="Delay">
<name>Opóźnienie</name>
<message>Witamy,
Niestety jeden z produktów wybranych przez Ciebie w zamówieniu aktualnie nie jest dostępny. To może opóźnić odrobinę dostawę Twojego zamówienia.
Przepraszamy za zaistniałą sytuację i zrobimy wszystko co w naszej mocy by zamówienie dotarło do Państwa jak najszybciej.
Pozdrawiamy,</message>
</order_message>
</entity_order_message>
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<list_ordermessage>
<ordermessage id="delay">
<name><![CDATA[Opóźnienie]]></name>
<message><![CDATA[Witamy, Niestety jeden z produktów wybranych przez Ciebie w zamówieniu aktualnie nie jest dostępny. To może opóźnić odrobinę dostawę Twojego zamówienia.
Przepraszamy za zaistniałą sytuację i zrobimy wszystko co w naszej mocy by zamówienie dotarło do Państwa jak najszybciej. Pozdrawiamy,]]></message>
</ordermessage>
</list_ordermessage>
@@ -0,0 +1,135 @@
<?xml version="1.0"?>
<entity_product>
<product id="iPod_Nano" id_shop="1">
<description>&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Curved ahead of the curve.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;For those about to rock, we give you nine amazing colors. But that's only part of the story. Feel the curved, all-aluminum and glass design and you won't want to put iPod nano down.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Great looks. And brains, too.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;The new Genius feature turns iPod nano into your own highly intelligent, personal DJ. It creates playlists by finding songs in your library that go great together.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Made to move with your moves.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;The accelerometer comes to iPod nano. Give it a shake to shuffle your music. Turn it sideways to view Cover Flow. And play games designed with your moves in mind.&lt;/p&gt;</description>
<description_short>&lt;p&gt;New design. New features. Now in 8GB and 16GB. iPod nano rocks like never before.&lt;/p&gt;</description_short>
<link_rewrite>ipod-nano</link_rewrite>
<meta_description/>
<meta_keywords/>
<meta_title/>
<name>iPod Nano</name>
<available_now>Dostępny</available_now>
<available_later/>
</product>
<product id="iPod_shuffle" id_shop="1">
<description>&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Instant attachment.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Wear up to 500 songs on your sleeve. Or your belt. Or your gym shorts. iPod shuffle is a badge of musical devotion. Now in new, more brilliant colors.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Feed your iPod shuffle.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;iTunes is your entertainment superstore. It&#x2019;s your ultra-organized music collection and jukebox. And it&#x2019;s how you load up your iPod shuffle in one click.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Beauty and the beat.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Intensely colorful anodized aluminum complements the simple design of iPod shuffle. Now in blue, green, pink, red, and original silver.&lt;/p&gt;</description>
<description_short>&lt;p&gt;iPod shuffle, the world&#x2019;s most wearable music player, now clips on in more vibrant blue, green, pink, and red.&lt;/p&gt;</description_short>
<link_rewrite>ipod-shuffle</link_rewrite>
<meta_description/>
<meta_keywords/>
<meta_title/>
<name>iPod shuffle</name>
<available_now>Dostępny</available_now>
<available_later/>
</product>
<product id="MacBook_Air" id_shop="1">
<description>&lt;p&gt;MacBook Air is nearly as thin as your index finger. Practically every detail that could be streamlined has been. Yet it still has a 13.3-inch widescreen LED display, full-size keyboard, and large multi-touch trackpad. It&#x2019;s incomparably portable without the usual ultraportable screen and keyboard compromises.&lt;/p&gt;&lt;p&gt;The incredible thinness of MacBook Air is the result of numerous size- and weight-shaving innovations. From a slimmer hard drive to strategically hidden I/O ports to a lower-profile battery, everything has been considered and reconsidered with thinness in mind.&lt;/p&gt;&lt;p&gt;MacBook Air is designed and engineered to take full advantage of the wireless world. A world in which 802.11n Wi-Fi is now so fast and so available, people are truly living untethered &#x2014; buying and renting movies online, downloading software, and sharing and storing files on the web. &lt;/p&gt;</description>
<description_short>MacBook Air is ultrathin, ultraportable, and ultra unlike anything else. But you don&#x2019;t lose inches and pounds overnight. It&#x2019;s the result of rethinking conventions. Of multiple wireless innovations. And of breakthrough design. With MacBook Air, mobile computing suddenly has a new standard.</description_short>
<link_rewrite>macbook-air</link_rewrite>
<meta_description/>
<meta_keywords/>
<meta_title/>
<name>MacBook Air</name>
<available_now/>
<available_later/>
</product>
<product id="MacBook" id_shop="1">
<description>Every MacBook has a larger hard drive, up to 250GB, to store growing media collections and valuable data.&lt;br /&gt;&lt;br /&gt;The 2.4GHz MacBook models now include 2GB of memory standard &#x2014; perfect for running more of your favorite applications smoothly.</description>
<description_short>MacBook makes it easy to hit the road thanks to its tough polycarbonate case, built-in wireless technologies, and innovative MagSafe Power Adapter that releases automatically if someone accidentally trips on the cord.</description_short>
<link_rewrite>macbook</link_rewrite>
<meta_description/>
<meta_keywords/>
<meta_title/>
<name>MacBook</name>
<available_now/>
<available_later/>
</product>
<product id="iPod_touch" id_shop="1">
<description>&lt;h3&gt;Five new hands-on applications&lt;/h3&gt;&#xD;
&lt;p&gt;View rich HTML email with photos as well as PDF, Word, and Excel attachments. Get maps, directions, and real-time traffic information. Take notes and read stock and weather reports.&lt;/p&gt;&#xD;
&lt;h3&gt;Touch your music, movies, and more&lt;/h3&gt;&#xD;
&lt;p&gt;The revolutionary Multi-Touch technology built into the gorgeous 3.5-inch display lets you pinch, zoom, scroll, and flick with your fingers.&lt;/p&gt;&#xD;
&lt;h3&gt;Internet in your pocket&lt;/h3&gt;&#xD;
&lt;p&gt;With the Safari web browser, see websites the way they were designed to be seen and zoom in and out with a tap.&lt;sup&gt;2&lt;/sup&gt; And add Web Clips to your Home screen for quick access to favorite sites.&lt;/p&gt;&#xD;
&lt;h3&gt;What's in the box&lt;/h3&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;iPod touch&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;Earphones&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;USB 2.0 cable&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;Dock adapter&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;Polishing cloth&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;Stand&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;Quick Start guide&lt;/li&gt;&#xD;
&lt;/ul&gt;</description>
<description_short>&lt;ul&gt;&#xD;
&lt;li&gt;Revolutionary Multi-Touch interface&lt;/li&gt;&#xD;
&lt;li&gt;3.5-inch widescreen color display&lt;/li&gt;&#xD;
&lt;li&gt;Wi-Fi (802.11b/g)&lt;/li&gt;&#xD;
&lt;li&gt;8 mm thin&lt;/li&gt;&#xD;
&lt;li&gt;Safari, YouTube, Mail, Stocks, Weather, Notes, iTunes Wi-Fi Music Store, Maps&lt;/li&gt;&#xD;
&lt;/ul&gt;</description_short>
<link_rewrite>ipod-touch</link_rewrite>
<meta_description/>
<meta_keywords/>
<meta_title/>
<name>iPod touch</name>
<available_now/>
<available_later/>
</product>
<product id="Belkin_Leather_Folio_for_iPod_nano_-_Black_Chocolate" id_shop="1">
<description>&lt;p&gt;Lorem ipsum&lt;/p&gt;</description>
<description_short>&lt;p&gt;Lorem ipsum&lt;/p&gt;</description_short>
<link_rewrite>belkin-leather-folio-for-ipod-nano-black-chocolate</link_rewrite>
<meta_description/>
<meta_keywords/>
<meta_title/>
<name>Belkin Leather Folio for iPod nano - Black / Chocolate</name>
<available_now/>
<available_later/>
</product>
<product id="Shure_SE210_Sound-Isolating_Earphones_for_iPod_and_iPhone" id_shop="1">
<description>&lt;div class="product-overview-full"&gt;Using Hi-Definition MicroSpeakers to deliver full-range audio, the ergonomic and lightweight design of the SE210 earphones is ideal for premium on-the-go listening on your iPod or iPhone. They offer the most accurate audio reproduction from both portable and home stereo audio sources--for the ultimate in precision highs and rich low end. In addition, the flexible design allows you to choose the most comfortable fit from a variety of wearing positions. &lt;br /&gt; &lt;br /&gt; &lt;strong&gt;Features &lt;/strong&gt; &lt;br /&gt; &#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;Sound-isolating design &lt;/li&gt;&#xD;
&lt;li&gt; Hi-Definition MicroSpeaker with a single balanced armature driver &lt;/li&gt;&#xD;
&lt;li&gt; Detachable, modular cable so you can make the cable longer or shorter depending on your activity &lt;/li&gt;&#xD;
&lt;li&gt; Connector compatible with earphone ports on both iPod and iPhone &lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;strong&gt;Specifications &lt;/strong&gt;&lt;br /&gt; &#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;Speaker type: Hi-Definition MicroSpeaker &lt;/li&gt;&#xD;
&lt;li&gt; Frequency range: 25Hz-18.5kHz &lt;/li&gt;&#xD;
&lt;li&gt; Impedance (1kHz): 26 Ohms &lt;/li&gt;&#xD;
&lt;li&gt; Sensitivity (1mW): 114 dB SPL/mW &lt;/li&gt;&#xD;
&lt;li&gt; Cable length (with extension): 18.0 in./45.0 cm (54.0 in./137.1 cm) &lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;strong&gt;In the box&lt;/strong&gt;&lt;br /&gt; &#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;Shure SE210 earphones &lt;/li&gt;&#xD;
&lt;li&gt; Extension cable (36.0 in./91.4 cm) &lt;/li&gt;&#xD;
&lt;li&gt; Three pairs foam earpiece sleeves (small, medium, large) &lt;/li&gt;&#xD;
&lt;li&gt; Three pairs soft flex earpiece sleeves (small, medium, large) &lt;/li&gt;&#xD;
&lt;li&gt; One pair triple-flange earpiece sleeves &lt;/li&gt;&#xD;
&lt;li&gt; Carrying case &lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
Warranty&lt;br /&gt; Two-year limited &lt;br /&gt;(For details, please visit &lt;br /&gt;www.shure.com/PersonalAudio/CustomerSupport/ProductReturnsAndWarranty/index.htm.) &lt;br /&gt;&lt;br /&gt; Mfr. Part No.: SE210-A-EFS &lt;br /&gt;&lt;br /&gt;Note: Products sold through this website that do not bear the Apple Brand name are serviced and supported exclusively by their manufacturers in accordance with terms and conditions packaged with the products. Apple's Limited Warranty does not apply to products that are not Apple-branded, even if packaged or sold with Apple products. Please contact the manufacturer directly for technical support and customer service.&lt;/div&gt;</description>
<description_short>&lt;p&gt;Evolved from personal monitor technology road-tested by pro musicians and perfected by Shure engineers, the lightweight and stylish SE210 delivers full-range audio that's free from outside noise.&lt;/p&gt;</description_short>
<link_rewrite>ecouteurs-a-isolation-sonore-shure-se210-blanc</link_rewrite>
<meta_description/>
<meta_keywords/>
<meta_title/>
<name>Shure SE210 Sound-Isolating Earphones for iPod and iPhone</name>
<available_now/>
<available_later/>
</product>
</entity_product>
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<entity_profile>
<profile id="Administrator">
<name>Administrator</name>
</profile>
<profile id="Logistician">
<name>Logistyk</name>
</profile>
<profile id="Translator">
<name>Tłumacz</name>
</profile>
<profile id="Salesman">
<name>Sprzedawca</name>
</profile>
</entity_profile>
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<entity_scene>
<scene id="The_iPods_Nano">
<name>The iPods Nano</name>
</scene>
<scene id="The_iPods">
<name>The iPods</name>
</scene>
<scene id="The_MacBooks">
<name>The MacBooks</name>
</scene>
</entity_scene>
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<entity_supplier>
<supplier id="AppleStore">
<description/>
<meta_title/>
<meta_keywords/>
<meta_description/>
</supplier>
<supplier id="Shure_Online_Store">
<description/>
<meta_title/>
<meta_keywords/>
<meta_description/>
</supplier>
</entity_supplier>
@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<entity_tag>
<tag id="tag_5" name="apple" products="iPod_Nano,MacBook"/>
<tag id="tag_22" name="superdrive" products="MacBook"/>
<tag id="tag_23" name="Ipod touch" products="iPod_touch"/>
<tag id="tag_28" name="ipod" products="iPod_Nano,iPod_shuffle"/>
<tag id="tag_29" name="nano" products="iPod_Nano"/>
<tag id="tag_33" name="shuffle" products="iPod_shuffle"/>
</entity_tag>
@@ -1,35 +1,35 @@
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../');
exit;
+1 -1
View File
@@ -24,4 +24,4 @@
* International Registered Trademark & Property of PrestaShop SA
*/
define('_PS_INSTALL_VERSION_', '1.5.3.1');
define('_PS_INSTALL_VERSION_', '1.5.4.0');
+23
View File
@@ -214,5 +214,28 @@ return array(
'The installation of PrestaShop is quick and easy. In just a few moments, you will become part of a community consisting of more than 130,000 merchants. You are on the way to creating your own unique online store that you can manage easily every day.' => 'A instalação do PrestaShop é rápida e fácil. Em alguns minutos, você vai se tornar parte de uma comunidade composta por mais de 130 mil comerciantes. Você está no caminho certo para criar sua própria loja virtual original que você pode gerenciar facilmente todos os dias.',
'Continue the installation in:' => 'Continue a instalação em:',
'The language selection above only applies to the Installation Assistant. Once your store is installed, you can choose the language of your store from over %d translations, all for free!' => 'A seleção de idioma acima é válida somente para o Assistente de Instalação. Uma vez que a loja for instalada, você pode escolher o idioma da sua loja entre mais de %d traduções disponíveis, totalmente grátis!',
'The field %s is limited to %d characters' => 'O campo %s está limitado a %d caractéres',
'An error occurred during logo copy.' => 'Um erro ocorreu durante a cópia da logo',
'An error occurred during logo upload.' => 'Um erro ocorreu durante o carregamento da logo',
'PHP 5.1.2 or later is not enabled' => 'PHP 5.1.2 ou acima não está ativada',
'Cannot upload files' => 'Não é possível carregar arquivos',
'Cannot create new files and folders' => 'Nâo é possível criar novos arquivos e pastas',
'GD Library is not installed' => 'Biblioteca GD não está instalada',
'MySQL support is not activated' => 'Suporte MySQL não está ativado',
'Cannot open external URLs' => 'Não é possível abri URLs externas',
'PHP register global option is on' => 'Opção de Registro global PHP está ativada',
'GZIP compression is not activated' => 'Compressão GZIP não está ativada',
'Mcrypt extension is not enabled' => 'Extensão Mcrypt não está habilitada',
'Mbstring extension is not enabled' => 'Extensão Mbstring não está habilitada',
'PHP magic quotes option is enabled' => 'Opção PHP magic quotes está habilitada',
'Dom extension is not loaded' => 'Extensão Dom não está carregada',
'PDO MySQL extension is not loaded' => 'Extensão PDO MySQL não está carregada',
'Cannot copy flag language "%s"' => 'Não é possível copiar a bandeira do idioma "%s" ',
'Sign-up to the newsletter' => 'Inscreva-se para a newsletter',
'If you are experiencing problems during the installation process, please call our team at %s and one of our experts will be happy to help.' => 'Se você está tendo problemas durante o processo de instalação, por favor ligue para o nosso time no %s e um de nossos especialistas lhe ajudará.',
'Contact us!' => 'Contate-nos!',
'E-mail:' => 'E-mail:',
'PrestaShop requires at least 32M of memory to run, please check the memory_limit directive in php.ini or contact your host provider' => 'PrestaShop requer pelo menos 32M de memória para funcionar, por favor verifique memory_limit no php.ini ou contate seu provedor de hospedagem.',
'Your PHP sessions path is not writable - check with your hosting provider:' => 'O caminho para sessão PHP não pode ser escrito - verifique com o seu provedor de hospedagem',
),
);
+6 -5
View File
@@ -102,11 +102,11 @@ return array(
'Database server address:' => 'Datenbank-Adresse',
'If you want to use a different port, add :XX after your server address where XX is your port number.' => 'Möchten Sie einen anderen Port verwenden, fügen Sie hinter der Datenbank-Adresse :XX hinzu. XX steht für die Port-Nummer',
'Database name:' => 'Name der Datenbank:',
'Database login:' => 'Datenbank Benutzer',
'Database password:' => 'Datenbank Kennwort',
'Database Engine:' => 'Datenbank-Engine',
'Database login:' => 'Datenbank Benutzer:',
'Database password:' => 'Datenbank Kennwort:',
'Database Engine:' => 'Datenbank-Engine:',
'Tables prefix:' => 'Tabellen-Präfixe:',
'Drop existing tables (mode dev):' => 'Vorhandene Tabellen löschen',
'Drop existing tables (mode dev):' => 'Vorhandene Tabellen löschen:',
'Verify now!' => 'Jetz prüfen',
'E-mail delivery set-up' => 'E-Mail Einstellungen',
'Configure SMTP manually (advanced users only)' => 'Konfigurieren des SMTP-Mailversandes (nur für Fortgeschrittene Nutzer)',
@@ -147,7 +147,7 @@ return array(
'Refresh these settings' => 'Einstellungen aktualisieren',
'Welcome to the PrestaShop %s Installer.' => 'Herzlich Willkommen beim PrestaShop Installationsassistenten',
'The installation process should take only few minutes!' => 'Der Installationsprozess dauert nur ein paar Minuten!',
'If you need help, do not hesitate to check <a href="%1$s" target="_blank">our documentation</a> or to contact our support team: %2$s' => 'Falls Sie Hilfe benötigen, haben Sie folgende Möglichkeiten: <a href="%1$s" target="_blank">unsere Dokumentation einsehen</a>oder unser Support-Team zu kontaktieren: %2$s',
'If you need help, do not hesitate to check <a href="%1$s" target="_blank">our documentation</a> or to contact our support team: %2$s' => 'Falls Sie Hilfe benötigen, haben Sie folgende Möglichkeiten: <a href="%1$s" target="_blank">unsere Dokumentation einsehen</a> oder unser Support-Team zu kontaktieren: %2$s',
'Did you know?' => 'Wussten Sie schon?',
'PrestaShop and its community offers over %d different languages for free, directly accessible from your Back Office on the Localization tab.' => 'PrestaShop und Community bietet Ihnen den kostenlosen Zugang zu über %d verschiedenen Sprachen direkt aus Ihrem Back-office im Tabreiter "Tools"',
'License Agreements' => 'Validierung der Lizenzverträge',
@@ -232,5 +232,6 @@ return array(
'Display' => 'Anzeige',
'PrestaShop compatibility with your system environment has been verified!' => 'Die Kompatibilität von PrestaShop mit Ihrem System wurde überprüft!',
'PrestaShop requires at least 32M of memory to run, please check the memory_limit directive in php.ini or contact your host provider' => 'Damit PrestaShop einwandfrei funktionieren kann, werden mindestens 32M Speicher benötigt. Bitte überprüfen Sie die memory_limit directive in php.in oder kontaktieren Sie Ihrem Provider.',
'Your PHP sessions path is not writable - check with your hosting provider:' => 'Der Speicherungsordner ist nicht beschreibbar - bitte kontaktieren Sie Ihren Provider',
),
);
+156 -130
View File
@@ -11,13 +11,13 @@ return array(
'menu_configure' => 'Información de la tienda',
'menu_process' => 'Instalación de la tienda',
'Choose the installer language:' => '',
'Field required' => 'Campos requeridos',
'Field required' => 'Campo obligatorio',
'Invalid shop name' => 'Nombre de la tienda no válido',
'Your firstname contains some invalid characters' => 'Su nombre contiene caracteres no válidos',
'Your lastname contains some invalid characters' => 'Su apellido contiene caracteres no válidos',
'The password is incorrect (alphanumeric string with at least 8 characters)' => '',
'Password and its confirmation are different' => '',
'This e-mail address is invalid' => '',
'Your firstname contains some invalid characters' => 'Tu nombre contiene algunos caracteres no válidos',
'Your lastname contains some invalid characters' => 'Tu apellido contiene algunos caracteres no válidos',
'The password is incorrect (alphanumeric string with at least 8 characters)' => 'La contraseña no es válida (de ser una cadena alfanumérica de al menos 8 caracteres)',
'Password and its confirmation are different' => 'La contraseña y la confirmación de la contraseña no son iguales',
'This e-mail address is invalid' => 'Esta dirección de correo electrónico no es válida',
'The uploaded file exceeds the upload_max_filesize directive in php.ini' => 'El archivo enviado supera el tamaño máximo permitido.',
'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form' => 'El archivo enviado supera el tamaño máximo permitido.',
'The uploaded file was only partially uploaded' => 'El archivo fue parcialmente enviado.',
@@ -28,45 +28,45 @@ return array(
'No error code available' => '',
'This is not a valid image file' => '',
'Image type is not supported' => '',
'Image folder %s is not writable' => '',
'Image folder %s is not writable' => 'No se puede escribir en el directorio de imágenes %s',
'Cannot upload the file' => '',
'Lingerie and Adult' => '',
'Animals and Pets' => 'Animales',
'Art and Culture' => 'Cultura y ocio',
'Babies' => 'Artículos para bebés',
'Beauty and Personal Care' => 'Salud y belleza',
'Cars' => 'Automóvil y motos',
'Computer Hardware and Software' => 'Informática y programas',
'Lingerie and Adult' => 'Lencería y Adultos',
'Animals and Pets' => 'Animales y Mascotas',
'Art and Culture' => 'Arte, Cultura y Ocio',
'Babies' => 'Bebés',
'Beauty and Personal Care' => 'Belleza, Salud y Cuidado Personal',
'Cars' => 'Coches y Motos',
'Computer Hardware and Software' => 'Informática (Hardware y Software)',
'Download' => 'Descargas',
'Fashion and accessories' => 'Ropa y complementos',
'Flowers, Gifts and Crafts' => 'Flores y regalos',
'Food and beverage' => 'Alimentación y gastronomía',
'HiFi, Photo and Video' => 'Hifi, foto y vídeo',
'Home and Garden' => 'Casa y jardín',
'Fashion and accessories' => 'Moda y Complementos',
'Flowers, Gifts and Crafts' => 'Flores, Regalos y Manualidades',
'Food and beverage' => 'Gastronomía, Comida y Bebida',
'HiFi, Photo and Video' => 'Equipos de alta fidelidad, Foto y Vídeo',
'Home and Garden' => 'Hogar y Jardín',
'Home Appliances' => 'Electrodomésticos',
'Jewelry' => 'Joyería',
'Mobile and Telecom' => 'Telefonía y comunicación',
'Mobile and Telecom' => 'Móviles y Telecomunicaciones',
'Services' => 'Servicios',
'Shoes and accessories' => 'Calzado y complementos',
'Sports and Entertainment' => 'Deporte y ocio',
'Travel' => 'Viajes y turismo',
'Database is connected' => '',
'A test e-mail has been sent to %s' => '',
'An error occurred while sending email, please verify your parameters' => '',
'Create settings.inc file' => '',
'Create database tables' => '',
'Populate database tables' => '',
'Configure shop information' => '',
'Install modules' => '',
'Install demonstration data' => '',
'Install theme' => '',
'PHP parameters:' => '',
'Shoes and accessories' => 'Calzado y Complementos',
'Sports and Entertainment' => 'Deportes y Entretenimiento',
'Travel' => 'Viajes y Turismo',
'Database is connected' => 'La base de datos está conectada',
'A test e-mail has been sent to %s' => 'El mensaje de prueba ha sido correctamente enviado a %s',
'An error occurred while sending email, please verify your parameters' => 'Se ha producido un error al enviar el mensaje, por favor revise los parámetros introducidos',
'Create settings.inc file' => 'Crear fichero settings.inc',
'Create database tables' => 'Crear tablas de la base de datos',
'Populate database tables' => 'Rellenar las tablas de la base de datos',
'Configure shop information' => 'Configurar la información de la tienda',
'Install modules' => 'Instalar módulos',
'Install demonstration data' => 'Instalar datos de prueba (DEMO)',
'Install theme' => 'Instalar plantilla',
'PHP parameters:' => 'Parámetros PHP:',
'Is PHP 5.1.2 or later installed ?' => '',
'Can upload files ?' => '',
'Can create new files and folders ?' => '',
'Is GD Library installed ?' => '',
'Is MySQL support is on ?' => '',
'Recursive write permissions on files and folders:' => '',
'Recursive write permissions on files and folders:' => 'Permisos de escritura recursivos en ficheros y directorios:',
'Can open external URLs ?' => '',
'Is PHP register global option off (recommended) ?' => '',
'Is GZIP compression activated (recommended) ?' => '',
@@ -76,136 +76,162 @@ return array(
'Is PDO MySQL extension loaded ?' => '',
'Shop settings and merchant account information' => 'Información sobre el vendedor',
'Shop name:' => 'Nombre de la tienda:',
'Main activity:' => 'Actividad principal',
'Please choose your main activity' => '',
'Main activity:' => 'Actividad principal:',
'Please choose your main activity' => 'Por favor, selecciona tu actividad principal',
'Other activity...' => 'Otra actividad...',
'This information is not required, it will only be used for statistical purposes. This information does not change anything in your store.' => 'Esta información no es obligatoria, solo se utilizará para estadísticas. Proporcionarla o no, no cambiará nada en su tienda.',
'Install demo products:' => '',
'Install demo products:' => 'Instalar productos de prueba (DEMO):',
'Yes' => 'Sí',
'No' => 'No',
'Demo products are a good way to learn how to use PrestaShop. You should install them if you are not familiar with it.' => '',
'Demo products are a good way to learn how to use PrestaShop. You should install them if you are not familiar with it.' => 'Los productos de prueba son una buena forma de aprender a utilizar PrestaShop. Te recomendamos instalarlo si todavía no estás familiarizado con él.',
'Default country:' => 'País por defecto:',
'Select your country' => '',
'Select your country' => 'Selecciona tu país',
'Shop timezone:' => 'Zona horaria de la tienda:',
'Select your timezone' => '',
'Select your timezone' => 'Selecciona tu zona horaria',
'Shop logo:' => 'Logo de la tienda:',
'Recommended dimensions:' => 'Dimensiones recomendadas:',
'First name:' => 'Nombre:',
'Last name:' => 'Apellido:',
'E-mail address:' => 'Dirección de email:',
'E-mail address:' => 'Dirección de correo electrónico:',
'Shop password:' => 'Contraseña de la tienda:',
'Re-type to confirm:' => 'Confirmar la contraseña:',
'Receive this information by e-mail' => 'Recibe estos datos por email',
'Warning: You will receive this information only if your e-mail configuration is correct.' => '',
'Configure your database by filling out the following fields:' => 'Configure su base de datos llenando los siguientes campos:',
'Configure your database by filling out the following fields:' => 'Configura tu base de datos rellenando los siguientes campos:',
'You have to create a database, help available in <a href="http://doc.prestashop.com" target="_blank">our online documentation</a>.' => '',
'Database server address:' => '',
'Database server address:' => 'Dirección del servidor de base de datos:',
'If you want to use a different port, add :XX after your server address where XX is your port number.' => '',
'Database name:' => 'Nombre de la base de datos:',
'Database login:' => 'Inicio de la base de datos',
'Database password:' => 'Contraseña de la base de datos',
'Database Engine:' => 'Tipo de base de datos:',
'Database login:' => 'Usuario de la base de datos:',
'Database password:' => 'Contraseña de la base de datos:',
'Database Engine:' => 'Motor de la base de datos:',
'Tables prefix:' => 'Prefijo de las tablas:',
'Drop existing tables (mode dev):' => '',
'Drop existing tables (mode dev):' => 'Eliminar las tablas existentes (sólo para modo desarrollo):',
'Verify now!' => '',
'E-mail delivery set-up' => '',
'Configure SMTP manually (advanced users only)' => 'Configurar el envío SMTP (expertos únicamente)',
'By default, the PHP mail() function is used' => '',
'SMTP server address:' => '',
'Encryption:' => 'Encriptación:',
'E-mail delivery set-up' => 'Configuración de la entrega del correo electrónico',
'Configure SMTP manually (advanced users only)' => 'Configurar SMTP manualmente (sólo para usuarios avanzados)',
'By default, the PHP mail() function is used' => 'Por defecto, la función PHP mail() es la que se utiliza',
'SMTP server address:' => 'Dirección del servidor SMTP:',
'Encryption:' => 'Cifrado:',
'None' => 'Ninguno',
'Port:' => 'Puerto:',
'Login:' => 'Nombre de usuario:',
'Login:' => 'Usuario:',
'Password:' => 'Contraseña:',
'enter@your.email' => 'introduzca@su.email',
'Send me a test email!' => '¡Envíeme un email de prueba!',
'enter@your.email' => 'introduce@tu.email',
'Send me a test email!' => '¡Enviar correo electrónico de prueba!',
'Next' => 'Siguiente',
'Back' => 'Anterior',
'Official forum' => '',
'Support' => '',
'Documentation' => '',
'Contact us' => 'Contacte con nosotros',
'Forum' => '',
'Blog' => 'El blog',
'Done!' => '',
'An error occured during installation...' => '',
'You can use the links on the left column to go back to the previous steps, or restart the installation process by <a href="%s">clicking here</a>.' => '',
'Your installation is finished!' => La instalación está terminada!',
'You have just finished installing your shop. Thank you for using PrestaShop!' => '',
'Please remember your login information:' => '',
'WARNING: For security purposes, you must delete the "install" folder.' => 'ATENCION : para más seguridad, por favor borre la carpeta \'/install\'.',
'Back Office' => 'Back Office',
'Manage your store using your Back Office. Manage your orders and customers, add modules, change themes, etc.' => 'Administre su tienda con su back office. Maneja sus pedidos y clientes, agregue módulos, cambie su tema, etc ...',
'Manage your store' => 'Administre su tienda',
'Front Office' => 'Front Office',
'Discover your store as your future customers will see it!' => '¡Descubra su tienda tal como la verán sus clientes!',
'Discover your store' => 'Descubra su tienda',
'Official forum' => 'Foro oficial',
'Support' => 'Soporte',
'Documentation' => 'Documentación',
'Contact us' => 'Contáctenos',
'Forum' => 'Foro',
'Blog' => 'Blog',
'Done!' => '¡Ya está!',
'An error occured during installation...' => 'Ha ocurrido un error durante la instalación...',
'You can use the links on the left column to go back to the previous steps, or restart the installation process by <a href="%s">clicking here</a>.' => 'Puedes utilizar los enlaces que se encuentran en la columna de la izquierda para volver a los pasos anteriores, o también reiniciar el proceso de instalación <a href="%s">haciendo clic aquí</a>.',
'Your installation is finished!' => Tu instalación ha finalizado!',
'You have just finished installing your shop. Thank you for using PrestaShop!' => 'Acabas de finalizar la instalación de tu tienda. ¡Gracias por utilizar PrestaShop!',
'Please remember your login information:' => 'Por favor, recuerda la información de inicio de sesión:',
'WARNING: For security purposes, you must delete the "install" folder.' => 'ATENCION: Por motivos de seguridad, debe borrar el directorio "install".',
'Back Office' => 'Interfaz de administración (Back Office)',
'Manage your store using your Back Office. Manage your orders and customers, add modules, change themes, etc.' => 'Administra tu tienda utilizando el interfaz de administración. Gestiona los pedidos y clientes, añade módulos, cambia plantillas, etc.',
'Manage your store' => 'Administra tu tienda',
'Front Office' => 'Interfaz de usuario (Front Office)',
'Discover your store as your future customers will see it!' => '¡Descubre tu tienda tal y cómo la verán tus clientes!',
'Discover your store' => 'Visita tu tienda',
'Required set-up. Please verify the following checklist items are true.' => '',
'Your configuration is valid, click next to continue!' => '',
'Your configuration is invalid. Please fix the issues below:' => 'Su configuración no es válida,<br />gracias por corregir la configuración:',
'Optional set-up' => 'Parámetros opcionales',
'Refresh these settings' => '',
'Welcome to the PrestaShop %s Installer.' => 'Bienvenido al asistente de instalación de PrestaShop',
'Refresh these settings' => 'Actualizar esta información',
'Welcome to the PrestaShop %s Installer.' => 'Bienvenido al %s de Instalación de PrestaShop.',
'The installation process should take only few minutes!' => 'El proceso de instalación tardará solo unos minutos.',
'If you need help, do not hesitate to check <a href="%1$s" target="_blank">our documentation</a> or to contact our support team: %2$s' => '',
'If you need help, do not hesitate to check <a href="%1$s" target="_blank">our documentation</a> or to contact our support team: %2$s' => 'Si usted necesita ayuda, no dude en consultar <a href="%1$s" target="_blank">nuestra documentación </a> o contactar nuestro equipo de soporte: %2$s',
'Did you know?' => '¿Sabía que?',
'PrestaShop and its community offers over %d different languages for free, directly accessible from your Back Office on the Localization tab.' => '',
'License Agreements' => 'Validación de los contratos de licencia',
'License Agreements' => 'Validación de los contratos de licencias',
'PrestaShop core is released under the OSL 3.0 while PrestaShop modules and themes are released under the AFL 3.0.' => '',
'I agree to the above terms and conditions.' => 'Acepto los términos y condiciones del contrato arriba indicados.',
'I agree to participate in improving the solution by sending anonymous information about my configuration.' => 'Acepto participar en la mejora de PrestaShop enviando información anónima de mi configuración.',
'If you have any questions, please visit our <a href="%1$s" target="_blank">documentation</a> and <a href="%2$s" target="_blank">community forum</a>.' => '',
'Test message from PrestaShop' => 'Instalación Prestashop - Prueba del servidor de correo',
'This is a test message, your server is now available to send email' => 'Este es un mensaje de prueba, el servidor de correo funciona correctamente.',
'%s - Login information' => '',
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => '',
'Cannot create image "%1$s" for entity "%2$s"' => '',
'Cannot create image "%1$s" (bad permissions on folder "%2$s")' => '',
'Cannot create image "%s"' => '',
'SQL error on query <i>%s</i>' => '',
'Server name is not valid' => '',
'You must enter a database name' => '',
'You must enter a database login' => '',
'Tables prefix is invalid' => '',
'Wrong engine chosen for MySQL' => '',
'Cannot convert database data to utf-8' => '',
'At least one table with same prefix was already found, please change your prefix or drop your database' => '',
'Database Server is not found. Please verify the login, password and server fields' => '',
'Connection to MySQL server succeeded, but database "%s" not found' => '',
'Engine innoDB is not supported by your MySQL server, please use MyISAM' => '',
'%s file is not writable (check permissions)' => '',
'%s folder is not writable (check permissions)' => '',
'Cannot write settings file' => '',
'Database structure file not found' => '',
'Cannot create group shop' => '',
'Cannot create shop' => '',
'Cannot create shop URL' => '',
'File "language.xml" not found for language iso "%s"' => '',
'File "language.xml" not valid for language iso "%s"' => '',
'Cannot install language "%s"' => '',
'Cannot create admin account' => '',
'Cannot install module "%s"' => '',
'Fixtures class "%s" not found' => '',
'"%s" must be an instane of "InstallXmlLoader"' => '',
'Information about your Store' => 'Información sobre tu tienda Online',
'Help us learn more about your store so we can offer you optimal guidance and the best features for your business!' => 'Ayúdanos a conocer mejor tu negocio para que podamos orientarte y ¡proponerte funcionalidades que se adapten a tu actividad!',
'Optional - You can add you logo at a later time.' => 'Opcional Puedes añadir esta información más tarde',
'Your Account' => 'Tu información personal',
'This email address will be your username to access your store\'s back office.' => 'Nota: esta dirección de correo electrónico te servirá como identificador en la administración de tu tienda Online',
'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop puede ayudarte de forma regular con el envío de consejos con el fin de optimizar la administración de tu tienda Online y desarrollar tu actividad. Si no deseas recibir estos consejos, puedes desmarcar esta casilla.',
'To use PrestaShop, you must <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop" target="_blank">create a database</a> to collect all of your stores data-related activities.' => 'Para utilizar PrestaShop, debes <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop" target="_blank">crear una base de datos</a> para que contenga el conjunto de datos relacionados con la actividad de tu tienda Online.',
'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Por favor rellena los datos aquí indicados como obligatorios para que PrestaShop pueda conectarse a tu base de datos.',
'The default port is 3306. To use a different port, add the port number at the end of your servers address i.e ":4242".' => 'Si deseas utilizar un puerto diferente del puerto indicado por defecto (3306), añada ":4242" en la dirección de tu servidor, siendo XX el número de tu puerto.',
'Test your database connection now!' => 'Con este botón puedes testear la conexión a tu base de datos',
'PrestaShop Installation Assistant' => 'Asistente de instalación de PrestaShop',
'I agree to the above terms and conditions.' => 'Acepto los términos y condiciones arriba indicados.',
'I agree to participate in improving the solution by sending anonymous information about my configuration.' => 'Acepto participar en la mejora de la solución enviando información anónima sobre mi configuración.',
'If you have any questions, please visit our <a href="%1$s" target="_blank">documentation</a> and <a href="%2$s" target="_blank">community forum</a>.' => 'Si tienes alguna pregunta, por favor visítanos en <a href="%1$s" target="_blank">documentación</a> y <a href="%2$s" target="_blank">foro de la comunidad </a>.',
'Test message from PrestaShop' => 'Mensaje de prueba desde PrestaShop',
'This is a test message, your server is now available to send email' => 'Este es un mensaje de prueba, tu servidor se encuentra disponible para enviar correos electrónicos',
'%s - Login information' => '%s Información para iniciar sesión',
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'Se ha producido un error SQL para la entidad <i>%1$s</i>: <i>%2$s</i>',
'Cannot create image "%1$s" for entity "%2$s"' => 'No se puede crear la imagen "%1$s" para la entidad "%2$s"',
'Cannot create image "%1$s" (bad permissions on folder "%2$s")' => 'No se puede crear la imagen "%1$s" (permisos incorrectos en el directorio "%2$s")',
'Cannot create image "%s"' => 'No se puede crear la imagen "%s"',
'SQL error on query <i>%s</i>' => 'Error SQL en la consulta <i>%s</i>',
'Server name is not valid' => 'El nombre del servidor no es válido',
'You must enter a database name' => 'Debes indicar un nombre de base de datos',
'You must enter a database login' => 'Debes indicar los datos de conexión a la base de datos',
'Tables prefix is invalid' => 'El prefijo de las tablas no es válido',
'Wrong engine chosen for MySQL' => 'Motor incorrecto para MySQL',
'Cannot convert database data to utf-8' => 'No se puede convertir la base de datos al formato UTF-8',
'At least one table with same prefix was already found, please change your prefix or drop your database' => 'Se ha encontrado al menos una tabla con el mismo prefijo, por favor cambie su prefijo o vacíe su base de datos',
'Database Server is not found. Please verify the login, password and server fields' => 'No se ha encontrado el servidor de la base de datos. Por favor verifique los campos para el usuario, la contraseña y el servidor',
'Connection to MySQL server succeeded, but database "%s" not found' => 'La conexión con el servidor MySQL ha sido satisfactoria, pero no se ha encontrado la base de datos "%s"',
'Engine innoDB is not supported by your MySQL server, please use MyISAM' => 'El motor innoDB no está soportado por tu servidor MySQL, por favor utiliza MyISAM',
'%s file is not writable (check permissions)' => 'No se puede escribir en el fichero %s (verifica los permisos)',
'%s folder is not writable (check permissions)' => 'No se puede escribir en el directorio %s (verifica los permisos)',
'Cannot write settings file' => 'No se puede escribir en el fichero de configuración',
'Database structure file not found' => 'El archive de estructura de la base de datos no se encuentra',
'Cannot create group shop' => 'No se puede crear un grupo de tiendas',
'Cannot create shop' => 'No se puede crear una tienda',
'Cannot create shop URL' => 'No se puede crear una URL para la tienda',
'File "language.xml" not found for language iso "%s"' => 'En el fichero "language.xml" no encuentra el idioma con ISO "%s"',
'File "language.xml" not valid for language iso "%s"' => 'El fichero "language.xml" no es válido para el idioma ISO "%s"',
'Cannot install language "%s"' => 'No se puede instalar el idioma "%s"',
'Cannot create admin account' => 'No se puede crear la cuenta de administrador',
'Cannot install module "%s"' => 'No se puede instalar el módulo "%s"',
'Fixtures class "%s" not found' => 'No se ha encontrado la clase Fixtures "%s"',
'"%s" must be an instane of "InstallXmlLoader"' => '"%s" debe ser una instancia de "InstallXmlLoader"',
'Information about your Store' => 'Información sobre su tienda',
'Help us learn more about your store so we can offer you optimal guidance and the best features for your business!' => 'Ayúdanos a aprender más acerca de su tienda, ¡para que le podamos ofrecer una orientación óptima y mejoras funcionales para su negocio!',
'Optional - You can add you logo at a later time.' => 'Opcional Puedes añadir el logo de tu tienda más tarde.',
'Your Account' => 'Tu cuenta',
'This email address will be your username to access your store\'s back office.' => 'Esta dirección de correo electrónico corresponderá a tu usuario en el acceso al interfaz de administración de tu tienda Online.',
'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop te puede proporcionar orientación con el envío de consejos sobre cómo optimizar y gestionar tu tienda, que te ayudarán a tener éxito en tu negocio. Si no deseas recibir estos consejos, por favor desmarca esta casilla.',
'To use PrestaShop, you must <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop" target="_blank">create a database</a> to collect all of your stores data-related activities.' => 'Para utilizar PrestaShop, debes <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop" target="_blank">crear una base de datos </a> para poder recoger todos los datos relacionados con tu actividad.',
'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Por favor, rellena estos datos con el fin de que PrestaShop pueda conectarse a tu base de datos.',
'The default port is 3306. To use a different port, add the port number at the end of your servers address i.e ":4242".' => 'El puerto utilizado por defecto es el 3306. Si utilizas un puerto diferente, añade este número de puerto al final de la dirección del servidor con dos puntos, por ejemplo ":4242".',
'Test your database connection now!' => '¡Comprueba la conexión de tu base de datos ahora!',
'PrestaShop Installation Assistant' => 'Asistente para la instalación de PrestaShop',
'Contact us!' => '¡Contáctenos!',
'Installation Assistant' => 'Asistente de instalación',
'To enjoy the many features that are offered by PrestaShop, please read the license terms below. PrestaShop core is licensed under OSL 3.0, while the modules and themes are licensed under AFL 3.0.' => 'Con el fin de disfrutar de las numerosas funcionalidades que ofrece PrestaShop, te damos las gracias por leer y aceptar los términos y las condiciones de las licencias aquí descritas. El código de PrestaShop se publica bajo licencia OSL 3.0 mientras que los módulos y plantillas se publican bajo licencia AFL 3.0.',
'Print my login information' => 'Guarda los datos de conexión',
'To enjoy the many features that are offered by PrestaShop, please read the license terms below. PrestaShop core is licensed under OSL 3.0, while the modules and themes are licensed under AFL 3.0.' => 'Con el fin de disfrutar de las numerosas funcionalidades que ofrece PrestaShop, por favor lea y acepte los términos y condiciones de licencias aquí descritas. El código de PrestaShop se publica bajo licencia OSL 3.0, mientras que los módulos y las plantillas se publican bajo licencia AFL 3.0.',
'Print my login information' => 'Imprimir la información e inicio de sesión',
'We are currently checking PrestaShop compatibility with your system environment' => 'Verificamos en este momento la compatibilidad de PrestaShop con tu entorno del sistema',
'Oops! Please correct the item(s) below, and then click "Refresh information" to test the compatibility of your new system.' => 'Por favor, corrija el/los punto(s) que se encuentran aquí marcados como errores y después hacer Clic en el botón "Refrescar esta información" con el fin de testear de nuevo la compatibilidad de tu sistema.',
'The installation of PrestaShop is quick and easy. In just a few moments, you will become part of a community consisting of more than 130,000 merchants. You are on the way to creating your own unique online store that you can manage easily every day.' => ' La instalación de PrestaShop es fácil y rápida. En sólo unos minutos, podrás unirte a una Comunidad de más de 130.000 comerciantes electrónicos para crear una tienda Online a tu imagen y administrarla a diario de forma muy sencilla.',
'Oops! Please correct the item(s) below, and then click "Refresh information" to test the compatibility of your new system.' => '¡Uups! Por favor corrija los siguientes puntos marcados como errores y después hacer Clic en el botón "Actualizar esta información" con el fin de probar de nuevo la compatibilidad de tu sistema.',
'The installation of PrestaShop is quick and easy. In just a few moments, you will become part of a community consisting of more than 130,000 merchants. You are on the way to creating your own unique online store that you can manage easily every day.' => 'La instalación de PrestaShop es rápida y fácil. En solo unos minutos, podrás unirte a una comunidad de más de 130.000 comerciantes electrónicos. Así podrás crear tu propia tienda Online con tu imagen corporativa y administrarla a diario de forma muy sencilla.',
'Continue the installation in:' => 'Continuar la instalación en:',
'The language selection above only applies to the Installation Assistant. Once your store is installed, you can choose the language of your store from over %d translations, all for free!' => 'La elección del idioma se realiza al comienzo y se aplica al asistente de instalación. Una vez tu tienda Online esté instalada, podrás elegir el idioma de tu tienda, ¡entre las más de %d traducciones didsponibles e forma gratuita!',
'The language selection above only applies to the Installation Assistant. Once your store is installed, you can choose the language of your store from over %d translations, all for free!' => 'La elección del idioma se realiza sólo al inicio y se aplica al asistente de instalación. Una vez que tu tienda Online está instalada, podrás elegir el idioma de tu tienda, ¡entre las más de %d traducciones disponibles, ¡todas ellas de forma gratuitas!',
'The field %s is limited to %d characters' => 'El campo %s está limitado a %d caracteres',
'An error occurred during logo copy.' => 'Se ha producido un error durante la copia del logotipo.',
'An error occurred during logo upload.' => 'Se ha producido un error durante la subida del fichero del logotipo.',
'Create default shop and languages' => 'Crear tienda por defecto e idiomas',
'PHP 5.1.2 or later is not enabled' => 'La versión PHP 5.1.2 o posterior no está habilitada',
'Cannot upload files' => 'No se pueden subir ficheros',
'Cannot create new files and folders' => 'No se pueden crear nuevos ficheros y directorios',
'GD Library is not installed' => 'La librería GD no está instalada',
'MySQL support is not activated' => 'El soporte para MySQL no está activado',
'Cannot open external URLs' => 'No se pueden abrir URLs externas',
'PHP register global option is on' => 'La opción PHP register global está activada',
'GZIP compression is not activated' => 'La compresión GZIP no está activada',
'Mcrypt extension is not enabled' => 'La extensión Mcrypt no está habilitada',
'Mbstring extension is not enabled' => 'La extensión Mbstring no está habilitada',
'PHP magic quotes option is enabled' => 'La opción PHP magic quotes está habilitada',
'Dom extension is not loaded' => 'La extensión Dom no se ha cargado',
'PDO MySQL extension is not loaded' => 'La extensión PDO MySQL no se ha cargado',
'Cannot copy flag language "%s"' => 'No se pueden copiar las banderas de los idiomas "%s"',
'Must be alphanumeric string with at least 8 characters' => 'Debe ser una cadena alfanumérica de al menos 8 caracteres',
'Sign-up to the newsletter' => 'Suscríbete al boletín de noticias',
'If you are experiencing problems during the installation process, please call our team at %s and one of our experts will be happy to help.' => 'Si experimenta problemas durante la instalación, por favor llámenos al %s y uno de nuestros expertos estará encantado de ayudarte.',
'E-mail:' => 'Correo electrónico:',
'Display' => 'Mostrar',
'PrestaShop compatibility with your system environment has been verified!' => '¡La compatibilidad de PrestaShop con su entorno del sistema ha sido verificada correctamente!',
'PrestaShop requires at least 32M of memory to run, please check the memory_limit directive in php.ini or contact your host provider' => 'PrestaShop requiere al menos 32MB de memoria para funcionar, por favor verifica la directiva memory_limit que se encuentra en el fichero php.ini o contacta con su proveedor de alojamiento',
'Your PHP sessions path is not writable - check with your hosting provider:' => 'El fichero de almacenamiento no está disponible en modo escritura, consulte con su proveedor de alojamiento',
),
);
+7 -6
View File
@@ -101,7 +101,7 @@ return array(
'Re-type to confirm:' => 'Confirmation du mot de passe :',
'Receive this information by e-mail' => 'Recevez ces informations par e-mail',
'Warning: You will receive this information only if your e-mail configuration is correct.' => 'Attention : vous ne recevrez ces informations que si votre configuration des e-mails est correcte',
'Configure your database by filling out the following fields:' => 'Configurez la connection à votre base de données en remplissant les champs suivants :',
'Configure your database by filling out the following fields:' => 'Configurez la connexion à votre base de données en remplissant les champs suivants.',
'You have to create a database, help available in <a href="http://doc.prestashop.com" target="_blank">our online documentation</a>.' => 'Vous devez créer une base de données, de l\'aide est disponible sur <a href="http://doc.prestashop.com" target="_blank">notre documentation en ligne</a>.',
'Database server address:' => 'Adresse du serveur de la base :',
'If you want to use a different port, add :XX after your server address where XX is your port number.' => 'Si vous souhaitez utiliser un port différent, ajoutez :XX à l\'adresse de votre serveur, XX étant le numéro de votre port.',
@@ -135,11 +135,11 @@ return array(
'An error occured during installation...' => 'Une erreur est survenue durant l\'installation',
'You can use the links on the left column to go back to the previous steps, or restart the installation process by <a href="%s">clicking here</a>.' => 'Vous pouvez utiliser les liens à gauche pour revenir aux étapes précédentes, ou redémarrer l\'installation en <a href="%s">cliquant ici</a>.',
'Your installation is finished!' => 'L\'installation est finie !',
'You have just finished installing your shop. Thank you for using PrestaShop!' => 'Vous venez dinstaller votre boutique en ligne, nous vous en remercions.',
'You have just finished installing your shop. Thank you for using PrestaShop!' => 'Vous venez dinstaller votre boutique en ligne, merci d\'avoir choisi PrestaShop !',
'Please remember your login information:' => 'Merci de conserver les informations de connexion suivantes :',
'WARNING: For security purposes, you must delete the "install" folder.' => 'ATTENTION : pour plus de sécurité, merci de supprimer le dossier \'/install\'.',
'Back Office' => 'Administration',
'Manage your store using your Back Office. Manage your orders and customers, add modules, change themes, etc.' => 'Accédezdès à présent à votre interface de gestion pour commencer la configuration de votre boutique.',
'Manage your store using your Back Office. Manage your orders and customers, add modules, change themes, etc.' => 'Accédez dès à présent à votre interface de gestion pour commencer la configuration de votre boutique.',
'Manage your store' => 'Gérez votre boutique',
'Front Office' => 'Front Office',
'Discover your store as your future customers will see it!' => 'Découvrez l\'apparence de votre boutique avec quelques produits de démonstration, prête à être personnalisée par vos soins !',
@@ -175,7 +175,7 @@ return array(
'Cannot convert database data to utf-8' => 'Impossible de convertir la base en utf-8',
'At least one table with same prefix was already found, please change your prefix or drop your database' => 'Au moins une table avec le même préfixe a été trouvée, merci de changer votre préfixe ou de supprimer vos tables existantes',
'Database Server is not found. Please verify the login, password and server fields' => 'Impossible de se connecter au serveur de la base de données. Vérifiez vos identifiants de connexion',
'Connection to MySQL server succeeded, but database "%s" not found' => 'La connection au serveur de base de données a réussi, mais la base "%s" n\'a pas été trouvée',
'Connection to MySQL server succeeded, but database "%s" not found' => 'La connexion au serveur de base de données a réussi, mais la base "%s" n\'a pas été trouvée',
'Engine innoDB is not supported by your MySQL server, please use MyISAM' => 'Le moteur innoDB n\'est pas supporté par votre serveur SQL, merci d\'utiliser MyISAM',
'%s file is not writable (check permissions)' => 'Le fichier %s ne peut être écrit (vérifiez vos permissions fichiers)',
'%s folder is not writable (check permissions)' => 'Le dossier %s ne peut être écrit (vérifiez vos permissions fichiers)',
@@ -212,7 +212,7 @@ return array(
'The installation of PrestaShop is quick and easy. In just a few moments, you will become part of a community consisting of more than 130,000 merchants. You are on the way to creating your own unique online store that you can manage easily every day.' => 'L\'installation de PrestaShop est simple et rapide. En quelques minutes seulement, vous rejoindrez une communauté de plus de 130 000 marchands pour créer une boutique en ligne à votre image et la gérer facilement au quotidien.',
'Continue the installation in:' => 'Continuer l\'installation en :',
'The language selection above only applies to the Installation Assistant. Once your store is installed, you can choose the language of your store from over %d translations, all for free!' => 'Le choix de la langue ci-dessus s\'applique à l\'assistant d\'installation. Une fois votre boutique installée, vous pourrez choisir la langue de votre boutique parmi plus de %d traductions disponibles gratuitement !',
'To use PrestaShop, you must <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop" target="_blank">create a database</a> to collect all of your stores data-related activities.' => 'Pour utiliser PrestaShop, vous devez <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop" target="_blank">créer une base de données</a> afin de rassembler l\'ensemble des données liées à l\'activité de votre boutique.',
'To use PrestaShop, you must <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop" target="_blank">create a database</a> to collect all of your stores data-related activities.' => 'Pour utiliser PrestaShop, vous devez <a href="http://doc.prestashop.com/display/PS15/Installer+PrestaShop" target="_blank">créer une base de données</a> afin de rassembler l\'ensemble des données liées à l\'activité de votre boutique.',
'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Merci de renseigner ci-dessous les informations requises pour que PrestaShop puisse se connecter à votre base de données.',
'The default port is 3306. To use a different port, add the port number at the end of your servers address i.e ":4242".' => 'Si vous souhaitez utiliser un port différent du port par défaut (3306) ajoutez ":XX" à l\'adresse de votre serveur, XX étant le numéro de votre port.',
'Test your database connection now!' => 'Tester la connexion à la base de données',
@@ -234,10 +234,11 @@ return array(
'Cannot copy flag language "%s"' => 'Impossible de copier le drapeau pour la langue "%s"',
'Information about your Store' => 'Informations à propos de votre boutique',
'Help us learn more about your store so we can offer you optimal guidance and the best features for your business!' => 'Aidez-nous à mieux vous connaitre pour que nous puissions vous orienter et vous proposer les fonctionnalités les plus adaptées à votre activité !',
'Optional - You can add you logo at a later time.' => 'Optionnel - Vous pouvez ajouter votre logo par la suite.',
'Optional - You can add you logo at a later time.' => 'Optionnel - Vous pourrez ajouter votre logo par la suite.',
'Your Account' => 'Vos informations personnelles',
'This email address will be your username to access your store\'s back office.' => 'Cette adresse e-mail vous servira d\'identifiant pour accéder à l\'interface de gestion de votre boutique.',
'Sign-up to the newsletter' => 'S\'inscrire à la newsletter de PrestaShop',
'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop peut vous guider de façon régulière en vous faisant parvenir des conseils afin d\'optimiser la gestion de votre boutique et développer votre activité. Si vous ne souhaitez pas recevoir ces conseils, nous vous invitons à décocher cette case.',
'Your PHP sessions path is not writable - check with your hosting provider:' => 'Le dossier de stockage n\'est pas accessible en écriture - consultez votre hébergeur',
),
);
+1
View File
@@ -233,5 +233,6 @@ return array(
'The installation of PrestaShop is quick and easy. In just a few moments, you will become part of a community consisting of more than 130,000 merchants. You are on the way to creating your own unique online store that you can manage easily every day.' => 'L\'installazione di PrestaShop è semplice e veloce. Tra pochi minuti, farai parte di una comunità di oltre 130.000 commercianti. Potrai creare un negozio a tua immagina e facile da gestire giorno dopo giorno.',
'Continue the installation in:' => 'Continua l\'installazione in:',
'The language selection above only applies to the Installation Assistant. Once your store is installed, you can choose the language of your store from over %d translations, all for free!' => 'La selezione della lingua si applica solo all\'Assistente di Installazione. Una volta che il negozio è installato, potrai scegliere la lingua del negozio tra le oltre %d traduzioni disponibili gratuitamente!',
'Your PHP sessions path is not writable - check with your hosting provider:' => 'La cartella di backup non è accessibile per scrittura - consulta il nostro servizio di hosting',
),
);
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<entity_carrier>
<carrier id="carrier_1" id_shop="1">
<delay>Odbiór w sklepie</delay>
</carrier>
</entity_carrier>
+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<entity_category>
<category id="Root" id_shop="1">
<name>Bazowa</name>
<description/>
<link_rewrite>bazowa</link_rewrite>
<meta_title/>
<meta_keywords/>
<meta_description/>
</category>
<category id="Home" id_shop="1">
<name>Główna</name>
<description/>
<link_rewrite>glowna</link_rewrite>
<meta_title/>
<meta_keywords/>
<meta_description/>
</category>
</entity_category>
+45
View File
@@ -0,0 +1,45 @@
<?xml version="1.0"?>
<entity_cms>
<cms id="Delivery">
<meta_title>Delivery</meta_title>
<meta_description>Our terms and conditions of delivery</meta_description>
<meta_keywords>conditions, delivery, delay, shipment, pack</meta_keywords>
<content>&lt;h2&gt;Shipments and returns&lt;/h2&gt;&lt;h3&gt;Your pack shipment&lt;/h3&gt;&lt;p&gt;Packages are generally dispatched within 2 days after receipt of payment and are shipped via UPS with tracking and drop-off without signature. If you prefer delivery by UPS Extra with required signature, an additional cost will be applied, so please contact us before choosing this method. Whichever shipment choice you make, we will provide you with a link to track your package online.&lt;/p&gt;&lt;p&gt;Shipping fees include handling and packing fees as well as postage costs. Handling fees are fixed, whereas transport fees vary according to total weight of the shipment. We advise you to group your items in one order. We cannot group two distinct orders placed separately, and shipping fees will apply to each of them. Your package will be dispatched at your own risk, but special care is taken to protect fragile objects.&lt;br /&gt;&lt;br /&gt;Boxes are amply sized and your items are well-protected.&lt;/p&gt;</content>
<link_rewrite>delivery</link_rewrite>
</cms>
<cms id="Legal_Notice">
<meta_title>Legal Notice</meta_title>
<meta_description>Legal notice</meta_description>
<meta_keywords>notice, legal, credits</meta_keywords>
<content>&lt;h2&gt;Legal&lt;/h2&gt;&lt;h3&gt;Credits&lt;/h3&gt;&lt;p&gt;Concept and production:&lt;/p&gt;&lt;p&gt;This Web site was created using &lt;a href="http://www.prestashop.com"&gt;PrestaShop&lt;/a&gt;&amp;trade; open-source software.&lt;/p&gt;</content>
<link_rewrite>legal-notice</link_rewrite>
</cms>
<cms id="Terms_and_conditions_of_use">
<meta_title>Terms and conditions of use</meta_title>
<meta_description>Our terms and conditions of use</meta_description>
<meta_keywords>conditions, terms, use, sell</meta_keywords>
<content>&lt;h2&gt;Your terms and conditions of use&lt;/h2&gt;&lt;h3&gt;Rule 1&lt;/h3&gt;&lt;p&gt;Here is the rule 1 content&lt;/p&gt;&#xD;
&lt;h3&gt;Rule 2&lt;/h3&gt;&lt;p&gt;Here is the rule 2 content&lt;/p&gt;&#xD;
&lt;h3&gt;Rule 3&lt;/h3&gt;&lt;p&gt;Here is the rule 3 content&lt;/p&gt;</content>
<link_rewrite>terms-and-conditions-of-use</link_rewrite>
</cms>
<cms id="About_us">
<meta_title>About us</meta_title>
<meta_description>Learn more about us</meta_description>
<meta_keywords>about us, informations</meta_keywords>
<content>&lt;h2&gt;About us&lt;/h2&gt;&#xD;
&lt;h3&gt;Our company&lt;/h3&gt;&lt;p&gt;Our company&lt;/p&gt;&#xD;
&lt;h3&gt;Our team&lt;/h3&gt;&lt;p&gt;Our team&lt;/p&gt;&#xD;
&lt;h3&gt;Informations&lt;/h3&gt;&lt;p&gt;Informations&lt;/p&gt;</content>
<link_rewrite>about-us</link_rewrite>
</cms>
<cms id="Secure_payment">
<meta_title>Secure payment</meta_title>
<meta_description>Our secure payment mean</meta_description>
<meta_keywords>secure payment, ssl, visa, mastercard, paypal</meta_keywords>
<content>&lt;h2&gt;Secure payment&lt;/h2&gt;&#xD;
&lt;h3&gt;Our secure payment&lt;/h3&gt;&lt;p&gt;With SSL&lt;/p&gt;&#xD;
&lt;h3&gt;Using Visa/Mastercard/Paypal&lt;/h3&gt;&lt;p&gt;About this services&lt;/p&gt;</content>
<link_rewrite>secure-payment</link_rewrite>
</cms>
</entity_cms>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<entity_cms_category>
<cms_category id="Home">
<name>Główna</name>
<description/>
<link_rewrite>glowna</link_rewrite>
<meta_title/>
<meta_keywords/>
<meta_description/>
</cms_category>
</entity_cms_category>
@@ -0,0 +1,21 @@
<?xml version="1.0"?>
<entity_configuration>
<configuration id="PS_INVOICE_PREFIX">
<value>W</value>
</configuration>
<configuration id="PS_DELIVERY_PREFIX">
<value>DE</value>
</configuration>
<configuration id="PS_SEARCH_BLACKLIST">
<value>od,z,na,po,i,w</value>
</configuration>
<configuration id="PS_META_KEYWORDS">
<value>0</value>
</configuration>
<configuration id="PS_CUSTOMER_SERVICE_SIGNATURE">
<value>Szanowny Kliencie,&#xD;
&#xD;
Z wyrazami szacunku,&#xD;
Dzial obslugi klienta</value>
</configuration>
</entity_configuration>
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<entity_contact>
<contact id="Webmaster" name="Webmaster">
<description>Jeśli pojawił się problem techniczny na tej stronie</description>
</contact>
<contact id="Customer_service" name="Obsługa klienta">
<description>Wszelkie pytania dotyczące produktów i zamówień</description>
</contact>
</entity_contact>
+999
View File
@@ -0,0 +1,999 @@
<?xml version="1.0"?>
<entity_country>
<country id="AF">
<name> Afganistan</name>
</country>
<country id="AL">
<name> Albania</name>
</country>
<country id="DZ">
<name> Algieria</name>
</country>
<country id="AD">
<name> Andora</name>
</country>
<country id="AO">
<name> Angola</name>
</country>
<country id="AI">
<name> Anguilla</name>
</country>
<country id="AQ">
<name> Antarktyka</name>
</country>
<country id="AG">
<name> Antigua i Barbuda</name>
</country>
<country id="SA">
<name> Arabia Saudyjska</name>
</country>
<country id="AR">
<name> Argentyna</name>
</country>
<country id="AM">
<name> Armenia</name>
</country>
<country id="AW">
<name> Aruba</name>
</country>
<country id="AU">
<name> Australia</name>
</country>
<country id="AT">
<name> Austria</name>
</country>
<country id="AZ">
<name> Azerbejdżan</name>
</country>
<country id="BS">
<name> Bahamy</name>
</country>
<country id="BH">
<name> Bahrajn</name>
</country>
<country id="BD">
<name> Bangladesz</name>
</country>
<country id="BB">
<name> Barbados</name>
</country>
<country id="BE">
<name> Belgia</name>
</country>
<country id="BZ">
<name> Belize</name>
</country>
<country id="BJ">
<name> Benin</name>
</country>
<country id="BM">
<name> Bermudy</name>
</country>
<country id="BT">
<name> Bhutan</name>
</country>
<country id="BY">
<name> Białoruś</name>
</country>
<country id="BO">
<name> Boliwia</name>
</country>
<country id="BQ">
<name> Bonaire, Sint Eustatius i Saba</name>
</country>
<country id="BA">
<name> Bośnia i Hercegowina</name>
</country>
<country id="BW">
<name> Botswana</name>
</country>
<country id="BR">
<name> Brazylia</name>
</country>
<country id="BN">
<name> Brunei</name>
</country>
<country id="IO">
<name> Brytyjskie Terytorium Oceanu Indyjskiego</name>
</country>
<country id="VG">
<name> Brytyjskie Wyspy Dziewicze</name>
</country>
<country id="BG">
<name> Bułgaria</name>
</country>
<country id="BF">
<name> Burkina Faso</name>
</country>
<country id="BI">
<name> Burundi</name>
</country>
<country id="CL">
<name> Chile</name>
</country>
<country id="CN">
<name> Chiny</name>
</country>
<country id="HR">
<name> Chorwacja</name>
</country>
<country id="CW">
<name> Curaçao</name>
</country>
<country id="CY">
<name> Cypr</name>
</country>
<country id="TD">
<name> Czad</name>
</country>
<country id="ME">
<name> Czarnogóra</name>
</country>
<country id="CZ">
<name> Czechy</name>
</country>
<country id="UM">
<name> Dalekie Wyspy Mniejsze Stanów Zjednoczonych</name>
</country>
<country id="DK">
<name> Dania</name>
</country>
<country id="CD">
<name> Demokratyczna Republika Konga</name>
</country>
<country id="DM">
<name> Dominika</name>
</country>
<country id="DO">
<name> Dominikana</name>
</country>
<country id="DJ">
<name> Dżibuti</name>
</country>
<country id="EG">
<name> Egipt</name>
</country>
<country id="EC">
<name> Ekwador</name>
</country>
<country id="ER">
<name> Erytrea</name>
</country>
<country id="EE">
<name> Estonia</name>
</country>
<country id="ET">
<name> Etiopia</name>
</country>
<country id="FK">
<name> Falklandy</name>
</country>
<country id="FJ">
<name> Fidżi</name>
</country>
<country id="PH">
<name> Filipiny</name>
</country>
<country id="FI">
<name> Finlandia</name>
</country>
<country id="FR">
<name> Francja</name>
</country>
<country id="TF">
<name> Francuskie Terytoria Południowe i Antarktyczne</name>
</country>
<country id="GA">
<name> Gabon</name>
</country>
<country id="GM">
<name> Gambia</name>
</country>
<country id="GS">
<name> Georgia Południowa i Sandwich Południowy</name>
</country>
<country id="GH">
<name> Ghana</name>
</country>
<country id="GI">
<name> Gibraltar</name>
</country>
<country id="GR">
<name> Grecja</name>
</country>
<country id="GD">
<name> Grenada</name>
</country>
<country id="GL">
<name> Grenlandia</name>
</country>
<country id="GE">
<name> Gruzja</name>
</country>
<country id="GU">
<name> Guam</name>
</country>
<country id="GG">
<name> Guernsey</name>
</country>
<country id="GF">
<name> Gujana Francuska</name>
</country>
<country id="GY">
<name> Gujana</name>
</country>
<country id="GP">
<name> Gwadelupa</name>
</country>
<country id="GT">
<name> Gwatemala</name>
</country>
<country id="GW">
<name> Gwinea Bissau</name>
</country>
<country id="GQ">
<name> Gwinea Równikowa</name>
</country>
<country id="GN">
<name> Gwinea</name>
</country>
<country id="HT">
<name> Haiti</name>
</country>
<country id="ES">
<name> Hiszpania</name>
</country>
<country id="NL">
<name> Holandia</name>
</country>
<country id="HN">
<name> Honduras</name>
</country>
<country id="HK">
<name> Hongkong</name>
</country>
<country id="IN">
<name> Indie</name>
</country>
<country id="ID">
<name> Indonezja</name>
</country>
<country id="IQ">
<name> Irak</name>
</country>
<country id="IR">
<name> Iran</name>
</country>
<country id="IE">
<name> Irlandia</name>
</country>
<country id="IS">
<name> Islandia</name>
</country>
<country id="IL">
<name> Izrael</name>
</country>
<country id="JM">
<name> Jamajka</name>
</country>
<country id="JP">
<name> Japonia</name>
</country>
<country id="YE">
<name> Jemen</name>
</country>
<country id="JE">
<name> Jersey</name>
</country>
<country id="JO">
<name> Jordania</name>
</country>
<country id="KY">
<name> Kajmany</name>
</country>
<country id="KH">
<name> Kambodża</name>
</country>
<country id="CM">
<name> Kamerun</name>
</country>
<country id="CA">
<name> Kanada</name>
</country>
<country id="QA">
<name> Katar</name>
</country>
<country id="KZ">
<name> Kazachstan</name>
</country>
<country id="KE">
<name> Kenia</name>
</country>
<country id="KG">
<name> Kirgistan</name>
</country>
<country id="KI">
<name> Kiribati</name>
</country>
<country id="CO">
<name> Kolumbia</name>
</country>
<country id="KM">
<name> Komory</name>
</country>
<country id="CG">
<name> Kongo</name>
</country>
<country id="KR">
<name> Korea Południowa</name>
</country>
<country id="KP">
<name> Korea Północna</name>
</country>
<country id="CR">
<name> Kostaryka</name>
</country>
<country id="CU">
<name> Kuba</name>
</country>
<country id="KW">
<name> Kuwejt</name>
</country>
<country id="LA">
<name> Laos</name>
</country>
<country id="LS">
<name> Lesotho</name>
</country>
<country id="LB">
<name> Liban</name>
</country>
<country id="LR">
<name> Liberia</name>
</country>
<country id="LY">
<name> Libia</name>
</country>
<country id="LI">
<name> Liechtenstein</name>
</country>
<country id="LT">
<name> Litwa</name>
</country>
<country id="LU">
<name> Luksemburg</name>
</country>
<country id="LV">
<name> Łotwa</name>
</country>
<country id="MK">
<name> Macedonia</name>
</country>
<country id="MG">
<name> Madagaskar</name>
</country>
<country id="YT">
<name> Majotta</name>
</country>
<country id="MO">
<name> Makau</name>
</country>
<country id="MW">
<name> Malawi</name>
</country>
<country id="MV">
<name> Malediwy</name>
</country>
<country id="MY">
<name> Malezja</name>
</country>
<country id="ML">
<name> Mali</name>
</country>
<country id="MT">
<name> Malta</name>
</country>
<country id="MP">
<name> Mariany Północne</name>
</country>
<country id="MA">
<name> Maroko</name>
</country>
<country id="MQ">
<name> Martynika</name>
</country>
<country id="MR">
<name> Mauretania</name>
</country>
<country id="MU">
<name> Mauritius</name>
</country>
<country id="MX">
<name> Meksyk</name>
</country>
<country id="FM">
<name> Mikronezja</name>
</country>
<country id="MM">
<name> Mjanma</name>
</country>
<country id="MD">
<name> Mołdawia</name>
</country>
<country id="MC">
<name> Monako</name>
</country>
<country id="MN">
<name> Mongolia</name>
</country>
<country id="MS">
<name> Montserrat</name>
</country>
<country id="MZ">
<name> Mozambik</name>
</country>
<country id="NA">
<name> Namibia</name>
</country>
<country id="NR">
<name> Nauru</name>
</country>
<country id="NP">
<name> Nepal</name>
</country>
<country id="DE">
<name> Niemcy</name>
</country>
<country id="NE">
<name> Niger</name>
</country>
<country id="NG">
<name> Nigeria</name>
</country>
<country id="NI">
<name> Nikaragua</name>
</country>
<country id="NU">
<name> Niue</name>
</country>
<country id="NF">
<name> Norfolk</name>
</country>
<country id="NO">
<name> Norwegia</name>
</country>
<country id="NC">
<name> Nowa Kaledonia</name>
</country>
<country id="NZ">
<name> Nowa Zelandia</name>
</country>
<country id="OM">
<name> Oman</name>
</country>
<country id="PK">
<name> Pakistan</name>
</country>
<country id="PW">
<name> Palau</name>
</country>
<country id="PS">
<name> Palestyna</name>
</country>
<country id="PA">
<name> Panama</name>
</country>
<country id="PG">
<name> Papua-Nowa Gwinea</name>
</country>
<country id="PY">
<name> Paragwaj</name>
</country>
<country id="PE">
<name> Peru</name>
</country>
<country id="PN">
<name> Pitcairn</name>
</country>
<country id="PF">
<name> Polinezja Francuska</name>
</country>
<country id="PL">
<name> Polska</name>
</country>
<country id="PR">
<name> Portoryko</name>
</country>
<country id="PT">
<name> Portugalia</name>
</country>
<country id="ZA">
<name> Republika Południowej Afryki</name>
</country>
<country id="CF">
<name> Republika Środkowoafrykańska</name>
</country>
<country id="CV">
<name> Republika Zielonego Przylądka</name>
</country>
<country id="RE">
<name> Reunion</name>
</country>
<country id="RU">
<name> Rosja</name>
</country>
<country id="RO">
<name> Rumunia</name>
</country>
<country id="RW">
<name> Rwanda</name>
</country>
<country id="EH">
<name> Sahara Zachodnia</name>
</country>
<country id="KN">
<name> Saint Kitts i Nevis</name>
</country>
<country id="LC">
<name> Saint Lucia</name>
</country>
<country id="VC">
<name> Saint Vincent i Grenadyny</name>
</country>
<country id="BL">
<name> Saint-Barthélemy</name>
</country>
<country id="MF">
<name> Saint-Martin</name>
</country>
<country id="PM">
<name> Saint-Pierre i Miquelon</name>
</country>
<country id="SV">
<name> Salwador</name>
</country>
<country id="AS">
<name> Samoa Amerykańskie</name>
</country>
<country id="WS">
<name> Samoa</name>
</country>
<country id="SM">
<name> San Marino</name>
</country>
<country id="SN">
<name> Senegal</name>
</country>
<country id="RS">
<name> Serbia</name>
</country>
<country id="SC">
<name> Seszele</name>
</country>
<country id="SL">
<name> Sierra Leone</name>
</country>
<country id="SG">
<name> Singapur</name>
</country>
<country id="SX">
<name> Sint Maarten</name>
</country>
<country id="SK">
<name> Słowacja</name>
</country>
<country id="SI">
<name> Słowenia</name>
</country>
<country id="SO">
<name> Somalia</name>
</country>
<country id="LK">
<name> Sri Lanka</name>
</country>
<country id="US">
<name> Stany Zjednoczone</name>
</country>
<country id="SZ">
<name> Suazi</name>
</country>
<country id="SD">
<name> Sudan</name>
</country>
<country id="SS">
<name> Sudan Południowy</name>
</country>
<country id="SR">
<name> Surinam</name>
</country>
<country id="SJ">
<name> Svalbard i Jan Mayen</name>
</country>
<country id="SY">
<name> Syria</name>
</country>
<country id="CH">
<name> Szwajcaria</name>
</country>
<country id="SE">
<name> Szwecja</name>
</country>
<country id="TJ">
<name> Tadżykistan</name>
</country>
<country id="TH">
<name> Tajlandia</name>
</country>
<country id="TW">
<name> Tajwan</name>
</country>
<country id="TZ">
<name> Tanzania</name>
</country>
<country id="TL">
<name> Timor Wschodni</name>
</country>
<country id="TG">
<name> Togo</name>
</country>
<country id="TK">
<name> Tokelau</name>
</country>
<country id="TO">
<name> Tonga</name>
</country>
<country id="TT">
<name> Trynidad i Tobago</name>
</country>
<country id="TN">
<name> Tunezja</name>
</country>
<country id="TR">
<name> Turcja</name>
</country>
<country id="TM">
<name> Turkmenistan</name>
</country>
<country id="TC">
<name> Turks i Caicos</name>
</country>
<country id="TV">
<name> Tuvalu</name>
</country>
<country id="UG">
<name> Uganda</name>
</country>
<country id="UA">
<name> Ukraina</name>
</country>
<country id="UY">
<name> Urugwaj</name>
</country>
<country id="UZ">
<name> Uzbekistan</name>
</country>
<country id="VU">
<name> Vanuatu</name>
</country>
<country id="WF">
<name> Wallis i Futuna</name>
</country>
<country id="VA">
<name> Watykan</name>
</country>
<country id="VE">
<name> Wenezuela</name>
</country>
<country id="HU">
<name> Węgry</name>
</country>
<country id="GB">
<name> Wielka Brytania</name>
</country>
<country id="VN">
<name> Wietnam</name>
</country>
<country id="IT">
<name> Włochy</name>
</country>
<country id="CI">
<name> Wybrzeże Kości Słoniowej</name>
</country>
<country id="BV">
<name> Wyspa Bouveta</name>
</country>
<country id="CX">
<name> Wyspa Bożego Narodzenia</name>
</country>
<country id="IM">
<name> Wyspa Man</name>
</country>
<country id="SH">
<name> Wyspa Świętej Heleny, Wyspa Wniebowstąpienia i Tristan da Cunha</name>
</country>
<country id="AX">
<name> Wyspy Alandzkie</name>
</country>
<country id="CK">
<name> Wyspy Cooka</name>
</country>
<country id="VI">
<name> Wyspy Dziewicze Stanów Zjednoczonych</name>
</country>
<country id="HM">
<name> Wyspy Heard i McDonalda</name>
</country>
<country id="CC">
<name> Wyspy Kokosowe</name>
</country>
<country id="MH">
<name> Wyspy Marshalla</name>
</country>
<country id="FO">
<name> Wyspy Owcze</name>
</country>
<country id="SB">
<name> Wyspy Salomona</name>
</country>
<country id="ST">
<name> Wyspy Świętego Tomasza i Książęca</name>
</country>
<country id="ZM">
<name> Zambia</name>
</country>
<country id="ZW">
<name> Zimbabwe</name>
</country>
<country id="AE">
<name> Zjednoczone Emiraty Arabskie</name>
</country>
</entity_country>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<entity_gender>
<gender id="1" name="Pan"/>
<gender id="2" name="Pani"/>
<gender id="3" name="Panna"/>
</entity_gender>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<entity_group>
<group id="Visitor" name="Odwiedzający"/>
<group id="Guest" name="Gość"/>
<group id="Customer" name="Klient"/>
</entity_group>
@@ -1,35 +1,35 @@
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../');
exit;
+159
View File
@@ -0,0 +1,159 @@
<?xml version="1.0"?>
<entity_meta>
<meta id="404" id_shop="1">
<title>Błąd 404</title>
<description>Nie można odnaleźć strony</description>
<keywords>błąd, 404, nie znaleziono </keywords>
<url_rewrite>nie-znaleziono-strony</url_rewrite>
</meta>
<meta id="best-sales" id_shop="1">
<title>Najczęściej kupowane</title>
<description>Nasze najlepsze sprzedaże</description>
<keywords>Najczęściej kupowane</keywords>
<url_rewrite>najczesciej-kupowane</url_rewrite>
</meta>
<meta id="contact" id_shop="1">
<title>Skontaktuj się z nami</title>
<description>Skorzystaj z formularza kontaktowego</description>
<keywords>kontakt,e-mail</keywords>
<url_rewrite>kontakt</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title/>
<description>Sklep na oprogramowaniu PrestaShop</description>
<keywords>sklep, prestashop</keywords>
<url_rewrite/>
</meta>
<meta id="manufacturer" id_shop="1">
<title>Producenci</title>
<description>Lista producentów</description>
<keywords>producent</keywords>
<url_rewrite>producenci</url_rewrite>
</meta>
<meta id="new-products" id_shop="1">
<title>Nowe produkty</title>
<description>Nasze nowe produkty</description>
<keywords>nowe, produkty</keywords>
<url_rewrite>nowe-produkty</url_rewrite>
</meta>
<meta id="password" id_shop="1">
<title>Przypomnienie hasła</title>
<description>Wpisz swój adres e-mail w celu uzyskania nowego hasła</description>
<keywords>przypomnienie, hasło, e-mail, nowy</keywords>
<url_rewrite>odzyskiwanie-hasla</url_rewrite>
</meta>
<meta id="prices-drop" id_shop="1">
<title>Promocje</title>
<description>Produkty w promocji</description>
<keywords>promocje, specjalne, spadek ceny</keywords>
<url_rewrite>promocje</url_rewrite>
</meta>
<meta id="sitemap" id_shop="1">
<title>Mapa strony</title>
<description>Zagubiłeś się? Znajdź to, czego szukasz!</description>
<keywords>mapa strony</keywords>
<url_rewrite>mapa-strony</url_rewrite>
</meta>
<meta id="supplier" id_shop="1">
<title>Dostawcy</title>
<description>Lista dostawców</description>
<keywords>dostawca</keywords>
<url_rewrite>dostawcy</url_rewrite>
</meta>
<meta id="address" id_shop="1">
<title>Adres</title>
<description/>
<keywords/>
<url_rewrite>adres</url_rewrite>
</meta>
<meta id="addresses" id_shop="1">
<title>Adresy</title>
<description/>
<keywords/>
<url_rewrite>adresy</url_rewrite>
</meta>
<meta id="authentication" id_shop="1">
<title>Logowanie</title>
<description/>
<keywords/>
<url_rewrite>logowanie</url_rewrite>
</meta>
<meta id="cart" id_shop="1">
<title>Koszyk</title>
<description/>
<keywords/>
<url_rewrite>koszyk</url_rewrite>
</meta>
<meta id="discount" id_shop="1">
<title>Rabaty</title>
<description/>
<keywords/>
<url_rewrite>rabaty</url_rewrite>
</meta>
<meta id="history" id_shop="1">
<title>Historia zamówień</title>
<description/>
<keywords/>
<url_rewrite>historia-zamowien</url_rewrite>
</meta>
<meta id="identity" id_shop="1">
<title>Dane osobiste</title>
<description/>
<keywords/>
<url_rewrite>dane-osobiste</url_rewrite>
</meta>
<meta id="my-account" id_shop="1">
<title>Moje konto</title>
<description/>
<keywords/>
<url_rewrite>moje-konto</url_rewrite>
</meta>
<meta id="order-follow" id_shop="1">
<title>Śledzenie zamówienia</title>
<description/>
<keywords/>
<url_rewrite>sledzenie-zamowienia</url_rewrite>
</meta>
<meta id="order-slip" id_shop="1">
<title>Pokwitowania</title>
<description/>
<keywords/>
<url_rewrite>pokwitowania</url_rewrite>
</meta>
<meta id="order" id_shop="1">
<title>Zamówienie</title>
<description/>
<keywords/>
<url_rewrite>zamowienie</url_rewrite>
</meta>
<meta id="search" id_shop="1">
<title>Szukaj</title>
<description/>
<keywords/>
<url_rewrite>szukaj</url_rewrite>
</meta>
<meta id="stores" id_shop="1">
<title>sklepy</title>
<description/>
<keywords/>
<url_rewrite>sklepy</url_rewrite>
</meta>
<meta id="order-opc" id_shop="1">
<title>Zamówienie</title>
<description/>
<keywords/>
<url_rewrite>szybkie-zakupy</url_rewrite>
</meta>
<meta id="guest-tracking" id_shop="1">
<title>Śledzenie zamówień gości</title>
<description/>
<keywords/>
<url_rewrite>sledzenie-zamowienia-gosc</url_rewrite>
</meta>
<meta id="order-confirmation" id_shop="1">
<title>Potwierdzenie zamówienia</title>
<description/>
<keywords/>
<url_rewrite>potwierdzenie-zamowienia</url_rewrite>
</meta>
</entity_meta>
@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<entity_order_return_state>
<order_return_state id="Waiting_for_confirmation">
<name>Oczekiwanie na potwierdzenie</name>
</order_return_state>
<order_return_state id="Waiting_for_package">
<name>Oczekiwanie na paczkę</name>
</order_return_state>
<order_return_state id="Package_received">
<name>Paczka została odebrana</name>
</order_return_state>
<order_return_state id="Return_denied">
<name>Brak akceptacji zwrotu</name>
</order_return_state>
<order_return_state id="Return_completed">
<name>Dokonanie zwrotu</name>
</order_return_state>
</entity_order_return_state>
+51
View File
@@ -0,0 +1,51 @@
<?xml version="1.0"?>
<entity_order_state>
<order_state id="Awaiting_cheque_payment">
<name>Oczekiwanie płatności czekiem</name>
<template>cheque</template>
</order_state>
<order_state id="Payment_accepted">
<name>Płatność zaakceptowana</name>
<template>payment</template>
</order_state>
<order_state id="Preparation_in_progress">
<name>Przygotowanie w toku</name>
<template>preparation</template>
</order_state>
<order_state id="Shipped">
<name>Wysłane</name>
<template>shipped</template>
</order_state>
<order_state id="Delivered">
<name>Dostarczone</name>
<template/>
</order_state>
<order_state id="Canceled">
<name>Anulowane</name>
<template>order_canceled</template>
</order_state>
<order_state id="Refund">
<name>Zwrot</name>
<template>refund</template>
</order_state>
<order_state id="Payment_error">
<name>Błąd płatonści</name>
<template>payment_error</template>
</order_state>
<order_state id="On_backorder">
<name>Brak towaru</name>
<template>outofstock</template>
</order_state>
<order_state id="Awaiting_bank_wire_payment">
<name>Oczekiwanie na płatność przelewem bankowym</name>
<template>bankwire</template>
</order_state>
<order_state id="Awaiting_PayPal_payment">
<name>Oczekiwanie na płatność Paypal</name>
<template/>
</order_state>
<order_state id="Payment_remotely_accepted">
<name>Płatność przyjęta</name>
<template>payment</template>
</order_state>
</entity_order_state>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<entity_profile>
<profile id="SuperAdmin">
<name>Super Admin</name>
</profile>
</entity_profile>
@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<entity_quick_access>
<quick_access id="Home" name="Strona główna"/>
<quick_access id="My_Shop" name="Mój sklep"/>
<quick_access id="New_category" name="Nowa kategoria"/>
<quick_access id="New_product" name="Nowy produkt"/>
<quick_access id="New_voucher" name="Nowy kupon"/>
</entity_quick_access>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0"?>
<entity_risk>
<risk id="None" name="Żaden"/>
<risk id="Low" name="Niski"/>
<risk id="Medium" name="Średni"/>
<risk id="High" name="Wysoki"/>
</entity_risk>
@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<entity_stock_mvt_reason>
<stock_mvt_reason id="Increase">
<name>Wzrost</name>
</stock_mvt_reason>
<stock_mvt_reason id="Decrease">
<name>Spadek</name>
</stock_mvt_reason>
<stock_mvt_reason id="Customer_Order">
<name>Zamówienie klienta</name>
</stock_mvt_reason>
<stock_mvt_reason id="Regulation_following_an_inventory_of_stock">
<name>Rozporządzenie dotyczące inwentaryzacji zapasów</name>
</stock_mvt_reason>
<stock_mvt_reason id="Regulation_following_an_inventory_of_stock_1">
<name>Rozporządzenie dotyczące inwentaryzacji zapasów</name>
</stock_mvt_reason>
<stock_mvt_reason id="Transfer_to_another_warehouse">
<name>Przeniesienie do innego magazynu</name>
</stock_mvt_reason>
<stock_mvt_reason id="Transfer_from_another_warehouse">
<name>Przeniesienie z innego magazynu</name>
</stock_mvt_reason>
<stock_mvt_reason id="Supply_Order">
<name>Zamówienie dostawcy</name>
</stock_mvt_reason>
</entity_stock_mvt_reason>

Some files were not shown because too many files have changed in this diff Show More