//MERGE branche release
This commit is contained in:
220
CONTRIBUTORS.md
220
CONTRIBUTORS.md
@@ -1,80 +1,140 @@
|
|||||||
- (d)oekia
|
- adonis karavokyros
|
||||||
- Alexander Otchenashev
|
- aFolletete
|
||||||
- Benjamin PONGY
|
- Agence CINS
|
||||||
- Burhan
|
- aKorczak
|
||||||
- Caleydon Media
|
- Alexander Otchenashev
|
||||||
- Damien Metzger
|
- anat
|
||||||
- DamienMetzger
|
- Andrew
|
||||||
- Damon Skelhorn
|
- aNiassy
|
||||||
- Daniel
|
- antoniofr
|
||||||
- David Gasperoni
|
- AntonLejon
|
||||||
- DrySs
|
- Arnaud Lemercier
|
||||||
- DrÿSs'
|
- Axome
|
||||||
- François Gaillard
|
- Benjamin PONGY
|
||||||
- Gabriel Schwardy
|
- BigZ
|
||||||
- Gregory Roussac
|
- bLeveque
|
||||||
- Ha!*!*y
|
- bMancone
|
||||||
- Jonathan Danse
|
- bumbu
|
||||||
- Krystian Podemski
|
- Burhan
|
||||||
- Marco Cervellin
|
- Cédric Mouleyre
|
||||||
- Michel Courtade
|
- Caleydon Media
|
||||||
- Milow
|
- cam.lafit
|
||||||
- Patanock
|
- Captain FLAM
|
||||||
- Pierre
|
- Captain-FLAM
|
||||||
- PrestaEdit
|
- ccauw
|
||||||
- Raphaël Malié
|
- ChristopheBoucaut
|
||||||
- Rémi Gaillard
|
- cippest
|
||||||
- Samy Rabih
|
- cmouleyre
|
||||||
- Sarah Lorenzini
|
- Corentin Delcourt
|
||||||
- Shagshag
|
- Cosmin Hutanu
|
||||||
- Vincent Augagneur
|
- Damien Metzger
|
||||||
- Xavier POITAU
|
- DamienMetzger
|
||||||
- aFolletete
|
- Damon Skelhorn
|
||||||
- aKorczak
|
- Daniel
|
||||||
- aNiassy
|
- David Gasperoni
|
||||||
- adonis karavokyros
|
- Davy Rolink
|
||||||
- anat
|
- djfm
|
||||||
- bLeveque
|
- dMetzger
|
||||||
- bMancone
|
- (d)oekia
|
||||||
- bumbu
|
- Dragan Skrbic
|
||||||
- cmouleyre
|
- DrÿSs'
|
||||||
- dMetzger
|
- dreammeup
|
||||||
- dSevere
|
- DrySs
|
||||||
- djfm
|
- dSevere
|
||||||
- fBrignoli
|
- Edouard Gaulué
|
||||||
- fSerny
|
- emily-d
|
||||||
- fram
|
- Fabio Chelly
|
||||||
- gBrunier
|
- fBrignoli
|
||||||
- gCharmes
|
- fram
|
||||||
- gPoulain
|
- François Gaillard
|
||||||
- gRoussac
|
- fSerny
|
||||||
- hAitmansour
|
- Gabriel Schwardy
|
||||||
- ivancasasempere
|
- gBrunier
|
||||||
- jBreux
|
- gCharmes
|
||||||
- jObregon
|
- gPoulain
|
||||||
- jessylenne
|
- Grégoire Bélorgey
|
||||||
- jmCollin
|
- Gregory Roussac
|
||||||
- kpodemski
|
- gRoussac
|
||||||
- lBrieu
|
- Guillaume DELOINCE
|
||||||
- lCherifi
|
- hAitmansour
|
||||||
- lLefevre
|
- Ha!*!*y
|
||||||
- mBertholino
|
- indesign47
|
||||||
- mDeflotte
|
- inem0o
|
||||||
- mMarinetti
|
- ivancasasempere
|
||||||
- marcinsz101
|
- Jérôme Nadaud
|
||||||
- montes
|
- jBreux
|
||||||
- nPellicari
|
- jeromenadaud
|
||||||
- nezenmoins
|
- Jerome Nadaud
|
||||||
- oleacorner
|
- jessylenne
|
||||||
- rGaillard
|
- jmCollin
|
||||||
- rMalie
|
- jObregon
|
||||||
- rMontagne
|
- Jonathan Danse
|
||||||
- root
|
- joseantgv
|
||||||
- sLorenzini
|
- Kevin Granger
|
||||||
- sThiebaut
|
- kpodemski
|
||||||
- tDidierjean
|
- Krystian Podemski
|
||||||
- vAugagneur
|
- lBrieu
|
||||||
- vChabot
|
- lCherifi
|
||||||
- vKham
|
- ldecoker
|
||||||
- vSchoener
|
- lLefevre
|
||||||
|
- marcinsz101
|
||||||
|
- Marco Cervellin
|
||||||
|
- Mats Rynge
|
||||||
|
- MatthieuB
|
||||||
|
- Maxence
|
||||||
|
- mBertholino
|
||||||
|
- mDeflotte
|
||||||
|
- Michel Courtade
|
||||||
|
- Milow
|
||||||
|
- minic studio
|
||||||
|
- misthero
|
||||||
|
- mMarinetti
|
||||||
|
- montes
|
||||||
|
- nezenmoins
|
||||||
|
- Nicolas Sorosac
|
||||||
|
- Nils-Helge Garli Hegvik
|
||||||
|
- nPellicari
|
||||||
|
- nturato
|
||||||
|
- oleacorner
|
||||||
|
- Otto Nascarella
|
||||||
|
- Patanock
|
||||||
|
- PhpMadman
|
||||||
|
- Pierre
|
||||||
|
- Piotr Kaczor
|
||||||
|
- Piotr Moćko
|
||||||
|
- PrestaEdit
|
||||||
|
- prestarocket
|
||||||
|
- pxls
|
||||||
|
- Rémi Gaillard
|
||||||
|
- Raphaël Malié
|
||||||
|
- raulgundin
|
||||||
|
- rGaillard
|
||||||
|
- Rimas Kudelis
|
||||||
|
- rMalie
|
||||||
|
- rMontagne
|
||||||
|
- root
|
||||||
|
- runningz
|
||||||
|
- Sébastien
|
||||||
|
- Sébastien Bocahu
|
||||||
|
- Samy Rabih
|
||||||
|
- Sarah Lorenzini
|
||||||
|
- Seb
|
||||||
|
- Seynaeve
|
||||||
|
- Shagshag
|
||||||
|
- sLorenzini
|
||||||
|
- soware
|
||||||
|
- Staging
|
||||||
|
- sThiebaut
|
||||||
|
- Sylvain WITMEYER
|
||||||
|
- tDidierjean
|
||||||
|
- vAugagneur
|
||||||
|
- vChabot
|
||||||
|
- Vincent Augagneur
|
||||||
|
- Vincent Schoener
|
||||||
|
- Vincent Terenti
|
||||||
|
- vinvin27
|
||||||
|
- vKham
|
||||||
|
- vSchoener
|
||||||
|
- Xavier
|
||||||
|
- Xavier POITAU
|
||||||
|
- Yoozio
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
{if $input.name == 'zones'}
|
{if $input.name == 'zones'}
|
||||||
<div class="ranges_not_follow warn" style="display:none">
|
<div class="ranges_not_follow warn" style="display:none">
|
||||||
<label>{l s="Ranges are not correctly ordered:"}</label>
|
<label>{l s="Ranges are not correctly ordered:"}</label>
|
||||||
<a href="#" class="button" style="text-decoration:none">{l s="Reordering"}</a>
|
<a href="#" onclick="checkRangeContinuity(true); return false;" class="button" style="text-decoration:none">{l s="Reordering"}</a>
|
||||||
</div>
|
</div>
|
||||||
{include file='controllers/carrier_wizard/helpers/form/form_ranges.tpl'}
|
{include file='controllers/carrier_wizard/helpers/form/form_ranges.tpl'}
|
||||||
<!--
|
<!--
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="fees_all">
|
<tr class="fees_all">
|
||||||
<td class="border_top border_bottom border_bold"><span class="fees_all" {if $ranges|count == 0}style="display:none" {/if}>All</span></td>
|
<td class="border_top border_bottom border_bold"><span class="fees_all" {if $ranges|count == 0}style="display:none" {/if}>All</span></td>
|
||||||
<td></td>
|
<td><input type="checkbox" onclick="checkAllZones(this);" ></td>
|
||||||
{foreach from=$ranges key=r item=range}
|
{foreach from=$ranges key=r item=range}
|
||||||
<td class="center border_top border_bottom {if $range.id_range != 0} validated {/if}" >
|
<td class="center border_top border_bottom {if $range.id_range != 0} validated {/if}" >
|
||||||
<input type="text" {if isset($form_id) && !$form_id} disabled="disabled"{/if} {if $range.id_range == 0} style="display:none"{/if} /><span class="currency_sign" {if $range.id_range == 0} style="display:none" {/if}> {$currency_sign}</span>
|
<input type="text" {if isset($form_id) && !$form_id} disabled="disabled"{/if} {if $range.id_range == 0} style="display:none"{/if} /><span class="currency_sign" {if $range.id_range == 0} style="display:none" {/if}> {$currency_sign}</span>
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
var PS_WEIGHT_UNIT = '{$PS_WEIGHT_UNIT}';
|
var PS_WEIGHT_UNIT = '{$PS_WEIGHT_UNIT}';
|
||||||
var invalid_range = '{l s='This range is not valid' js=1}';
|
var invalid_range = '{l s='This range is not valid' js=1}';
|
||||||
var range_is_overlapping = '{l s='Ranges are overlapping' js=1}';
|
var range_is_overlapping = '{l s='Ranges are overlapping' js=1}';
|
||||||
|
var multistore_enable = '{$multistore_enable}';
|
||||||
</script>
|
</script>
|
||||||
<div id="carrier_wizard" class="swMain">
|
<div id="carrier_wizard" class="swMain">
|
||||||
<ul class="nbr_steps_{$wizard_steps.steps|count}">
|
<ul class="nbr_steps_{$wizard_steps.steps|count}">
|
||||||
|
|||||||
@@ -25,14 +25,12 @@
|
|||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var summary_translation_undefined = '{l s='[undefined]' js=1}';
|
var summary_translation_undefined = '{l s='[undefined]' js=1}';
|
||||||
|
var summary_translation_meta_informations = '{l s='This carrier is @s1 and the delivery announced is: @s2.' js=1}';
|
||||||
var summary_translation_meta_informations = '{l s='This carrier is @s1 and the displayed delivery time is: @s2.' js=1}';
|
|
||||||
var summary_translation_free = '<strong>{l s='free' js=1}</strong>';
|
var summary_translation_free = '<strong>{l s='free' js=1}</strong>';
|
||||||
var summary_translation_paid = '<strong>{l s='paid' js=1}</strong>';
|
var summary_translation_paid = '<strong>{l s='not free' js=1}</strong>';
|
||||||
|
var summary_translation_range = '<span class="is_free">{l s='This carrier can deliver orders from @s1 to @s2.' js=1}</span>';
|
||||||
var summary_translation_range = '{l s='This carrier can deliver orders from @s1 to @s2. If the order is out of range, the behavior is to @s3.' js=1}';
|
var summary_translation_range_limit = '{l s='If the order is out of range, the behavior is to @s3.' js=1}';
|
||||||
|
var summary_translation_shipping_cost = '{l s='The shipping cost is calculated @s1 and the tax rule @s2 will be applied.' js=1}';
|
||||||
var summary_translation_shipping_cost = '{l s='The shipping cost is calculated @s1 and the tax rule @s2 is applied.' js=1}';
|
|
||||||
var summary_translation_price = '<strong>{l s='according to the price' js=1}</strong>';
|
var summary_translation_price = '<strong>{l s='according to the price' js=1}</strong>';
|
||||||
var summary_translation_weight = '<strong>{l s='according to the weight' js=1}</strong>';
|
var summary_translation_weight = '<strong>{l s='according to the weight' js=1}</strong>';
|
||||||
</script>
|
</script>
|
||||||
@@ -47,18 +45,18 @@
|
|||||||
<div id="summary_range"></div>
|
<div id="summary_range"></div>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
<div>
|
<div>
|
||||||
{l s='It will be displayed only for the following zones:'}
|
{l s='This carrier will be proposed for those delivery zones:'}
|
||||||
<ul id="summary_zones"></ul>
|
<ul id="summary_zones"></ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
<div>
|
<div>
|
||||||
{l s='It will be displayed only for the following groups:'}
|
{l s='And it will be proposed for those client groups:'}
|
||||||
<ul id="summary_groups"></ul>
|
<ul id="summary_groups"></ul>
|
||||||
</div>
|
</div>
|
||||||
{if $is_multishop}
|
{if $is_multishop}
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
<div>
|
<div>
|
||||||
{l s='It will be displayed only for the following shops:'}
|
{l s='Finally, this carrier will be proposed in those shops:'}
|
||||||
<ul id="summary_shops"></ul>
|
<ul id="summary_shops"></ul>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
{if $shared_category}
|
{if $shared_category}
|
||||||
<p class="warn">{l s='If you delete this picture, it will be deleted in all of your shared shops!'}</p>
|
<p class="warn">{l s='If you delete this picture, it will be deleted in all of your shared shops!'}</p>
|
||||||
{/if}
|
{/if}
|
||||||
<br>
|
<br />
|
||||||
<a href="{$current}&{$identifier}={$form_id}&token={$token}&{if $shared_category}forcedeleteImage=1{else}deleteImage=1{/if}">
|
<a href="{$current}&{$identifier}={$form_id}&token={$token}&{if $shared_category}forcedeleteImage=1{else}deleteImage=1{/if}">
|
||||||
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
||||||
</a>
|
</a>
|
||||||
@@ -71,4 +71,4 @@
|
|||||||
<span>{$input.customer}</span><br />
|
<span>{$input.customer}</span><br />
|
||||||
</p>
|
</p>
|
||||||
{/if}
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
<td align="center" class="productQuantity">{$product['customizationQuantityTotal']}</td>
|
<td align="center" class="productQuantity">{$product['customizationQuantityTotal']}</td>
|
||||||
|
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
||||||
{if ($order->hasBeenPaid())}<td align="center" class="productQuantity">{$product['customizationQuantityRefunded']}</td>{/if}
|
{if ($order->hasBeenPaid())}<td align="center" class="productQuantity">{$product['customizationQuantityRefunded']}</td>{/if}
|
||||||
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<td align="center" class="productQuantity">{$product['customizationQuantityReturned']}</td>{/if}
|
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<td align="center" class="productQuantity">{$product['customizationQuantityReturned']}</td>{/if}
|
||||||
{if $stock_management}<td align="center" class=""> - </td>{/if}
|
{if $stock_management}<td align="center" class=""> - </td>{/if}
|
||||||
@@ -103,6 +104,7 @@
|
|||||||
</span>
|
</span>
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
|
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
||||||
{if ($order->hasBeenPaid())}<td align="center">{$customization['quantity_refunded']}</td>{/if}
|
{if ($order->hasBeenPaid())}<td align="center">{$customization['quantity_refunded']}</td>{/if}
|
||||||
{if ($order->hasBeenDelivered())}<td align="center">{$customization['quantity_returned']}</td>{/if}
|
{if ($order->hasBeenDelivered())}<td align="center">{$customization['quantity_returned']}</td>{/if}
|
||||||
<td align="center">
|
<td align="center">
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td style="display:none;" align="center" class="productQuantity"><input type="text" name="add_product[product_quantity]" id="add_product_product_quantity" value="1" size="3" disabled="disabled" /></td>
|
<td style="display:none;" align="center" class="productQuantity"><input type="text" name="add_product[product_quantity]" id="add_product_product_quantity" value="1" size="3" disabled="disabled" /></td>
|
||||||
{if ($order->hasBeenPaid())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
{if ($order->hasBeenPaid())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
||||||
|
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
||||||
{if ($order->hasBeenDelivered())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
{if ($order->hasBeenDelivered())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
||||||
<td style="display:none;" align="center" class="productQuantity" id="add_product_product_stock">0</td>
|
<td style="display:none;" align="center" class="productQuantity" id="add_product_product_stock">0</td>
|
||||||
<td style="display:none;" align="center" id="add_product_product_total">{displayPrice price=0 currency=$currency->id}</td>
|
<td style="display:none;" align="center" id="add_product_product_total">{displayPrice price=0 currency=$currency->id}</td>
|
||||||
|
|||||||
@@ -56,6 +56,7 @@
|
|||||||
</span>
|
</span>
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
|
{if $display_warehouse}<td>{$product.warehouse_name|escape:'htmlall':'UTF-8'}</td>{/if}
|
||||||
{if ($order->hasBeenPaid())}
|
{if ($order->hasBeenPaid())}
|
||||||
<td align="center" class="productQuantity">
|
<td align="center" class="productQuantity">
|
||||||
{$product['product_quantity_refunded']}
|
{$product['product_quantity_refunded']}
|
||||||
|
|||||||
@@ -592,6 +592,7 @@
|
|||||||
<th>{l s='Product'}</th>
|
<th>{l s='Product'}</th>
|
||||||
<th style="width: 15%; text-align: center">{l s='Unit Price'} <sup>*</sup></th>
|
<th style="width: 15%; text-align: center">{l s='Unit Price'} <sup>*</sup></th>
|
||||||
<th style="width: 4%; text-align: center">{l s='Qty'}</th>
|
<th style="width: 4%; text-align: center">{l s='Qty'}</th>
|
||||||
|
{if $display_warehouse}<th style="text-align: center">{l s='Warehouse'}</th>{/if}
|
||||||
{if ($order->hasBeenPaid())}<th style="width: 3%; text-align: center">{l s='Refunded'}</th>{/if}
|
{if ($order->hasBeenPaid())}<th style="width: 3%; text-align: center">{l s='Refunded'}</th>{/if}
|
||||||
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<th style="width: 3%; text-align: center">{l s='Returned'}</th>{/if}
|
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<th style="width: 3%; text-align: center">{l s='Returned'}</th>{/if}
|
||||||
{if $stock_management}<th style="width: 10%; text-align: center">{l s='Available quantity'}</th>{/if}
|
{if $stock_management}<th style="width: 10%; text-align: center">{l s='Available quantity'}</th>{/if}
|
||||||
|
|||||||
@@ -31,6 +31,14 @@
|
|||||||
{if isset($modules_list)}
|
{if isset($modules_list)}
|
||||||
{$modules_list}
|
{$modules_list}
|
||||||
{/if}
|
{/if}
|
||||||
|
<div class="space info">
|
||||||
|
{l s='This is where you decide what payment modules are available for different variations like your customers\' currency, group, and country.'}
|
||||||
|
<br />
|
||||||
|
{l s='A check mark indicates you want the payment module available.'}
|
||||||
|
{l s='If it is not checked then this means that the Payment module is disabled.'}
|
||||||
|
<br />
|
||||||
|
{l s='Please make sure to click Save for each section.'}
|
||||||
|
</div>
|
||||||
{if $display_restrictions}
|
{if $display_restrictions}
|
||||||
<br /><h2 class="space">{l s='Payment module restrictions'}</h2>
|
<br /><h2 class="space">{l s='Payment module restrictions'}</h2>
|
||||||
{foreach $lists as $list}
|
{foreach $lists as $list}
|
||||||
|
|||||||
@@ -40,6 +40,9 @@
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
|
{if $input.type == 'radio' && $input.name == 'smarty_cache'}
|
||||||
|
<a href="{$current}&token={$token}&empty_smarty_cache=1" class="clear button" href="">{l s='Clear Smarty cache'}</a>
|
||||||
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
{block name="description"}
|
{block name="description"}
|
||||||
|
|||||||
@@ -161,6 +161,13 @@ function add_condition(id_condition_group, type, value)
|
|||||||
function delete_condition(condition)
|
function delete_condition(condition)
|
||||||
{
|
{
|
||||||
delete conditions[condition];
|
delete conditions[condition];
|
||||||
|
|
||||||
|
to_delete = $('#'+condition).prev();
|
||||||
|
if ($(to_delete).children().hasClass('btn_delete_condition'))
|
||||||
|
$(to_delete).remove();
|
||||||
|
else
|
||||||
|
$('#'+condition).next().remove();
|
||||||
|
|
||||||
$('#'+condition).remove();
|
$('#'+condition).remove();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -178,7 +185,7 @@ function new_condition_group()
|
|||||||
function appendConditionToGroup(html)
|
function appendConditionToGroup(html)
|
||||||
{
|
{
|
||||||
if ($('#condition_group_'+current_id_condition_group+' table tbody tr').length > 0)
|
if ($('#condition_group_'+current_id_condition_group+' table tbody tr').length > 0)
|
||||||
$('#condition_group_'+current_id_condition_group+' table tbody').append('<tr><td align="center" colspan="3"><b>{l s='AND' js=1}</b></td></tr>');
|
$('#condition_group_'+current_id_condition_group+' table tbody').append('<tr><td align="center" class="btn_delete_condition" colspan="3"><b>{l s='AND' js=1}</b></td></tr>');
|
||||||
$('#condition_group_'+current_id_condition_group+' table tbody').append(html);
|
$('#condition_group_'+current_id_condition_group+' table tbody').append(html);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,8 @@
|
|||||||
{/if}
|
{/if}
|
||||||
| <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">{l s='Contact'}</a>
|
| <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">{l s='Contact'}</a>
|
||||||
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">{l s='Bug Tracker'}</a>
|
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">{l s='Bug Tracker'}</a>
|
||||||
| <a href="http://www.prestashop.com/forums/" target="_blank" class="footer_link">{l s='Forum'}</a>
|
| <a href="http://www.prestashop.com/forums/" target="_blank" class="footer_link">{l s='Forum'}</a>
|
||||||
|
| <a href="http://addons.prestashop.com/" target="_blank" class="footer_link">{l s='Addons'}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -142,12 +142,15 @@ class AttributeGroupCore extends ObjectModel
|
|||||||
if (!AttributeGroup::cleanDeadCombinations())
|
if (!AttributeGroup::cleanDeadCombinations())
|
||||||
return false;
|
return false;
|
||||||
/* Also delete related attributes */
|
/* Also delete related attributes */
|
||||||
if (Db::getInstance()->execute('
|
if (count($to_remove))
|
||||||
|
if (!Db::getInstance()->execute('
|
||||||
DELETE FROM `'._DB_PREFIX_.'attribute_lang`
|
DELETE FROM `'._DB_PREFIX_.'attribute_lang`
|
||||||
WHERE `id_attribute`
|
WHERE `id_attribute` IN ('.implode(',', $to_remove).')') ||
|
||||||
IN (SELECT id_attribute FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id.')') === false ||
|
!Db::getInstance()->execute('
|
||||||
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id) === false)
|
DELETE FROM `'._DB_PREFIX_.'attribute_shop`
|
||||||
return false;
|
WHERE `id_attribute` IN ('.implode(',', $to_remove).')') ||
|
||||||
|
!Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id))
|
||||||
|
return false;
|
||||||
$this->cleanPositions();
|
$this->cleanPositions();
|
||||||
}
|
}
|
||||||
$return = parent::delete();
|
$return = parent::delete();
|
||||||
|
|||||||
@@ -1291,7 +1291,7 @@ class CarrierCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
if ($delete)
|
if ($delete)
|
||||||
Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'carrier_group WHERE id_carrier = '.(int)$this->id);
|
Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'carrier_group WHERE id_carrier = '.(int)$this->id);
|
||||||
if (!count($groups))
|
if (!is_array($groups) || !count($groups))
|
||||||
return true;
|
return true;
|
||||||
$sql = 'INSERT INTO '._DB_PREFIX_.'carrier_group (id_carrier, id_group) VALUES ';
|
$sql = 'INSERT INTO '._DB_PREFIX_.'carrier_group (id_carrier, id_group) VALUES ';
|
||||||
foreach ($groups as $id_group)
|
foreach ($groups as $id_group)
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ class CombinationCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
$result = Db::getInstance()->delete('product_attribute_combination', '`id_product_attribute` = '.(int)$this->id);
|
$result = Db::getInstance()->delete('product_attribute_combination', '`id_product_attribute` = '.(int)$this->id);
|
||||||
$result &= Db::getInstance()->delete('cart_product', '`id_product_attribute` = '.(int)$this->id);
|
$result &= Db::getInstance()->delete('cart_product', '`id_product_attribute` = '.(int)$this->id);
|
||||||
|
$result &= Db::getInstance()->delete('product_attribute_image', '`id_product_attribute` = '.(int)$this->id);
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,6 +549,9 @@ class DispatcherCore
|
|||||||
if ($id_shop === null)
|
if ($id_shop === null)
|
||||||
$id_shop = (int)Context::getContext()->shop->id;
|
$id_shop = (int)Context::getContext()->shop->id;
|
||||||
|
|
||||||
|
if ($this->use_routes && !isset($this->routes[$id_shop]))
|
||||||
|
$this->loadRoutes($id_shop);
|
||||||
|
|
||||||
if (!isset($this->routes[$id_shop]) || !isset($this->routes[$id_shop][$id_lang]) || !isset($this->routes[$id_shop][$id_lang][$route_id]))
|
if (!isset($this->routes[$id_shop]) || !isset($this->routes[$id_shop][$id_lang]) || !isset($this->routes[$id_shop][$id_lang][$route_id]))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|||||||
@@ -248,8 +248,8 @@ class EmployeeCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
/* Employee is valid only if it can be load and if cookie password is the same as database one */
|
/* Employee is valid only if it can be load and if cookie password is the same as database one */
|
||||||
Cache::store('isLoggedBack'.$this->id, (
|
Cache::store('isLoggedBack'.$this->id, (
|
||||||
$this->id && Validate::isUnsignedId($this->id) && Employee::checkPassword($this->id, $this->passwd)
|
$this->id && Validate::isUnsignedId($this->id) && Employee::checkPassword($this->id, Context::getContext()->cookie->passwd)
|
||||||
&& (!isset($this->remote_addr) || $this->remote_addr == ip2long(Tools::getRemoteAddr()) || !Configuration::get('PS_COOKIE_CHECKIP'))
|
&& (!isset(Context::getContext()->cookie->remote_addr) || Context::getContext()->cookie->remote_addr == ip2long(Tools::getRemoteAddr()) || !Configuration::get('PS_COOKIE_CHECKIP'))
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
return Cache::retrieve('isLoggedBack'.$this->id);
|
return Cache::retrieve('isLoggedBack'.$this->id);
|
||||||
@@ -261,7 +261,10 @@ class EmployeeCore extends ObjectModel
|
|||||||
public function logout()
|
public function logout()
|
||||||
{
|
{
|
||||||
if (isset(Context::getContext()->cookie))
|
if (isset(Context::getContext()->cookie))
|
||||||
|
{
|
||||||
Context::getContext()->cookie->logout();
|
Context::getContext()->cookie->logout();
|
||||||
|
Context::getContext()->cookie->write();
|
||||||
|
}
|
||||||
$this->id = null;
|
$this->id = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ class LanguageCore extends ObjectModel
|
|||||||
/** @var array Languages cache */
|
/** @var array Languages cache */
|
||||||
protected static $_checkedLangs;
|
protected static $_checkedLangs;
|
||||||
protected static $_LANGUAGES;
|
protected static $_LANGUAGES;
|
||||||
protected static $countActiveLanguages;
|
protected static $countActiveLanguages = array();
|
||||||
|
|
||||||
protected $webserviceParameters = array(
|
protected $webserviceParameters = array(
|
||||||
'objectNodeName' => 'language',
|
'objectNodeName' => 'language',
|
||||||
@@ -756,15 +756,18 @@ class LanguageCore extends ObjectModel
|
|||||||
return (isset(self::$_cache_language_installation[$iso_code]) ? self::$_cache_language_installation[$iso_code] : false);
|
return (isset(self::$_cache_language_installation[$iso_code]) ? self::$_cache_language_installation[$iso_code] : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function countActiveLanguages()
|
public static function countActiveLanguages($id_shop = null)
|
||||||
{
|
{
|
||||||
if (!self::$countActiveLanguages)
|
if ($id_shop === null)
|
||||||
self::$countActiveLanguages = Db::getInstance()->getValue('
|
$id_shop = (int)Context::getContext()->shop->id;
|
||||||
|
|
||||||
|
if (!isset(self::$countActiveLanguages[$id_shop]))
|
||||||
|
self::$countActiveLanguages[$id_shop] = Db::getInstance()->getValue('
|
||||||
SELECT COUNT(DISTINCT l.id_lang) FROM `'._DB_PREFIX_.'lang` l
|
SELECT COUNT(DISTINCT l.id_lang) FROM `'._DB_PREFIX_.'lang` l
|
||||||
'.Shop::addSqlAssociation('lang', 'l').'
|
JOIN '._DB_PREFIX_.'lang_shop lang_shop ON (lang_shop.id_lang = l.id_lang AND lang_shop.id_shop = '.(int)$id_shop.')
|
||||||
WHERE l.`active` = 1
|
WHERE l.`active` = 1
|
||||||
');
|
');
|
||||||
return self::$countActiveLanguages;
|
return self::$countActiveLanguages[$id_shop];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function downloadAndInstallLanguagePack($iso, $version = null, $params = null)
|
public static function downloadAndInstallLanguagePack($iso, $version = null, $params = null)
|
||||||
@@ -819,8 +822,8 @@ class LanguageCore extends ObjectModel
|
|||||||
* @since 1.5.0
|
* @since 1.5.0
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function isMultiLanguageActivated()
|
public static function isMultiLanguageActivated($id_shop = null)
|
||||||
{
|
{
|
||||||
return (Language::countActiveLanguages() > 1);
|
return (Language::countActiveLanguages($id_shop) > 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,14 +96,14 @@ class LinkCore
|
|||||||
else
|
else
|
||||||
$shop = Context::getContext()->shop;
|
$shop = Context::getContext()->shop;
|
||||||
|
|
||||||
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang);
|
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang, null, $id_shop);
|
||||||
|
|
||||||
if (!is_object($product))
|
if (!is_object($product))
|
||||||
{
|
{
|
||||||
if (is_array($product) && isset($product['id_product']))
|
if (is_array($product) && isset($product['id_product']))
|
||||||
$product = new Product($product['id_product'], false, $id_lang);
|
$product = new Product($product['id_product'], false, $id_lang, $id_shop);
|
||||||
elseif ((int)$product)
|
elseif ((int)$product)
|
||||||
$product = new Product((int)$product, false, $id_lang);
|
$product = new Product((int)$product, false, $id_lang, $id_shop);
|
||||||
else
|
else
|
||||||
throw new PrestaShopException('Invalid product vars');
|
throw new PrestaShopException('Invalid product vars');
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@ class LinkCore
|
|||||||
$shop = Context::getContext()->shop;
|
$shop = Context::getContext()->shop;
|
||||||
else
|
else
|
||||||
$shop = new Shop($id_shop);
|
$shop = new Shop($id_shop);
|
||||||
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang);
|
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang, null, $id_shop);
|
||||||
|
|
||||||
if (!is_object($category))
|
if (!is_object($category))
|
||||||
$category = new Category($category, $id_lang);
|
$category = new Category($category, $id_lang);
|
||||||
@@ -210,7 +210,7 @@ class LinkCore
|
|||||||
$shop = Context::getContext()->shop;
|
$shop = Context::getContext()->shop;
|
||||||
else
|
else
|
||||||
$shop = new Shop($id_shop);
|
$shop = new Shop($id_shop);
|
||||||
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang);
|
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang, null, $id_shop);
|
||||||
|
|
||||||
$dispatcher = Dispatcher::getInstance();
|
$dispatcher = Dispatcher::getInstance();
|
||||||
if (!is_object($cms_category))
|
if (!is_object($cms_category))
|
||||||
@@ -250,7 +250,7 @@ class LinkCore
|
|||||||
$shop = Context::getContext()->shop;
|
$shop = Context::getContext()->shop;
|
||||||
else
|
else
|
||||||
$shop = new Shop($id_shop);
|
$shop = new Shop($id_shop);
|
||||||
$url = $base.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang);
|
$url = $base.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang, null, $id_shop);
|
||||||
|
|
||||||
|
|
||||||
$dispatcher = Dispatcher::getInstance();
|
$dispatcher = Dispatcher::getInstance();
|
||||||
@@ -294,7 +294,7 @@ class LinkCore
|
|||||||
$shop = Context::getContext()->shop;
|
$shop = Context::getContext()->shop;
|
||||||
else
|
else
|
||||||
$shop = new Shop($id_shop);
|
$shop = new Shop($id_shop);
|
||||||
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang);
|
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang, null, $id_shop);
|
||||||
|
|
||||||
$dispatcher = Dispatcher::getInstance();
|
$dispatcher = Dispatcher::getInstance();
|
||||||
if (!is_object($supplier))
|
if (!is_object($supplier))
|
||||||
@@ -331,7 +331,7 @@ class LinkCore
|
|||||||
$shop = Context::getContext()->shop;
|
$shop = Context::getContext()->shop;
|
||||||
else
|
else
|
||||||
$shop = new Shop($id_shop);
|
$shop = new Shop($id_shop);
|
||||||
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang);
|
$url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang, null, $id_shop);
|
||||||
|
|
||||||
$dispatcher = Dispatcher::getInstance();
|
$dispatcher = Dispatcher::getInstance();
|
||||||
if (!is_object($manufacturer))
|
if (!is_object($manufacturer))
|
||||||
@@ -371,17 +371,18 @@ class LinkCore
|
|||||||
$shop = Context::getContext()->shop;
|
$shop = Context::getContext()->shop;
|
||||||
else
|
else
|
||||||
$shop = new Shop($id_shop);
|
$shop = new Shop($id_shop);
|
||||||
$url = $base.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang);
|
$url = $base.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang, null, $id_shop);
|
||||||
|
|
||||||
// Set available keywords
|
|
||||||
$params['module'] = $module;
|
|
||||||
$params['controller'] = $controller ? $controller : 'default';
|
|
||||||
|
|
||||||
// If the module has its own route ... just use it !
|
// If the module has its own route ... just use it !
|
||||||
if (Dispatcher::getInstance()->hasRoute('module-'.$module.'-'.$controller, $id_lang, $id_shop))
|
if (Dispatcher::getInstance()->hasRoute('module-'.$module.'-'.$controller, $id_lang, $id_shop))
|
||||||
return $this->getPageLink('module-'.$module.'-'.$controller, $ssl, $id_lang, $params);
|
return $this->getPageLink('module-'.$module.'-'.$controller, $ssl, $id_lang, $params);
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
// Set available keywords
|
||||||
|
$params['module'] = $module;
|
||||||
|
$params['controller'] = $controller ? $controller : 'default';
|
||||||
return $url.Dispatcher::getInstance()->createUrl('module', $id_lang, $params, $this->allow, '', $id_shop);
|
return $url.Dispatcher::getInstance()->createUrl('module', $id_lang, $params, $this->allow, '', $id_shop);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -475,7 +476,7 @@ class LinkCore
|
|||||||
|
|
||||||
$uri_path = Dispatcher::getInstance()->createUrl($controller, $id_lang, $request, false, '', $id_shop);
|
$uri_path = Dispatcher::getInstance()->createUrl($controller, $id_lang, $request, false, '', $id_shop);
|
||||||
$url = ($ssl && $this->ssl_enable) ? 'https://' : 'http://';
|
$url = ($ssl && $this->ssl_enable) ? 'https://' : 'http://';
|
||||||
$url .= $shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang).ltrim($uri_path, '/');
|
$url .= $shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang, null, $id_shop).ltrim($uri_path, '/');
|
||||||
|
|
||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
@@ -509,6 +510,7 @@ class LinkCore
|
|||||||
unset($params['id_lang']);
|
unset($params['id_lang']);
|
||||||
|
|
||||||
$controller = Dispatcher::getInstance()->getController();
|
$controller = Dispatcher::getInstance()->getController();
|
||||||
|
|
||||||
if (!empty(Context::getContext()->controller->php_self))
|
if (!empty(Context::getContext()->controller->php_self))
|
||||||
$controller = Context::getContext()->controller->php_self;
|
$controller = Context::getContext()->controller->php_self;
|
||||||
|
|
||||||
@@ -524,6 +526,15 @@ class LinkCore
|
|||||||
return $this->getCMSLink((int)$params['id_cms'], null, false, (int)$id_lang);
|
return $this->getCMSLink((int)$params['id_cms'], null, false, (int)$id_lang);
|
||||||
elseif ($controller == 'cms' && isset($params['id_cms_category']))
|
elseif ($controller == 'cms' && isset($params['id_cms_category']))
|
||||||
return $this->getCMSCategoryLink((int)$params['id_cms_category'], null, (int)$id_lang);
|
return $this->getCMSCategoryLink((int)$params['id_cms_category'], null, (int)$id_lang);
|
||||||
|
elseif (isset($params['fc']) && $params['fc'] == 'module')
|
||||||
|
{
|
||||||
|
$module = Validate::isModuleName(Tools::getValue('module')) ? Tools::getValue('module') : '';
|
||||||
|
if (!empty($module))
|
||||||
|
{
|
||||||
|
unset($params['fc'], $params['module']);
|
||||||
|
return $this->getModuleLink($module, $controller, $params, false, (int)$id_lang);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $this->getPageLink($controller, false, $id_lang, $params);
|
return $this->getPageLink($controller, false, $id_lang, $params);
|
||||||
}
|
}
|
||||||
@@ -618,12 +629,12 @@ class LinkCore
|
|||||||
return $url.(!strstr($url, '?') ? '?' : '&').'orderby='.urlencode($orderby).'&orderway='.urlencode($orderway);
|
return $url.(!strstr($url, '?') ? '?' : '&').'orderby='.urlencode($orderby).'&orderway='.urlencode($orderway);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getLangLink($id_lang = null, Context $context = null)
|
protected function getLangLink($id_lang = null, Context $context = null, $id_shop = null)
|
||||||
{
|
{
|
||||||
if (!$context)
|
if (!$context)
|
||||||
$context = Context::getContext();
|
$context = Context::getContext();
|
||||||
|
|
||||||
if (!$this->allow || !Language::isMultiLanguageActivated())
|
if ((!$this->allow && in_array($id_shop, array($context->shop->id, null))) || !Language::isMultiLanguageActivated($id_shop) || !(int)Configuration::get('PS_REWRITING_SETTINGS', null, null, $id_shop))
|
||||||
return '';
|
return '';
|
||||||
|
|
||||||
if (!$id_lang)
|
if (!$id_lang)
|
||||||
|
|||||||
@@ -111,7 +111,8 @@ class MediaCore
|
|||||||
// In this case, we don't compress the content
|
// In this case, we don't compress the content
|
||||||
if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR)
|
if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR)
|
||||||
{
|
{
|
||||||
error_log('ERROR: PREG_BACKTRACK_LIMIT_ERROR in function packJSinHTML');
|
if (_PS_MODE_DEV_)
|
||||||
|
error_log('ERROR: PREG_BACKTRACK_LIMIT_ERROR in function packJSinHTML');
|
||||||
return $html_content_copy;
|
return $html_content_copy;
|
||||||
}
|
}
|
||||||
return $html_content;
|
return $html_content;
|
||||||
@@ -270,7 +271,10 @@ class MediaCore
|
|||||||
|
|
||||||
if ($add_no_conflict)
|
if ($add_no_conflict)
|
||||||
$return[] = Media::getJSPath(_PS_JS_DIR_.'jquery/jquery.noConflict.php?version='.$version);
|
$return[] = Media::getJSPath(_PS_JS_DIR_.'jquery/jquery.noConflict.php?version='.$version);
|
||||||
|
|
||||||
|
//added query migrate for compatibility with new version of jquery will be removed in ps 1.6
|
||||||
|
$return[] = Media::getJSPath(_PS_JS_DIR_.'jquery/jquery-migrate-1.2.1.js');
|
||||||
|
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1354,7 +1354,7 @@ class ProductCore extends ObjectModel
|
|||||||
$supplier_reference = '';
|
$supplier_reference = '';
|
||||||
|
|
||||||
//Try to set the default supplier reference
|
//Try to set the default supplier reference
|
||||||
if (($id_supplier > 0) && ($id_product > 0))
|
if (($id_supplier > 0) && ($this->id > 0))
|
||||||
{
|
{
|
||||||
$id_product_supplier = (int)ProductSupplier::getIdByProductAndSupplier($this->id, $id_product_attribute, $id_supplier);
|
$id_product_supplier = (int)ProductSupplier::getIdByProductAndSupplier($this->id, $id_product_attribute, $id_supplier);
|
||||||
|
|
||||||
@@ -4493,7 +4493,7 @@ class ProductCore extends ObjectModel
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
/**
|
/**
|
||||||
* Webservice getter : get virtual field default combination
|
* Webservice getter : get virtual field default combination
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -66,7 +66,10 @@ class ProductSaleCore
|
|||||||
if ($page_number < 0) $page_number = 0;
|
if ($page_number < 0) $page_number = 0;
|
||||||
if ($nb_products < 1) $nb_products = 10;
|
if ($nb_products < 1) $nb_products = 10;
|
||||||
$final_order_by = $order_by;
|
$final_order_by = $order_by;
|
||||||
|
$order_table = '';
|
||||||
if (is_null($order_by) || $order_by == 'position' || $order_by == 'price') $order_by = 'sales';
|
if (is_null($order_by) || $order_by == 'position' || $order_by == 'price') $order_by = 'sales';
|
||||||
|
if ($order_by == 'date_add' || $order_by == 'date_upd')
|
||||||
|
$order_table = 'product_shop';
|
||||||
if (is_null($order_way) || $order_by == 'sales') $order_way = 'DESC';
|
if (is_null($order_way) || $order_by == 'sales') $order_way = 'DESC';
|
||||||
$groups = FrontController::getCurrentCustomerGroups();
|
$groups = FrontController::getCurrentCustomerGroups();
|
||||||
$sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
|
$sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
|
||||||
@@ -108,7 +111,7 @@ class ProductSaleCore
|
|||||||
WHERE cg.`id_group` '.$sql_groups.'
|
WHERE cg.`id_group` '.$sql_groups.'
|
||||||
)
|
)
|
||||||
GROUP BY product_shop.id_product
|
GROUP BY product_shop.id_product
|
||||||
ORDER BY '.$prefix.'`'.pSQL($order_by).'` '.pSQL($order_way).'
|
ORDER BY '.(!empty($order_table) ? '`'.pSQL($order_table).'`.' : '').'`'.pSQL($order_by).'` '.pSQL($order_way).'
|
||||||
LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products;
|
LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products;
|
||||||
|
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
||||||
|
|||||||
@@ -93,8 +93,12 @@ define('PREG_CLASS_CJK', '\x{3041}-\x{30ff}\x{31f0}-\x{31ff}\x{3400}-\x{4db5}\x{
|
|||||||
|
|
||||||
class SearchCore
|
class SearchCore
|
||||||
{
|
{
|
||||||
public static function sanitize($string, $id_lang, $indexation = false)
|
public static function sanitize($string, $id_lang, $indexation = false, $iso_code = false)
|
||||||
{
|
{
|
||||||
|
$string = trim($string);
|
||||||
|
if (empty($string))
|
||||||
|
return '';
|
||||||
|
|
||||||
$string = Tools::strtolower(strip_tags($string));
|
$string = Tools::strtolower(strip_tags($string));
|
||||||
$string = html_entity_decode($string, ENT_NOQUOTES, 'utf-8');
|
$string = html_entity_decode($string, ENT_NOQUOTES, 'utf-8');
|
||||||
|
|
||||||
@@ -138,14 +142,34 @@ class SearchCore
|
|||||||
|
|
||||||
if ($indexation)
|
if ($indexation)
|
||||||
{
|
{
|
||||||
$minWordLen = (int)Configuration::get('PS_SEARCH_MINWORDLEN');
|
// If the language is constituted with symbol and there is no "words", then split every chars
|
||||||
if ($minWordLen > 1)
|
if (in_array($iso_code, array('zh', 'tw', 'ja')) && function_exists('mb_strlen'))
|
||||||
{
|
{
|
||||||
$minWordLen -= 1;
|
// Cut symbols from letters
|
||||||
$string = preg_replace('/(?<=\s)[^\s]{1,'.$minWordLen.'}(?=\s)/Su', ' ', $string);
|
$symbols = '';
|
||||||
$string = preg_replace('/^[^\s]{1,'.$minWordLen.'}(?=\s)/Su', '', $string);
|
$letters = '';
|
||||||
$string = preg_replace('/(?<=\s)[^\s]{1,'.$minWordLen.'}$/Su', '', $string);
|
foreach (explode(' ', $string) as $mb_word)
|
||||||
$string = preg_replace('/^[^\s]{1,'.$minWordLen.'}$/Su', '', $string);
|
if (strlen(Tools::replaceAccentedChars($mb_word)) == mb_strlen(Tools::replaceAccentedChars($mb_word)))
|
||||||
|
$letters .= $mb_word.' ';
|
||||||
|
else
|
||||||
|
$symbols .= $mb_word.' ';
|
||||||
|
|
||||||
|
if (preg_match_all('/./u', $symbols, $matches))
|
||||||
|
$symbols = implode(' ', $matches[0]);
|
||||||
|
|
||||||
|
$string = $letters.$symbols;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$minWordLen = (int)Configuration::get('PS_SEARCH_MINWORDLEN');
|
||||||
|
if ($minWordLen > 1)
|
||||||
|
{
|
||||||
|
$minWordLen -= 1;
|
||||||
|
$string = preg_replace('/(?<=\s)[^\s]{1,'.$minWordLen.'}(?=\s)/Su', ' ', $string);
|
||||||
|
$string = preg_replace('/^[^\s]{1,'.$minWordLen.'}(?=\s)/Su', '', $string);
|
||||||
|
$string = preg_replace('/(?<=\s)[^\s]{1,'.$minWordLen.'}$/Su', '', $string);
|
||||||
|
$string = preg_replace('/^[^\s]{1,'.$minWordLen.'}$/Su', '', $string);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,7 +199,7 @@ class SearchCore
|
|||||||
|
|
||||||
$intersect_array = array();
|
$intersect_array = array();
|
||||||
$score_array = array();
|
$score_array = array();
|
||||||
$words = explode(' ', Search::sanitize($expr, $id_lang));
|
$words = explode(' ', Search::sanitize($expr, $id_lang, false, $context->language->iso_code));
|
||||||
|
|
||||||
foreach ($words as $key => $word)
|
foreach ($words as $key => $word)
|
||||||
if (!empty($word) && strlen($word) >= (int)Configuration::get('PS_SEARCH_MINWORDLEN'))
|
if (!empty($word) && strlen($word) >= (int)Configuration::get('PS_SEARCH_MINWORDLEN'))
|
||||||
@@ -383,7 +407,7 @@ class SearchCore
|
|||||||
|
|
||||||
return Db::getInstance()->executeS('
|
return Db::getInstance()->executeS('
|
||||||
SELECT p.id_product, pl.id_lang, pl.id_shop, pl.name pname, p.reference, p.ean13, p.upc,
|
SELECT p.id_product, pl.id_lang, pl.id_shop, pl.name pname, p.reference, p.ean13, p.upc,
|
||||||
pl.description_short, pl.description, cl.name cname, m.name mname
|
pl.description_short, pl.description, cl.name cname, m.name mname, l.iso_code
|
||||||
FROM '._DB_PREFIX_.'product p
|
FROM '._DB_PREFIX_.'product p
|
||||||
LEFT JOIN '._DB_PREFIX_.'product_lang pl
|
LEFT JOIN '._DB_PREFIX_.'product_lang pl
|
||||||
ON p.id_product = pl.id_product
|
ON p.id_product = pl.id_product
|
||||||
@@ -392,6 +416,8 @@ class SearchCore
|
|||||||
ON (cl.id_category = product_shop.id_category_default AND pl.id_lang = cl.id_lang AND cl.id_shop = product_shop.id_shop)
|
ON (cl.id_category = product_shop.id_category_default AND pl.id_lang = cl.id_lang AND cl.id_shop = product_shop.id_shop)
|
||||||
LEFT JOIN '._DB_PREFIX_.'manufacturer m
|
LEFT JOIN '._DB_PREFIX_.'manufacturer m
|
||||||
ON m.id_manufacturer = p.id_manufacturer
|
ON m.id_manufacturer = p.id_manufacturer
|
||||||
|
LEFT JOIN '._DB_PREFIX_.'lang l
|
||||||
|
ON l.id_lang = pl.id_lang
|
||||||
WHERE product_shop.indexed = 0
|
WHERE product_shop.indexed = 0
|
||||||
AND product_shop.visibility IN ("both", "search")
|
AND product_shop.visibility IN ("both", "search")
|
||||||
'.($id_product ? 'AND p.id_product = '.(int)$id_product : '').'
|
'.($id_product ? 'AND p.id_product = '.(int)$id_product : '').'
|
||||||
@@ -452,7 +478,6 @@ class SearchCore
|
|||||||
// Those are kind of global variables required to save the processed data in the database every X occurrences, in order to avoid overloading MySQL
|
// Those are kind of global variables required to save the processed data in the database every X occurrences, in order to avoid overloading MySQL
|
||||||
$count_words = 0;
|
$count_words = 0;
|
||||||
$query_array3 = array();
|
$query_array3 = array();
|
||||||
$products_array = array();
|
|
||||||
|
|
||||||
// Every indexed words are cached into a PHP array
|
// Every indexed words are cached into a PHP array
|
||||||
$word_ids = $db->executeS('
|
$word_ids = $db->executeS('
|
||||||
@@ -472,6 +497,7 @@ class SearchCore
|
|||||||
// Products are processed 50 by 50 in order to avoid overloading MySQL
|
// Products are processed 50 by 50 in order to avoid overloading MySQL
|
||||||
while (($products = Search::getProductsToIndex($total_languages, $id_product, 50)) && (count($products) > 0))
|
while (($products = Search::getProductsToIndex($total_languages, $id_product, 50)) && (count($products) > 0))
|
||||||
{
|
{
|
||||||
|
$products_array = array();
|
||||||
// Now each non-indexed product is processed one by one, langage by langage
|
// Now each non-indexed product is processed one by one, langage by langage
|
||||||
foreach ($products as $product)
|
foreach ($products as $product)
|
||||||
{
|
{
|
||||||
@@ -482,9 +508,9 @@ class SearchCore
|
|||||||
// Data must be cleaned of html, bad characters, spaces and anything, then if the resulting words are long enough, they're added to the array
|
// Data must be cleaned of html, bad characters, spaces and anything, then if the resulting words are long enough, they're added to the array
|
||||||
$product_array = array();
|
$product_array = array();
|
||||||
foreach ($product as $key => $value)
|
foreach ($product as $key => $value)
|
||||||
if (strncmp($key, 'id_', 3))
|
if (strncmp($key, 'id_', 3) && isset($weight_array[$key]))
|
||||||
{
|
{
|
||||||
$words = explode(' ', Search::sanitize($value, (int)$product['id_lang'], true));
|
$words = explode(' ', Search::sanitize($value, (int)$product['id_lang'], true, $product['iso_code']));
|
||||||
foreach ($words as $word)
|
foreach ($words as $word)
|
||||||
if (!empty($word))
|
if (!empty($word))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -704,6 +704,18 @@ class ToolsCore
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear smarty cache folders
|
||||||
|
*/
|
||||||
|
public static function clearSmartyCache()
|
||||||
|
{
|
||||||
|
foreach (array(_PS_CACHE_DIR_.'smarty/cache', _PS_CACHE_DIR_.'smarty/compile') as $dir)
|
||||||
|
if (file_exists($dir))
|
||||||
|
foreach (scandir($dir) as $file)
|
||||||
|
if ($file[0] != '.' && $file != 'index.php')
|
||||||
|
self::deleteDirectory($dir.DIRECTORY_SEPARATOR.$file);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display an error according to an error code
|
* Display an error according to an error code
|
||||||
|
|||||||
@@ -399,10 +399,10 @@ class ValidateCore
|
|||||||
$events .= '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange';
|
$events .= '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange';
|
||||||
$events .= '|onselectstart|onstart|onstop';
|
$events .= '|onselectstart|onstart|onstop';
|
||||||
|
|
||||||
if (preg_match('/<[ \t\n]*script/ims', $html) || preg_match('/('.$events.')[ \t\n]*=/ims', $html) || preg_match('/.*script\:/ims', $html))
|
if (preg_match('/<[\s]*script/ims', $html) || preg_match('/('.$events.')[\s]*=/ims', $html) || preg_match('/.*script\:/ims', $html))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!$allow_iframe && preg_match('/<[ \t\n]*(i?frame|form|input|embed|object)/ims', $html))
|
if (!$allow_iframe && preg_match('/<[\s]*(i?frame|form|input|embed|object)/ims', $html))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
23
classes/cache/CacheMemcache.php
vendored
23
classes/cache/CacheMemcache.php
vendored
@@ -44,11 +44,19 @@ class CacheMemcacheCore extends Cache
|
|||||||
{
|
{
|
||||||
$this->connect();
|
$this->connect();
|
||||||
|
|
||||||
// Get keys (this code comes from Doctrine 2 project)
|
|
||||||
$this->keys = array();
|
$this->keys = array();
|
||||||
$servers = self::getMemcachedServers();
|
$servers = self::getMemcachedServers();
|
||||||
|
|
||||||
if(is_array($servers) && count($servers) > 0 && method_exists('Memcache', 'getStats'))
|
if(is_array($servers) && count($servers) > 0)
|
||||||
|
{
|
||||||
|
$this->keys = $this->memcache->get(_COOKIE_IV_);
|
||||||
|
if (!is_array($this->keys))
|
||||||
|
$this->keys = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Get keys (this code comes from Doctrine 2 project)
|
||||||
|
if(is_array($servers) && count($servers) > 0 && method_exists('Memcache', 'getStats'))
|
||||||
$all_slabs = $this->memcache->getStats('slabs');
|
$all_slabs = $this->memcache->getStats('slabs');
|
||||||
|
|
||||||
if(isset($all_slabs) && is_array($all_slabs))
|
if(isset($all_slabs) && is_array($all_slabs))
|
||||||
@@ -56,11 +64,11 @@ class CacheMemcacheCore extends Cache
|
|||||||
{
|
{
|
||||||
if (is_array($slabs))
|
if (is_array($slabs))
|
||||||
{
|
{
|
||||||
foreach (array_keys($slabs) as $slab_id)
|
foreach (array_keys($slabs) as $i => $slab_id) // $slab_id is not an int but a string, using the key instead ?
|
||||||
{
|
{
|
||||||
if(is_int($slab_id))
|
if(is_int($i))
|
||||||
{
|
{
|
||||||
$dump = $this->memcache->getStats('cachedump', (int)$slab_id);
|
$dump = $this->memcache->getStats('cachedump', (int)$i);
|
||||||
if ($dump)
|
if ($dump)
|
||||||
{
|
{
|
||||||
foreach ($dump as $entries)
|
foreach ($dump as $entries)
|
||||||
@@ -73,7 +81,7 @@ class CacheMemcacheCore extends Cache
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __destruct()
|
public function __destruct()
|
||||||
@@ -145,6 +153,7 @@ class CacheMemcacheCore extends Cache
|
|||||||
*/
|
*/
|
||||||
protected function _writeKeys()
|
protected function _writeKeys()
|
||||||
{
|
{
|
||||||
|
$this->memcache->set(_COOKIE_IV_, $this->keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -387,7 +387,7 @@ class AdminControllerCore extends Controller
|
|||||||
$filter = '';
|
$filter = '';
|
||||||
foreach ($this->fields_list AS $field => $t)
|
foreach ($this->fields_list AS $field => $t)
|
||||||
{
|
{
|
||||||
if ($val = Tools::getValue($this->table.'Filter_'.$field))
|
if ($val = htmlspecialchars(Tools::getValue($this->table.'Filter_'.$field), ENT_QUOTES, 'UTF-8'))
|
||||||
{
|
{
|
||||||
if(!is_array($val) && !empty($val))
|
if(!is_array($val) && !empty($val))
|
||||||
$filter .= ($filter ? ', ' : $this->l(' filter by ')).$t['title'].' : ';
|
$filter .= ($filter ? ', ' : $this->l(' filter by ')).$t['title'].' : ';
|
||||||
@@ -1192,6 +1192,9 @@ class AdminControllerCore extends Controller
|
|||||||
|
|
||||||
protected function filterToField($key, $filter)
|
protected function filterToField($key, $filter)
|
||||||
{
|
{
|
||||||
|
if (!isset($this->fields_list))
|
||||||
|
return false;
|
||||||
|
|
||||||
foreach ($this->fields_list as $field)
|
foreach ($this->fields_list as $field)
|
||||||
if (array_key_exists('filter_key', $field) && $field['filter_key'] == $key)
|
if (array_key_exists('filter_key', $field) && $field['filter_key'] == $key)
|
||||||
return $field;
|
return $field;
|
||||||
@@ -1813,7 +1816,11 @@ class AdminControllerCore extends Controller
|
|||||||
$this->context->employee->logout();
|
$this->context->employee->logout();
|
||||||
|
|
||||||
if ($this->controller_name != 'AdminLogin' && (!isset($this->context->employee) || !$this->context->employee->isLoggedBack()))
|
if ($this->controller_name != 'AdminLogin' && (!isset($this->context->employee) || !$this->context->employee->isLoggedBack()))
|
||||||
|
{
|
||||||
|
if (isset($this->context->employee))
|
||||||
|
$this->context->employee->logout();
|
||||||
Tools::redirectAdmin($this->context->link->getAdminLink('AdminLogin').((!isset($_GET['logout']) && $this->controller_name != 'AdminNotFound') ? '&redirect='.$this->controller_name : ''));
|
Tools::redirectAdmin($this->context->link->getAdminLink('AdminLogin').((!isset($_GET['logout']) && $this->controller_name != 'AdminNotFound') ? '&redirect='.$this->controller_name : ''));
|
||||||
|
}
|
||||||
|
|
||||||
// Set current index
|
// Set current index
|
||||||
$current_index = 'index.php'.(($controller = Tools::getValue('controller')) ? '?controller='.$controller : '');
|
$current_index = 'index.php'.(($controller = Tools::getValue('controller')) ? '?controller='.$controller : '');
|
||||||
|
|||||||
@@ -116,16 +116,16 @@ class FrontControllerCore extends Controller
|
|||||||
|
|
||||||
// If we call a SSL controller without SSL or a non SSL controller with SSL, we redirect with the right protocol
|
// If we call a SSL controller without SSL or a non SSL controller with SSL, we redirect with the right protocol
|
||||||
if (Configuration::get('PS_SSL_ENABLED') && ($_SERVER['REQUEST_METHOD'] != 'POST') && $this->ssl != Tools::usingSecureMode())
|
if (Configuration::get('PS_SSL_ENABLED') && ($_SERVER['REQUEST_METHOD'] != 'POST') && $this->ssl != Tools::usingSecureMode())
|
||||||
{
|
{
|
||||||
header('HTTP/1.1 301 Moved Permanently');
|
header('HTTP/1.1 301 Moved Permanently');
|
||||||
header('Cache-Control: no-cache');
|
header('Cache-Control: no-cache');
|
||||||
if ($this->ssl)
|
if ($this->ssl)
|
||||||
header('Location: '.Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']);
|
header('Location: '.Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']);
|
||||||
else
|
else
|
||||||
header('Location: '.Tools::getShopDomain(true).$_SERVER['REQUEST_URI']);
|
header('Location: '.Tools::getShopDomain(true).$_SERVER['REQUEST_URI']);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->ajax)
|
if ($this->ajax)
|
||||||
{
|
{
|
||||||
$this->display_header = false;
|
$this->display_header = false;
|
||||||
@@ -333,7 +333,8 @@ class FrontControllerCore extends Controller
|
|||||||
'opc' => (bool)Configuration::get('PS_ORDER_PROCESS_TYPE'),
|
'opc' => (bool)Configuration::get('PS_ORDER_PROCESS_TYPE'),
|
||||||
'PS_CATALOG_MODE' => (bool)Configuration::get('PS_CATALOG_MODE') || !(bool)Group::getCurrent()->show_prices,
|
'PS_CATALOG_MODE' => (bool)Configuration::get('PS_CATALOG_MODE') || !(bool)Group::getCurrent()->show_prices,
|
||||||
'b2b_enable' => (bool)Configuration::get('PS_B2B_ENABLE'),
|
'b2b_enable' => (bool)Configuration::get('PS_B2B_ENABLE'),
|
||||||
'request' => $link->getPaginationLink(false, false, false, true)
|
'request' => $link->getPaginationLink(false, false, false, true),
|
||||||
|
'PS_STOCK_MANAGEMENT' => Configuration::get('PS_STOCK_MANAGEMENT')
|
||||||
));
|
));
|
||||||
|
|
||||||
// Add the tpl files directory for mobile
|
// Add the tpl files directory for mobile
|
||||||
@@ -593,7 +594,7 @@ class FrontControllerCore extends Controller
|
|||||||
|
|
||||||
protected function canonicalRedirection($canonical_url = '')
|
protected function canonicalRedirection($canonical_url = '')
|
||||||
{
|
{
|
||||||
if (!$canonical_url || !Configuration::get('PS_CANONICAL_REDIRECT') || strtoupper($_SERVER['REQUEST_METHOD']) != 'GET')
|
if (!$canonical_url || !Configuration::get('PS_CANONICAL_REDIRECT') || strtoupper($_SERVER['REQUEST_METHOD']) != 'GET' || Tools::getValue('live_edit'))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$match_url = (($this->ssl && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
|
$match_url = (($this->ssl && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
|
||||||
@@ -1137,4 +1138,4 @@ class FrontControllerCore extends Controller
|
|||||||
'logo_url' => $logo
|
'logo_url' => $logo
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ class HelperListCore extends Helper
|
|||||||
$path_to_image = _PS_IMG_DIR_.$params['image'].'/'.$item_id.(isset($tr['id_image']) ? '-'.(int)$tr['id_image'] : '').'.'.$this->imageType;
|
$path_to_image = _PS_IMG_DIR_.$params['image'].'/'.$item_id.(isset($tr['id_image']) ? '-'.(int)$tr['id_image'] : '').'.'.$this->imageType;
|
||||||
else
|
else
|
||||||
$path_to_image = _PS_IMG_DIR_.$params['image'].'/'.Image::getImgFolderStatic($tr['id_image']).(int)$tr['id_image'].'.'.$this->imageType;
|
$path_to_image = _PS_IMG_DIR_.$params['image'].'/'.Image::getImgFolderStatic($tr['id_image']).(int)$tr['id_image'].'.'.$this->imageType;
|
||||||
$this->_list[$index][$key] = ImageManager::thumbnail($path_to_image, $this->table.'_mini_'.$item_id.'.'.$this->imageType, 45, $this->imageType);
|
$this->_list[$index][$key] = ImageManager::thumbnail($path_to_image, $this->table.'_mini_'.$item_id.'_'.$this->context->shop->id.'.'.$this->imageType, 45, $this->imageType);
|
||||||
}
|
}
|
||||||
elseif (isset($params['icon']) && isset($tr[$key]) && (isset($params['icon'][$tr[$key]]) || isset($params['icon']['default'])))
|
elseif (isset($params['icon']) && isset($tr[$key]) && (isset($params['icon'][$tr[$key]]) || isset($params['icon']['default'])))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -292,15 +292,17 @@ abstract class ModuleCore
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!$upgrade_detail['number_upgraded'])
|
if (!$upgrade_detail['number_upgraded'])
|
||||||
$this->_errors[] = $this->l('None upgrades have been applied');
|
$this->_errors[] = $this->l('No upgrade has been applied');
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->_errors[] = $this->l('Upgraded from: ').$upgrade_detail['upgraded_from'].$this->l(' to ').
|
$this->_errors[] = sprintf($this->l('Upgraded from: %S to %s'), $upgrade_detail['upgraded_from'], $upgrade_detail['upgraded_to']);
|
||||||
$upgrade_detail['upgraded_to'];
|
|
||||||
$this->_errors[] = $upgrade_detail['number_upgrade_left'].' '.$this->l('upgrade left');
|
$this->_errors[] = $upgrade_detail['number_upgrade_left'].' '.$this->l('upgrade left');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_errors[] = $this->l('To prevent any problem, this module has been turned off');
|
if ($upgrade_detail['duplicate'])
|
||||||
|
$this->_errors[] = sprintf(Tools::displayError('Module %s cannot be upgraded this time: please refresh this page to update it.'), $this->name);
|
||||||
|
else
|
||||||
|
$this->_errors[] = $this->l('To prevent any problem, this module has been turned off');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -348,19 +350,21 @@ abstract class ModuleCore
|
|||||||
$upgrade = &self::$modules_cache[$this->name]['upgrade'];
|
$upgrade = &self::$modules_cache[$this->name]['upgrade'];
|
||||||
foreach ($upgrade['upgrade_file_left'] as $num => $file_detail)
|
foreach ($upgrade['upgrade_file_left'] as $num => $file_detail)
|
||||||
{
|
{
|
||||||
// Default variable required in the included upgrade file need to be set by default there:
|
if (function_exists($file_detail['upgrade_function']))
|
||||||
// upgrade_version, success_upgrade
|
{
|
||||||
$upgrade_result = false;
|
$upgrade['success'] = false;
|
||||||
|
$upgrade['duplicate'] = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
include($file_detail['file']);
|
include($file_detail['file']);
|
||||||
|
|
||||||
// Call the upgrade function if defined
|
// Call the upgrade function if defined
|
||||||
|
$upgrade['success'] = false;
|
||||||
if (function_exists($file_detail['upgrade_function']))
|
if (function_exists($file_detail['upgrade_function']))
|
||||||
$upgrade_result = $file_detail['upgrade_function']($this);
|
$upgrade['success'] = $file_detail['upgrade_function']($this);
|
||||||
|
|
||||||
$upgrade['success'] = $upgrade_result;
|
|
||||||
|
|
||||||
// Set detail when an upgrade succeed or failed
|
// Set detail when an upgrade succeed or failed
|
||||||
if ($upgrade_result)
|
if ($upgrade['success'])
|
||||||
{
|
{
|
||||||
$upgrade['number_upgraded'] += 1;
|
$upgrade['number_upgraded'] += 1;
|
||||||
$upgrade['upgraded_to'] = $file_detail['version'];
|
$upgrade['upgraded_to'] = $file_detail['version'];
|
||||||
@@ -378,6 +382,7 @@ abstract class ModuleCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
$upgrade['number_upgrade_left'] = count($upgrade['upgrade_file_left']);
|
$upgrade['number_upgrade_left'] = count($upgrade['upgrade_file_left']);
|
||||||
|
|
||||||
// Update module version in DB with the last succeed upgrade
|
// Update module version in DB with the last succeed upgrade
|
||||||
if ($upgrade['upgraded_to'])
|
if ($upgrade['upgraded_to'])
|
||||||
Module::upgradeModuleVersion($this->name, $upgrade['upgraded_to']);
|
Module::upgradeModuleVersion($this->name, $upgrade['upgraded_to']);
|
||||||
@@ -396,9 +401,9 @@ abstract class ModuleCore
|
|||||||
public static function upgradeModuleVersion($name, $version)
|
public static function upgradeModuleVersion($name, $version)
|
||||||
{
|
{
|
||||||
return Db::getInstance()->execute('
|
return Db::getInstance()->execute('
|
||||||
UPDATE `'._DB_PREFIX_.'module` m
|
UPDATE `'._DB_PREFIX_.'module` m
|
||||||
SET m.version = \''.bqSQL($version).'\'
|
SET m.version = \''.bqSQL($version).'\'
|
||||||
WHERE m.name = \''.bqSQL($name).'\'');
|
WHERE m.name = \''.bqSQL($name).'\'');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -125,8 +125,8 @@ class OrderHistoryCore extends ObjectModel
|
|||||||
.'&id_order='.(int)$order->id
|
.'&id_order='.(int)$order->id
|
||||||
.'&secure_key='.$order->secure_key;
|
.'&secure_key='.$order->secure_key;
|
||||||
$assign[$key]['link'] = $dl_link;
|
$assign[$key]['link'] = $dl_link;
|
||||||
if (isset($virtual_product['date_expiration']) && $virtual_product['date_expiration'] != '0000-00-00 00:00:00')
|
if (isset($virtual_product['download_deadline']) && $virtual_product['download_deadline'] != '0000-00-00 00:00:00')
|
||||||
$assign[$key]['deadline'] = Tools::displayDate($virtual_product['date_expiration ']);
|
$assign[$key]['deadline'] = Tools::displayDate($virtual_product['download_deadline ']);
|
||||||
if ($product_download->nb_downloadable != 0)
|
if ($product_download->nb_downloadable != 0)
|
||||||
$assign[$key]['downloadable'] = (int)$product_download->nb_downloadable;
|
$assign[$key]['downloadable'] = (int)$product_download->nb_downloadable;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class HTMLTemplateOrderReturnCore extends HTMLTemplate
|
|||||||
|
|
||||||
// header informations
|
// header informations
|
||||||
$this->date = Tools::displayDate($this->order->invoice_date);
|
$this->date = Tools::displayDate($this->order->invoice_date);
|
||||||
$this->title = HTMLTemplateOrderReturn::l('Order Return ').sprintf('%06d', $this->order_return->id);
|
$this->title = sprintf(HTMLTemplateOrderReturn::l('Order Return %s'), sprintf('%06d', $this->order_return->id));
|
||||||
|
|
||||||
// footer informations
|
// footer informations
|
||||||
$this->shop = new Shop((int)$this->order->id_shop);
|
$this->shop = new Shop((int)$this->order->id_shop);
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class HTMLTemplateOrderSlipCore extends HTMLTemplateInvoice
|
|||||||
$this->smarty = $smarty;
|
$this->smarty = $smarty;
|
||||||
|
|
||||||
// header informations
|
// header informations
|
||||||
$this->date = Tools::displayDate($this->order->invoice_date, (int)$this->order->id_lang);
|
$this->date = Tools::displayDate($this->order_slip->date_add);
|
||||||
$this->title = HTMLTemplateOrderSlip::l('Slip #').Configuration::get('PS_CREDIT_SLIP_PREFIX', Context::getContext()->language->id).sprintf('%06d', (int)$this->order_slip->id);
|
$this->title = HTMLTemplateOrderSlip::l('Slip #').Configuration::get('PS_CREDIT_SLIP_PREFIX', Context::getContext()->language->id).sprintf('%06d', (int)$this->order_slip->id);
|
||||||
|
|
||||||
// footer informations
|
// footer informations
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class HTMLTemplateSupplyOrderFormCore extends HTMLTemplate
|
|||||||
$this->address_supplier = new Address(Address::getAddressIdBySupplierId((int)$supply_order->id_supplier));
|
$this->address_supplier = new Address(Address::getAddressIdBySupplierId((int)$supply_order->id_supplier));
|
||||||
|
|
||||||
// header informations
|
// header informations
|
||||||
$this->date = Tools::displayDate($supply_order->date_add, (int)$this->supply_order->id_lang);
|
$this->date = Tools::displayDate($supply_order->date_add);
|
||||||
$this->title = HTMLTemplateSupplyOrderForm::l('Supply order form');
|
$this->title = HTMLTemplateSupplyOrderForm::l('Supply order form');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,22 +53,15 @@ class TaxRulesGroupCore extends ObjectModel
|
|||||||
|
|
||||||
protected static $_taxes = array();
|
protected static $_taxes = array();
|
||||||
|
|
||||||
public static function getTaxRulesGroups($only_active = true, $multiShop = false)
|
public static function getTaxRulesGroups($only_active = true)
|
||||||
{
|
{
|
||||||
if ((bool)$multiShop) {
|
return Db::getInstance()->executeS('
|
||||||
return Db::getInstance()->executeS('
|
SELECT DISTINCT g.id_tax_rules_group, g.name, g.active
|
||||||
SELECT *
|
|
||||||
FROM `'._DB_PREFIX_.'tax_rules_group` g'
|
FROM `'._DB_PREFIX_.'tax_rules_group` g'
|
||||||
.Shop::addSqlAssociation('tax_rules_group', 'g')
|
.Shop::addSqlAssociation('tax_rules_group', 'g')
|
||||||
.($only_active ? ' WHERE g.`active` = 1' : '').'
|
.($only_active ? ' WHERE g.`active` = 1' : '').'
|
||||||
ORDER BY name ASC');
|
ORDER BY name ASC');
|
||||||
} else {
|
|
||||||
return Db::getInstance()->executeS('
|
|
||||||
SELECT *
|
|
||||||
FROM `'._DB_PREFIX_.'tax_rules_group` g'
|
|
||||||
.($only_active ? ' WHERE g.`active` = 1' : '').'
|
|
||||||
ORDER BY name ASC');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1264,14 +1264,22 @@ class WebserviceRequestCore
|
|||||||
$assoc = Shop::getAssoTable($this->resourceConfiguration['retrieveData']['table']);
|
$assoc = Shop::getAssoTable($this->resourceConfiguration['retrieveData']['table']);
|
||||||
if ($assoc !== false)
|
if ($assoc !== false)
|
||||||
{
|
{
|
||||||
|
$check_shop_group = false;
|
||||||
|
|
||||||
$sql = 'SELECT 1
|
$sql = 'SELECT 1
|
||||||
FROM `'.bqSQL(_DB_PREFIX_.$this->resourceConfiguration['retrieveData']['table']);
|
FROM `'.bqSQL(_DB_PREFIX_.$this->resourceConfiguration['retrieveData']['table']);
|
||||||
if ($assoc['type'] != 'fk_shop')
|
if ($assoc['type'] != 'fk_shop')
|
||||||
$sql .= '_'.$assoc['type'];
|
$sql .= '_'.$assoc['type'];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$def = ObjectModel::getDefinition($this->resourceConfiguration['retrieveData']['className']);
|
||||||
|
if (isset($def['fields']) && isset($def['fields']['id_shop_group']))
|
||||||
|
$check_shop_group = true;
|
||||||
|
}
|
||||||
$sql .= '`';
|
$sql .= '`';
|
||||||
|
|
||||||
foreach (self::$shopIDs as $id_shop)
|
foreach (self::$shopIDs as $id_shop)
|
||||||
$OR[] = ' id_shop = '.(int)$id_shop.' ';
|
$OR[] = ' (id_shop = '.(int)$id_shop.($check_shop_group ? ' OR (id_shop = 0 AND id_shop_group='.(int)Shop::getGroupFromShop((int)$id_shop).')' : '').') ';
|
||||||
|
|
||||||
$check = ' WHERE ('.implode('OR', $OR).') AND `'.bqSQL($this->resourceConfiguration['fields']['id']['sqlId']).'` = '.(int)$this->urlSegment[1];
|
$check = ' WHERE ('.implode('OR', $OR).') AND `'.bqSQL($this->resourceConfiguration['fields']['id']['sqlId']).'` = '.(int)$this->urlSegment[1];
|
||||||
if (!Db::getInstance()->getValue($sql.$check))
|
if (!Db::getInstance()->getValue($sql.$check))
|
||||||
|
|||||||
@@ -62,8 +62,10 @@ function smartyTranslate($params, &$smarty)
|
|||||||
else
|
else
|
||||||
$msg = $params['s'];
|
$msg = $params['s'];
|
||||||
|
|
||||||
if ($msg != $params['s'])
|
if ($msg != $params['s'] && !$params['js'])
|
||||||
$msg = $params['js'] ? addslashes($msg) : stripslashes($msg);
|
$msg = stripslashes($msg);
|
||||||
|
elseif ($params['js'])
|
||||||
|
$msg = addslashes($msg);
|
||||||
|
|
||||||
if ($params['sprintf'] !== null)
|
if ($params['sprintf'] !== null)
|
||||||
$msg = Translate::checkAndReplaceArgs($msg, $params['sprintf']);
|
$msg = Translate::checkAndReplaceArgs($msg, $params['sprintf']);
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
$multistore_step = array(
|
$multistore_step = array(
|
||||||
array(
|
array(
|
||||||
'title' => $this->l('MultiStore'),
|
'title' => $this->l('MultiStore'),
|
||||||
'desc' => $this->l('MultiStore'),
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
array_splice($this->wizard_steps['steps'], 1, 0, $multistore_step);
|
array_splice($this->wizard_steps['steps'], 1, 0, $multistore_step);
|
||||||
@@ -113,6 +112,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
'wizard_steps' => $this->wizard_steps,
|
'wizard_steps' => $this->wizard_steps,
|
||||||
'validate_url' => $this->context->link->getAdminLink('AdminCarrierWizard'),
|
'validate_url' => $this->context->link->getAdminLink('AdminCarrierWizard'),
|
||||||
'carrierlist_url' => $this->context->link->getAdminLink('AdminCarriers').'&conf='.((int)Validate::isLoadedObject($carrier) ? 4 : 3),
|
'carrierlist_url' => $this->context->link->getAdminLink('AdminCarriers').'&conf='.((int)Validate::isLoadedObject($carrier) ? 4 : 3),
|
||||||
|
'multistore_enable' => Shop::isFeatureActive(),
|
||||||
'wizard_contents' => array(
|
'wizard_contents' => array(
|
||||||
'contents' => array(
|
'contents' => array(
|
||||||
0 => $this->renderStepOne($carrier),
|
0 => $this->renderStepOne($carrier),
|
||||||
@@ -356,7 +356,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
'input' => array(
|
'input' => array(
|
||||||
array(
|
array(
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'label' => $this->l('Maximum package height ('.Configuration::get('PS_DIMENSION_UNIT').'):'),
|
'label' => sprintf($this->l('Maximum package height (%s):'), Configuration::get('PS_DIMENSION_UNIT')),
|
||||||
'name' => 'max_height',
|
'name' => 'max_height',
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'size' => 10,
|
'size' => 10,
|
||||||
@@ -364,7 +364,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'label' => $this->l('Maximum package width ('.Configuration::get('PS_DIMENSION_UNIT').'):'),
|
'label' => sprintf($this->l('Maximum package width (%s):'), Configuration::get('PS_DIMENSION_UNIT')),
|
||||||
'name' => 'max_width',
|
'name' => 'max_width',
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'size' => 10,
|
'size' => 10,
|
||||||
@@ -372,7 +372,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'label' => $this->l('Maximum package depth ('.Configuration::get('PS_DIMENSION_UNIT').'):'),
|
'label' => sprintf($this->l('Maximum package depth (%s):'), Configuration::get('PS_DIMENSION_UNIT')),
|
||||||
'name' => 'max_depth',
|
'name' => 'max_depth',
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'size' => 10,
|
'size' => 10,
|
||||||
@@ -380,7 +380,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'label' => $this->l('Maximum package weight ('.Configuration::get('PS_WEIGHT_UNIT').'):'),
|
'label' => sprintf($this->l('Maximum package weight (%s):'), Configuration::get('PS_WEIGHT_UNIT')),
|
||||||
'name' => 'max_weight',
|
'name' => 'max_weight',
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'size' => 10,
|
'size' => 10,
|
||||||
@@ -718,7 +718,8 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
if ($logo && !empty($logo['tmp_name']) && $logo['tmp_name'] != 'none'
|
if ($logo && !empty($logo['tmp_name']) && $logo['tmp_name'] != 'none'
|
||||||
&& (!isset($logo['error']) || !$logo['error'])
|
&& (!isset($logo['error']) || !$logo['error'])
|
||||||
&& preg_match('/\.(jpe?g|gif|png)$/', $logo['name'])
|
&& preg_match('/\.(jpe?g|gif|png)$/', $logo['name'])
|
||||||
&& is_uploaded_file($logo['tmp_name']))
|
&& is_uploaded_file($logo['tmp_name'])
|
||||||
|
&& ImageManager::isRealImage($logo['tmp_name'], $logo['type']))
|
||||||
{
|
{
|
||||||
$file = $logo['tmp_name'];
|
$file = $logo['tmp_name'];
|
||||||
do $tmp_name = uniqid().'.jpg';
|
do $tmp_name = uniqid().'.jpg';
|
||||||
@@ -884,16 +885,13 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
1 => array('name', 'delay', 'grade', 'url'),
|
1 => array('name', 'delay', 'grade', 'url'),
|
||||||
2 => array('is_free', 'id_tax_rules_group', 'shipping_handling', 'shipping_method', 'range_behavior'),
|
2 => array('is_free', 'id_tax_rules_group', 'shipping_handling', 'shipping_method', 'range_behavior'),
|
||||||
3 => array('range_behavior', 'max_height', 'max_width', 'max_depth', 'max_weight'),
|
3 => array('range_behavior', 'max_height', 'max_width', 'max_depth', 'max_weight'),
|
||||||
|
4 => array(),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Shop::isFeatureActive())
|
if (Shop::isFeatureActive())
|
||||||
{
|
{
|
||||||
$multistore_field = array(array('shop'));
|
$multistore_field = array(array('shop'));
|
||||||
$tmp = $step_fields;
|
array_splice($step_fields, 1, 0, $multistore_field);
|
||||||
$step_fields = array(1 => $tmp[1]) + $multistore_field;
|
|
||||||
array_shift($tmp);
|
|
||||||
foreach ($tmp as $row)
|
|
||||||
$step_field[] = $row;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$rules = Carrier::getValidationRules('Carrier');
|
$rules = Carrier::getValidationRules('Carrier');
|
||||||
|
|||||||
@@ -101,54 +101,6 @@ class AdminCarriersControllerCore extends AdminController
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$carrier_default_sort = array(
|
|
||||||
array('value' => Carrier::SORT_BY_PRICE, 'name' => $this->l('Price')),
|
|
||||||
array('value' => Carrier::SORT_BY_POSITION, 'name' => $this->l('Position'))
|
|
||||||
);
|
|
||||||
|
|
||||||
$carrier_default_order = array(
|
|
||||||
array('value' => Carrier::SORT_BY_ASC, 'name' => $this->l('Ascending')),
|
|
||||||
array('value' => Carrier::SORT_BY_DESC, 'name' => $this->l('Descending'))
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->fields_options = array(
|
|
||||||
'general' => array(
|
|
||||||
'title' => $this->l('Carrier options'),
|
|
||||||
'fields' => array(
|
|
||||||
'PS_CARRIER_DEFAULT' => array(
|
|
||||||
'title' => $this->l('Default carrier:'),
|
|
||||||
'desc' => $this->l('Your shop\'s default carrier'),
|
|
||||||
'cast' => 'intval',
|
|
||||||
'type' => 'select',
|
|
||||||
'identifier' => 'id_carrier',
|
|
||||||
'list' => array_merge(
|
|
||||||
array(
|
|
||||||
-1 => array('id_carrier' => -1, 'name' => $this->l('Best price')),
|
|
||||||
-2 => array('id_carrier' => -2, 'name' => $this->l('Best grade'))
|
|
||||||
),
|
|
||||||
Carrier::getCarriers((int)Configuration::get('PS_LANG_DEFAULT'), true, false, false, null, Carrier::ALL_CARRIERS))
|
|
||||||
),
|
|
||||||
'PS_CARRIER_DEFAULT_SORT' => array(
|
|
||||||
'title' => $this->l('Sort by:'),
|
|
||||||
'desc' => $this->l('This will only be visible in the Front Office'),
|
|
||||||
'cast' => 'intval',
|
|
||||||
'type' => 'select',
|
|
||||||
'identifier' => 'value',
|
|
||||||
'list' => $carrier_default_sort
|
|
||||||
),
|
|
||||||
'PS_CARRIER_DEFAULT_ORDER' => array(
|
|
||||||
'title' => $this->l('Order by:'),
|
|
||||||
'desc' => $this->l('This will only be visible in the Front Office'),
|
|
||||||
'cast' => 'intval',
|
|
||||||
'type' => 'select',
|
|
||||||
'identifier' => 'value',
|
|
||||||
'list' => $carrier_default_order
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'submit' => array()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -518,7 +470,8 @@ class AdminCarriersControllerCore extends AdminController
|
|||||||
}
|
}
|
||||||
parent::postProcess();
|
parent::postProcess();
|
||||||
}
|
}
|
||||||
else if ((isset($_GET['status'.$this->table]) || isset($_GET['status'])) && Tools::getValue($this->identifier))
|
/*
|
||||||
|
else if ((isset($_GET['status'.$this->table]) || isset($_GET['status'])) && Tools::getValue($this->identifier))
|
||||||
{
|
{
|
||||||
if ($this->tabAccess['edit'] === '1')
|
if ($this->tabAccess['edit'] === '1')
|
||||||
{
|
{
|
||||||
@@ -530,17 +483,20 @@ class AdminCarriersControllerCore extends AdminController
|
|||||||
else
|
else
|
||||||
$this->errors[] = Tools::displayError('You do not have permission to edit this.');
|
$this->errors[] = Tools::displayError('You do not have permission to edit this.');
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
else if (isset($_GET['isFree'.$this->table]))
|
else if (isset($_GET['isFree'.$this->table]))
|
||||||
{
|
{
|
||||||
$this->processIsFree();
|
$this->processIsFree();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((Tools::isSubmit('submitDel'.$this->table) && in_array(Configuration::get('PS_CARRIER_DEFAULT'), Tools::getValue('carrierBox')))
|
/*
|
||||||
|
if ((Tools::isSubmit('submitDel'.$this->table) && in_array(Configuration::get('PS_CARRIER_DEFAULT'), Tools::getValue('carrierBox')))
|
||||||
|| (isset($_GET['delete'.$this->table]) && Tools::getValue('id_carrier') == Configuration::get('PS_CARRIER_DEFAULT')))
|
|| (isset($_GET['delete'.$this->table]) && Tools::getValue('id_carrier') == Configuration::get('PS_CARRIER_DEFAULT')))
|
||||||
$this->errors[] = $this->l('Please set another carrier as default before deleting this one.');
|
$this->errors[] = $this->l('Please set another carrier as default before deleting this one.');
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
*/
|
||||||
// if deletion : removes the carrier from the warehouse/carrier association
|
// if deletion : removes the carrier from the warehouse/carrier association
|
||||||
if (Tools::isSubmit('delete'.$this->table))
|
if (Tools::isSubmit('delete'.$this->table))
|
||||||
{
|
{
|
||||||
@@ -562,7 +518,7 @@ class AdminCarriersControllerCore extends AdminController
|
|||||||
}
|
}
|
||||||
parent::postProcess();
|
parent::postProcess();
|
||||||
Carrier::cleanPositions();
|
Carrier::cleanPositions();
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ class AdminCategoriesControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
if (empty($this->display))
|
if (empty($this->display))
|
||||||
{
|
{
|
||||||
if (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') && count(Shop::getShops()) > 1)
|
if (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE'))
|
||||||
$this->toolbar_btn['new-url'] = array(
|
$this->toolbar_btn['new-url'] = array(
|
||||||
'href' => self::$currentIndex.'&add'.$this->table.'root&token='.$this->token,
|
'href' => self::$currentIndex.'&add'.$this->table.'root&token='.$this->token,
|
||||||
'desc' => $this->l('Add new root category')
|
'desc' => $this->l('Add new root category')
|
||||||
@@ -464,7 +464,8 @@ class AdminCategoriesControllerCore extends AdminController
|
|||||||
$this->tpl_form_vars['PS_ALLOW_ACCENTED_CHARS_URL'] = (int)Configuration::get('PS_ALLOW_ACCENTED_CHARS_URL');
|
$this->tpl_form_vars['PS_ALLOW_ACCENTED_CHARS_URL'] = (int)Configuration::get('PS_ALLOW_ACCENTED_CHARS_URL');
|
||||||
|
|
||||||
// Display this field only if multistore option is enabled
|
// Display this field only if multistore option is enabled
|
||||||
if (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE'))
|
if (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') && Tools::isSubmit('add'.$this->table.'root'))
|
||||||
|
{
|
||||||
$this->fields_form['input'][] = array(
|
$this->fields_form['input'][] = array(
|
||||||
'type' => 'radio',
|
'type' => 'radio',
|
||||||
'label' => $this->l('Root Category:'),
|
'label' => $this->l('Root Category:'),
|
||||||
@@ -485,6 +486,8 @@ class AdminCategoriesControllerCore extends AdminController
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
unset($this->fields_form['input'][2],$this->fields_form['input'][3]);
|
||||||
|
}
|
||||||
// Display this field only if multistore option is enabled AND there are several stores configured
|
// Display this field only if multistore option is enabled AND there are several stores configured
|
||||||
if (Shop::isFeatureActive())
|
if (Shop::isFeatureActive())
|
||||||
$this->fields_form['input'][] = array(
|
$this->fields_form['input'][] = array(
|
||||||
@@ -499,9 +502,6 @@ class AdminCategoriesControllerCore extends AdminController
|
|||||||
if (in_array($input['name'], array('id_parent', 'is_root_category')))
|
if (in_array($input['name'], array('id_parent', 'is_root_category')))
|
||||||
unset($this->fields_form['input'][$k]);
|
unset($this->fields_form['input'][$k]);
|
||||||
|
|
||||||
if (Tools::isSubmit('add'.$this->table.'root'))
|
|
||||||
unset($this->fields_form['input'][2],$this->fields_form['input'][3]);
|
|
||||||
|
|
||||||
if (!($obj = $this->loadObject(true)))
|
if (!($obj = $this->loadObject(true)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -525,6 +525,8 @@ class AdminCategoriesControllerCore extends AdminController
|
|||||||
foreach ($groups as $group)
|
foreach ($groups as $group)
|
||||||
$this->fields_value['groupBox_'.$group['id_group']] = Tools::getValue('groupBox_'.$group['id_group'], (in_array($group['id_group'], $category_groups_ids)));
|
$this->fields_value['groupBox_'.$group['id_group']] = Tools::getValue('groupBox_'.$group['id_group'], (in_array($group['id_group'], $category_groups_ids)));
|
||||||
|
|
||||||
|
$this->fields_value['is_root_category'] = (bool)Tools::isSubmit('add'.$this->table.'root');
|
||||||
|
|
||||||
return parent::renderForm();
|
return parent::renderForm();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -555,7 +557,7 @@ class AdminCategoriesControllerCore extends AdminController
|
|||||||
$id_parent = (int)Tools::getValue('id_parent');
|
$id_parent = (int)Tools::getValue('id_parent');
|
||||||
|
|
||||||
// if true, we are in a root category creation
|
// if true, we are in a root category creation
|
||||||
if (!$id_parent && !Tools::isSubmit('is_root_category'))
|
if (!$id_parent)
|
||||||
{
|
{
|
||||||
$_POST['is_root_category'] = $_POST['level_depth'] = 1;
|
$_POST['is_root_category'] = $_POST['level_depth'] = 1;
|
||||||
$_POST['id_parent'] = $id_parent = (int)Configuration::get('PS_ROOT_CATEGORY');
|
$_POST['id_parent'] = $id_parent = (int)Configuration::get('PS_ROOT_CATEGORY');
|
||||||
|
|||||||
@@ -463,6 +463,16 @@ class AdminEmployeesControllerCore extends AdminController
|
|||||||
return parent::initContent();
|
return parent::initContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function afterUpdate($object)
|
||||||
|
{
|
||||||
|
$res = parent::afterUpdate($object);
|
||||||
|
// Update cookie if needed
|
||||||
|
if (Tools::getValue('id_employee') == $this->context->employee->id && Tools::getValue('passwd') && $object->passwd != $this->context->employee->passwd)
|
||||||
|
$this->context->cookie->passwd = $this->context->employee->passwd = $object->passwd;
|
||||||
|
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
public function ajaxProcessGetTabByIdProfile()
|
public function ajaxProcessGetTabByIdProfile()
|
||||||
{
|
{
|
||||||
$id_profile = Tools::getValue('id_profile');
|
$id_profile = Tools::getValue('id_profile');
|
||||||
|
|||||||
@@ -2658,6 +2658,13 @@ class AdminImportControllerCore extends AdminController
|
|||||||
Image::clearTmpDir();
|
Image::clearTmpDir();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function clearSmartyCache()
|
||||||
|
{
|
||||||
|
Tools::enableCache();
|
||||||
|
Tools::clearCache($this->context->smarty);
|
||||||
|
Tools::restoreCacheSettings();
|
||||||
|
}
|
||||||
|
|
||||||
public function postProcess()
|
public function postProcess()
|
||||||
{
|
{
|
||||||
@@ -2715,10 +2722,12 @@ class AdminImportControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
case $this->entities[$import_type = $this->l('Categories')]:
|
case $this->entities[$import_type = $this->l('Categories')]:
|
||||||
$this->categoryImport();
|
$this->categoryImport();
|
||||||
|
$this->clearSmartyCache();
|
||||||
break;
|
break;
|
||||||
case $this->entities[$import_type = $this->l('Products')]:
|
case $this->entities[$import_type = $this->l('Products')]:
|
||||||
$import_type = $this->l('Categories');
|
$import_type = $this->l('Categories');
|
||||||
$this->productImport();
|
$this->productImport();
|
||||||
|
$this->clearSmartyCache();
|
||||||
break;
|
break;
|
||||||
case $this->entities[$import_type = $this->l('Customers')]:
|
case $this->entities[$import_type = $this->l('Customers')]:
|
||||||
$this->customerImport();
|
$this->customerImport();
|
||||||
@@ -2728,12 +2737,15 @@ class AdminImportControllerCore extends AdminController
|
|||||||
break;
|
break;
|
||||||
case $this->entities[$import_type = $this->l('Combinations')]:
|
case $this->entities[$import_type = $this->l('Combinations')]:
|
||||||
$this->attributeImport();
|
$this->attributeImport();
|
||||||
|
$this->clearSmartyCache();
|
||||||
break;
|
break;
|
||||||
case $this->entities[$import_type = $this->l('Manufacturers')]:
|
case $this->entities[$import_type = $this->l('Manufacturers')]:
|
||||||
$this->manufacturerImport();
|
$this->manufacturerImport();
|
||||||
|
$this->clearSmartyCache();
|
||||||
break;
|
break;
|
||||||
case $this->entities[$import_type = $this->l('Suppliers')]:
|
case $this->entities[$import_type = $this->l('Suppliers')]:
|
||||||
$this->supplierImport();
|
$this->supplierImport();
|
||||||
|
$this->clearSmartyCache();
|
||||||
break;
|
break;
|
||||||
// @since 1.5.0
|
// @since 1.5.0
|
||||||
case $this->entities[$import_type = $this->l('Supply Orders')]:
|
case $this->entities[$import_type = $this->l('Supply Orders')]:
|
||||||
|
|||||||
@@ -33,9 +33,6 @@ class AdminLogsControllerCore extends AdminController
|
|||||||
$this->lang = false;
|
$this->lang = false;
|
||||||
$this->noLink = true;
|
$this->noLink = true;
|
||||||
|
|
||||||
$this->addRowAction('delete');
|
|
||||||
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
|
|
||||||
|
|
||||||
$this->fields_list = array(
|
$this->fields_list = array(
|
||||||
'id_log' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25),
|
'id_log' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25),
|
||||||
'employee' => array('title' => $this->l('Employee'), 'align' => 'center', 'width' => 100),
|
'employee' => array('title' => $this->l('Employee'), 'align' => 'center', 'width' => 100),
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ class AdminMetaControllerCore extends AdminController
|
|||||||
$this->url = ShopUrl::getShopUrls($this->context->shop->id)->where('main', '=', 1)->getFirst();
|
$this->url = ShopUrl::getShopUrls($this->context->shop->id)->where('main', '=', 1)->getFirst();
|
||||||
if ($this->url)
|
if ($this->url)
|
||||||
{
|
{
|
||||||
$shop_url_options['description'] = $this->l('Here you can set the URL for your shop. If you migrate your shop to a new URL, remember to change the values bellow.');
|
$shop_url_options['description'] = $this->l('Here you can set the URL for your shop. If you migrate your shop to a new URL, remember to change the values below.');
|
||||||
$shop_url_options['fields'] = array(
|
$shop_url_options['fields'] = array(
|
||||||
'domain' => array(
|
'domain' => array(
|
||||||
'title' => $this->l('Shop domain'),
|
'title' => $this->l('Shop domain'),
|
||||||
@@ -363,6 +363,9 @@ class AdminMetaControllerCore extends AdminController
|
|||||||
else if (Tools::isSubmit('submitRobots'))
|
else if (Tools::isSubmit('submitRobots'))
|
||||||
$this->generateRobotsFile();
|
$this->generateRobotsFile();
|
||||||
|
|
||||||
|
if (Tools::isSubmit('PS_ROUTE_product_rule'))
|
||||||
|
Tools::clearCache($this->context->smarty);
|
||||||
|
|
||||||
return parent::postProcess();
|
return parent::postProcess();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -467,7 +470,6 @@ class AdminMetaControllerCore extends AdminController
|
|||||||
else
|
else
|
||||||
Configuration::updateValue('PS_ROUTE_'.$route_id, $rule);
|
Configuration::updateValue('PS_ROUTE_'.$route_id, $rule);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -630,9 +630,8 @@ class AdminModulesControllerCore extends AdminController
|
|||||||
|
|
||||||
if (!$download_ok)
|
if (!$download_ok)
|
||||||
$this->errors[] = $this->l('Error on downloading the lastest version');
|
$this->errors[] = $this->l('Error on downloading the lastest version');
|
||||||
else
|
elseif (!$this->extractArchive(_PS_MODULE_DIR_.$modaddons->name.'.zip', false))
|
||||||
if(!$this->extractArchive(_PS_MODULE_DIR_.$modaddons->name.'.zip', false))
|
$this->errors[] = $this->l(sprintf("Module %s can't be upgraded: ", $modaddons->name));
|
||||||
$this->errors[] = $this->l(sprintf("Module %s can't be upgraded: ", $modaddons->name));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -674,18 +673,18 @@ class AdminModulesControllerCore extends AdminController
|
|||||||
|
|
||||||
// Get the return value of current method
|
// Get the return value of current method
|
||||||
$echo = $module->{$method}();
|
$echo = $module->{$method}();
|
||||||
|
|
||||||
// After a successful install of a single module that has a configuration method, to the configuration page
|
// After a successful install of a single module that has a configuration method, to the configuration page
|
||||||
if ($key == 'install' && $echo === true && strpos(Tools::getValue('install'), '|') === false && method_exists($module, 'getContent'))
|
if ($key == 'install' && $echo === true && strpos(Tools::getValue('install'), '|') === false && method_exists($module, 'getContent'))
|
||||||
Tools::redirectAdmin(self::$currentIndex.'&token='.$this->token.'&configure='.$module->name.'&conf=12');
|
Tools::redirectAdmin(self::$currentIndex.'&token='.$this->token.'&configure='.$module->name.'&conf=12');
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the method called is "configure" (getContent method), we show the html code of configure page
|
// If the method called is "configure" (getContent method), we show the html code of configure page
|
||||||
if ($key == 'configure' && Module::isInstalled($module->name))
|
if ($key == 'configure' && Module::isInstalled($module->name))
|
||||||
{
|
{
|
||||||
if (isset($module->multishop_context))
|
if (isset($module->multishop_context))
|
||||||
$this->multishop_context = $module->multishop_context;
|
$this->multishop_context = $module->multishop_context;
|
||||||
|
|
||||||
$backlink = self::$currentIndex.'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name;
|
$backlink = self::$currentIndex.'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name;
|
||||||
$hooklink = 'index.php?tab=AdminModulesPositions&token='.Tools::getAdminTokenLite('AdminModulesPositions').'&show_modules='.(int)$module->id;
|
$hooklink = 'index.php?tab=AdminModulesPositions&token='.Tools::getAdminTokenLite('AdminModulesPositions').'&show_modules='.(int)$module->id;
|
||||||
$tradlink = 'index.php?tab=AdminTranslations&token='.Tools::getAdminTokenLite('AdminTranslations').'&type=modules&lang=';
|
$tradlink = 'index.php?tab=AdminTranslations&token='.Tools::getAdminTokenLite('AdminTranslations').'&type=modules&lang=';
|
||||||
@@ -768,10 +767,8 @@ class AdminModulesControllerCore extends AdminController
|
|||||||
Tools::redirectAdmin(self::$currentIndex.'&conf='.$return.'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(isset($modules_list_save) ? '&modules_list='.$modules_list_save : '').$params);
|
Tools::redirectAdmin(self::$currentIndex.'&conf='.$return.'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(isset($modules_list_save) ? '&modules_list='.$modules_list_save : '').$params);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($_GET['update']))
|
if (isset($_GET['update']))
|
||||||
{
|
|
||||||
Tools::redirectAdmin(self::$currentIndex.'&token='.$this->token.'&updated=1tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(isset($modules_list_save) ? '&modules_list='.$modules_list_save : '').$params);
|
Tools::redirectAdmin(self::$currentIndex.'&token='.$this->token.'&updated=1tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(isset($modules_list_save) ? '&modules_list='.$modules_list_save : '').$params);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function postProcess()
|
public function postProcess()
|
||||||
@@ -779,7 +776,6 @@ class AdminModulesControllerCore extends AdminController
|
|||||||
// Parent Post Process
|
// Parent Post Process
|
||||||
parent::postProcess();
|
parent::postProcess();
|
||||||
|
|
||||||
|
|
||||||
// Get the list of installed module ans prepare it for ajax call.
|
// Get the list of installed module ans prepare it for ajax call.
|
||||||
if (($list = Tools::getValue('installed_modules')))
|
if (($list = Tools::getValue('installed_modules')))
|
||||||
Context::getContext()->smarty->assign('installed_modules', Tools::jsonEncode(explode('|', $list)));
|
Context::getContext()->smarty->assign('installed_modules', Tools::jsonEncode(explode('|', $list)));
|
||||||
|
|||||||
@@ -270,12 +270,13 @@ class AdminModulesPositionsControllerCore extends AdminController
|
|||||||
'href' => self::$currentIndex.'&addToHook'.($this->display_key ? '&show_modules='.$this->display_key : '').'&token='.$this->token,
|
'href' => self::$currentIndex.'&addToHook'.($this->display_key ? '&show_modules='.$this->display_key : '').'&token='.$this->token,
|
||||||
'desc' => $this->l('Transplant a module')
|
'desc' => $this->l('Transplant a module')
|
||||||
);
|
);
|
||||||
|
|
||||||
$live_edit_params = array(
|
$live_edit_params = array(
|
||||||
'live_edit' => true,
|
'live_edit' => true,
|
||||||
'ad' => $admin_dir,
|
'ad' => $admin_dir,
|
||||||
'liveToken' => $this->token,
|
'liveToken' => $this->token,
|
||||||
'id_employee' => (int)$this->context->employee->id
|
'id_employee' => (int)$this->context->employee->id,
|
||||||
|
'id_shop' => (int)$this->context->shop->id
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->context->smarty->assign(array(
|
$this->context->smarty->assign(array(
|
||||||
@@ -308,6 +309,7 @@ class AdminModulesPositionsControllerCore extends AdminController
|
|||||||
if (Configuration::get('PS_REWRITING_SETTINGS') && count(Language::getLanguages(true)) > 1)
|
if (Configuration::get('PS_REWRITING_SETTINGS') && count(Language::getLanguages(true)) > 1)
|
||||||
$lang = Language::getIsoById($this->context->employee->id_lang).'/';
|
$lang = Language::getIsoById($this->context->employee->id_lang).'/';
|
||||||
$url = 'http://'.Tools::getHttpHost().$dir.$lang.Dispatcher::getInstance()->createUrl('index', (int)$this->context->language->id, $live_edit_params);
|
$url = 'http://'.Tools::getHttpHost().$dir.$lang.Dispatcher::getInstance()->createUrl('index', (int)$this->context->language->id, $live_edit_params);
|
||||||
|
|
||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -861,7 +861,7 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
$payment_module->validateOrder(
|
$payment_module->validateOrder(
|
||||||
(int)$cart->id, (int)$id_order_state,
|
(int)$cart->id, (int)$id_order_state,
|
||||||
$cart->getOrderTotal(true, Cart::BOTH), $payment_module->displayName, $this->l('Manual order -- Employee:').
|
$cart->getOrderTotal(true, Cart::BOTH), $payment_module->displayName, $this->l('Manual order -- Employee:').
|
||||||
Tools::safeOutput(substr($employee->firstname, 0, 1).'. '.$employee->lastname), array(), null, false, $cart->secure_key
|
substr($employee->firstname, 0, 1).'. '.$employee->lastname, array(), null, false, $cart->secure_key
|
||||||
);
|
);
|
||||||
if ($payment_module->currentOrder)
|
if ($payment_module->currentOrder)
|
||||||
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$payment_module->currentOrder.'&vieworder'.'&token='.$this->token);
|
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$payment_module->currentOrder.'&vieworder'.'&token='.$this->token);
|
||||||
@@ -1332,6 +1332,13 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
// if the current stock requires a warning
|
// if the current stock requires a warning
|
||||||
if ($product['current_stock'] == 0 && $display_out_of_stock_warning)
|
if ($product['current_stock'] == 0 && $display_out_of_stock_warning)
|
||||||
$this->displayWarning($this->l('This product is out of stock: ').' '.$product['product_name']);
|
$this->displayWarning($this->l('This product is out of stock: ').' '.$product['product_name']);
|
||||||
|
if ($product['id_warehouse'] != 0)
|
||||||
|
{
|
||||||
|
$warehouse = new Warehouse((int)$product['id_warehouse']);
|
||||||
|
$product['warehouse_name'] = $warehouse->name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$product['warehouse_name'] = '--';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Smarty assign
|
// Smarty assign
|
||||||
@@ -1374,7 +1381,8 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
'invoices_collection' => $order->getInvoicesCollection(),
|
'invoices_collection' => $order->getInvoicesCollection(),
|
||||||
'not_paid_invoices_collection' => $order->getNotPaidInvoicesCollection(),
|
'not_paid_invoices_collection' => $order->getNotPaidInvoicesCollection(),
|
||||||
'payment_methods' => $payment_methods,
|
'payment_methods' => $payment_methods,
|
||||||
'invoice_management_active' => Configuration::get('PS_INVOICE', null, null, $order->id_shop)
|
'invoice_management_active' => Configuration::get('PS_INVOICE', null, null, $order->id_shop),
|
||||||
|
'display_warehouse' => (int)Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT')
|
||||||
);
|
);
|
||||||
|
|
||||||
return parent::renderView();
|
return parent::renderView();
|
||||||
@@ -1737,6 +1745,13 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
$product['amount_refund'] = Tools::displayPrice($resume['amount_tax_incl']);
|
$product['amount_refund'] = Tools::displayPrice($resume['amount_tax_incl']);
|
||||||
$product['return_history'] = OrderReturn::getProductReturnDetail((int)$product['id_order_detail']);
|
$product['return_history'] = OrderReturn::getProductReturnDetail((int)$product['id_order_detail']);
|
||||||
$product['refund_history'] = OrderSlip::getProductSlipDetail((int)$product['id_order_detail']);
|
$product['refund_history'] = OrderSlip::getProductSlipDetail((int)$product['id_order_detail']);
|
||||||
|
if ($product['id_warehouse'] != 0)
|
||||||
|
{
|
||||||
|
$warehouse = new Warehouse((int)$product['id_warehouse']);
|
||||||
|
$product['warehouse_name'] = $warehouse->name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$product['warehouse_name'] = '--';
|
||||||
|
|
||||||
// Get invoices collection
|
// Get invoices collection
|
||||||
$invoice_collection = $order->getInvoicesCollection();
|
$invoice_collection = $order->getInvoicesCollection();
|
||||||
@@ -1757,7 +1772,8 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
'invoices_collection' => $invoice_collection,
|
'invoices_collection' => $invoice_collection,
|
||||||
'current_id_lang' => Context::getContext()->language->id,
|
'current_id_lang' => Context::getContext()->language->id,
|
||||||
'link' => Context::getContext()->link,
|
'link' => Context::getContext()->link,
|
||||||
'current_index' => self::$currentIndex
|
'current_index' => self::$currentIndex,
|
||||||
|
'display_warehouse' => (int)Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT')
|
||||||
));
|
));
|
||||||
|
|
||||||
$this->sendChangedNotification($order);
|
$this->sendChangedNotification($order);
|
||||||
@@ -1952,6 +1968,14 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
$product['amount_refundable'] = $product['total_price_tax_incl'] - $resume['amount_tax_incl'];
|
$product['amount_refundable'] = $product['total_price_tax_incl'] - $resume['amount_tax_incl'];
|
||||||
$product['amount_refund'] = Tools::displayPrice($resume['amount_tax_incl']);
|
$product['amount_refund'] = Tools::displayPrice($resume['amount_tax_incl']);
|
||||||
$product['refund_history'] = OrderSlip::getProductSlipDetail($order_detail->id);
|
$product['refund_history'] = OrderSlip::getProductSlipDetail($order_detail->id);
|
||||||
|
if ($product['id_warehouse'] != 0)
|
||||||
|
{
|
||||||
|
$warehouse = new Warehouse((int)$product['id_warehouse']);
|
||||||
|
$product['warehouse_name'] = $warehouse->name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$product['warehouse_name'] = '--';
|
||||||
|
|
||||||
// Get invoices collection
|
// Get invoices collection
|
||||||
$invoice_collection = $order->getInvoicesCollection();
|
$invoice_collection = $order->getInvoicesCollection();
|
||||||
|
|
||||||
@@ -1971,7 +1995,8 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
'invoices_collection' => $invoice_collection,
|
'invoices_collection' => $invoice_collection,
|
||||||
'current_id_lang' => Context::getContext()->language->id,
|
'current_id_lang' => Context::getContext()->language->id,
|
||||||
'link' => Context::getContext()->link,
|
'link' => Context::getContext()->link,
|
||||||
'current_index' => self::$currentIndex
|
'current_index' => self::$currentIndex,
|
||||||
|
'display_warehouse' => (int)Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT')
|
||||||
));
|
));
|
||||||
|
|
||||||
if (!$res)
|
if (!$res)
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ class AdminPaymentControllerCore extends AdminController
|
|||||||
),
|
),
|
||||||
array('items' => Group::getGroups($this->context->language->id),
|
array('items' => Group::getGroups($this->context->language->id),
|
||||||
'title' => $this->l('Group restrictions'),
|
'title' => $this->l('Group restrictions'),
|
||||||
'desc' => $this->l('Please mark each checkbox for the currency, or currencies, in which you want the payment module(s) to be available.'),
|
'desc' => $this->l('Please mark each checkbox for the customer group(s), in which you want the payment module(s) to be available.'),
|
||||||
'name_id' => 'group',
|
'name_id' => 'group',
|
||||||
'identifier' => 'id_group',
|
'identifier' => 'id_group',
|
||||||
'icon' => 'group',
|
'icon' => 'group',
|
||||||
|
|||||||
@@ -791,6 +791,13 @@ class AdminPerformanceControllerCore extends AdminController
|
|||||||
else
|
else
|
||||||
$this->errors[] = Tools::displayError('You do not have permission to edit this.');
|
$this->errors[] = Tools::displayError('You do not have permission to edit this.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((bool)Tools::getValue('empty_smarty_cache'))
|
||||||
|
{
|
||||||
|
$redirectAdmin = true;
|
||||||
|
Tools::clearSmartyCache();
|
||||||
|
}
|
||||||
|
|
||||||
if ($redirectAdmin && (!isset($this->errors) || !count($this->errors)))
|
if ($redirectAdmin && (!isset($this->errors) || !count($this->errors)))
|
||||||
{
|
{
|
||||||
Hook::exec('action'.get_class($this).ucfirst($this->action).'After', array('controller' => $this, 'return' => ''));
|
Hook::exec('action'.get_class($this).ucfirst($this->action).'After', array('controller' => $this, 'return' => ''));
|
||||||
|
|||||||
@@ -359,18 +359,17 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
$result = parent::loadObject($opt);
|
$result = parent::loadObject($opt);
|
||||||
if ($result && Validate::isLoadedObject($this->object))
|
if ($result && Validate::isLoadedObject($this->object))
|
||||||
{
|
{
|
||||||
if (Shop::getContext() == Shop::CONTEXT_SHOP && !$this->object->isAssociatedToShop())
|
if (Shop::getContext() == Shop::CONTEXT_SHOP && Shop::isFeatureActive() && !$this->object->isAssociatedToShop())
|
||||||
{
|
{
|
||||||
$default_product = new Product((int)$this->object->id, false, null, (int)$this->object->id_shop_default);
|
$default_product = new Product((int)$this->object->id, false, null, (int)$this->object->id_shop_default);
|
||||||
$def = ObjectModel::getDefinition($this->object);
|
$def = ObjectModel::getDefinition($this->object);
|
||||||
foreach ($def['fields'] as $field_name => $row)
|
foreach ($def['fields'] as $field_name => $row)
|
||||||
{
|
{
|
||||||
$fields_array = array();
|
if (is_array($default_product->$field_name))
|
||||||
if(is_array($default_product->$field_name))
|
foreach ($default_product->$field_name as $key => $value)
|
||||||
foreach ($fields_array as $key => $fields_name)
|
$this->object->{$field_name}[$key] = ObjectModel::formatValue($value, $def['fields'][$field_name]['type']);
|
||||||
$this->object->$field_name[$key] = ObjectModel::formatValue($fields_name, $def['fields'][$field_name]['type']);
|
|
||||||
else
|
else
|
||||||
$this->object->$field_name = ObjectModel::formatValue($this->object->$field_name, $def['fields'][$field_name]['type']);
|
$this->object->$field_name = ObjectModel::formatValue($default_product->$field_name, $def['fields'][$field_name]['type']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->object->loadStockData();
|
$this->object->loadStockData();
|
||||||
@@ -631,6 +630,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
$id_category = (int)Tools::getValue('id_category');
|
$id_category = (int)Tools::getValue('id_category');
|
||||||
$category_url = empty($id_category) ? '' : '&id_category='.(int)$id_category;
|
$category_url = empty($id_category) ? '' : '&id_category='.(int)$id_category;
|
||||||
|
Logger::addLog(sprintf($this->l('%s deletion'), $this->className), 1, null, $this->className, (int)$object->id, true, (int)$this->context->employee->id);
|
||||||
$this->redirect_after = self::$currentIndex.'&conf=1&token='.$this->token.$category_url;
|
$this->redirect_after = self::$currentIndex.'&conf=1&token='.$this->token.$category_url;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -669,7 +669,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
$productId = (int)Tools::getValue('id_product');
|
$productId = (int)Tools::getValue('id_product');
|
||||||
@unlink(_PS_TMP_IMG_DIR_.'product_'.$productId.'.jpg');
|
@unlink(_PS_TMP_IMG_DIR_.'product_'.$productId.'.jpg');
|
||||||
@unlink(_PS_TMP_IMG_DIR_.'product_mini_'.$productId.'.jpg');
|
@unlink(_PS_TMP_IMG_DIR_.'product_mini_'.$productId.'_'.$this->context->shop->id.'.jpg');
|
||||||
$this->redirect_after = self::$currentIndex.'&id_product='.$image->id_product.'&id_category='.(Tools::getIsset('id_category') ? '&id_category='.(int)Tools::getValue('id_category') : '').'&action=Images&addproduct'.'&token='.$this->token;
|
$this->redirect_after = self::$currentIndex.'&id_product='.$image->id_product.'&id_category='.(Tools::getIsset('id_category') ? '&id_category='.(int)Tools::getValue('id_category') : '').'&action=Images&addproduct'.'&token='.$this->token;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1348,7 +1348,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
'shops' => $json_shops,
|
'shops' => $json_shops,
|
||||||
);
|
);
|
||||||
@unlink(_PS_TMP_IMG_DIR_.'product_'.(int)$obj->id_product.'.jpg');
|
@unlink(_PS_TMP_IMG_DIR_.'product_'.(int)$obj->id_product.'.jpg');
|
||||||
@unlink(_PS_TMP_IMG_DIR_.'product_mini_'.(int)$obj->id_product.'.jpg');
|
@unlink(_PS_TMP_IMG_DIR_.'product_mini_'.(int)$obj->id_product.'_'.$this->context->shop->id.'.jpg');
|
||||||
die(Tools::jsonEncode($json));
|
die(Tools::jsonEncode($json));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1520,7 +1520,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
$img->cover = 1;
|
$img->cover = 1;
|
||||||
|
|
||||||
@unlink(_PS_TMP_IMG_DIR_.'product_'.(int)$img->id_product.'.jpg');
|
@unlink(_PS_TMP_IMG_DIR_.'product_'.(int)$img->id_product.'.jpg');
|
||||||
@unlink(_PS_TMP_IMG_DIR_.'product_mini_'.(int)$img->id_product.'.jpg');
|
@unlink(_PS_TMP_IMG_DIR_.'product_mini_'.(int)$img->id_product.'_'.$this->context->shop->id.'.jpg');
|
||||||
|
|
||||||
if ($img->update())
|
if ($img->update())
|
||||||
$this->jsonConfirmation($this->_conf[26]);
|
$this->jsonConfirmation($this->_conf[26]);
|
||||||
@@ -1556,8 +1556,8 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
|
|
||||||
if (file_exists(_PS_TMP_IMG_DIR_.'product_'.$image->id_product.'.jpg'))
|
if (file_exists(_PS_TMP_IMG_DIR_.'product_'.$image->id_product.'.jpg'))
|
||||||
$res &= @unlink(_PS_TMP_IMG_DIR_.'product_'.$image->id_product.'.jpg');
|
$res &= @unlink(_PS_TMP_IMG_DIR_.'product_'.$image->id_product.'.jpg');
|
||||||
if (file_exists(_PS_TMP_IMG_DIR_.'product_mini_'.$image->id_product.'.jpg'))
|
if (file_exists(_PS_TMP_IMG_DIR_.'product_mini_'.$image->id_product.'_'.$this->context->shop->id.'.jpg'))
|
||||||
$res &= @unlink(_PS_TMP_IMG_DIR_.'product_mini_'.$image->id_product.'.jpg');
|
$res &= @unlink(_PS_TMP_IMG_DIR_.'product_mini_'.$image->id_product.'_'.$this->context->shop->id.'.jpg');
|
||||||
|
|
||||||
if ($res)
|
if ($res)
|
||||||
$this->jsonConfirmation($this->_conf[7]);
|
$this->jsonConfirmation($this->_conf[7]);
|
||||||
@@ -1646,7 +1646,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
if (count($this->errors))
|
if (count($this->errors))
|
||||||
return false;
|
return false;
|
||||||
@unlink(_PS_TMP_IMG_DIR_.'product_'.$product->id.'.jpg');
|
@unlink(_PS_TMP_IMG_DIR_.'product_'.$product->id.'.jpg');
|
||||||
@unlink(_PS_TMP_IMG_DIR_.'product_mini_'.$product->id.'.jpg');
|
@unlink(_PS_TMP_IMG_DIR_.'product_mini_'.$product->id.'_'.$this->context->shop->id.'.jpg');
|
||||||
return ((isset($id_image) && is_int($id_image) && $id_image) ? $id_image : false);
|
return ((isset($id_image) && is_int($id_image) && $id_image) ? $id_image : false);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -2614,6 +2614,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
|
|
||||||
if (!ShopUrl::getMainShopDomain())
|
if (!ShopUrl::getMainShopDomain())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$is_rewrite_active = (bool)Configuration::get('PS_REWRITING_SETTINGS');
|
$is_rewrite_active = (bool)Configuration::get('PS_REWRITING_SETTINGS');
|
||||||
$preview_url = $this->context->link->getProductLink(
|
$preview_url = $this->context->link->getProductLink(
|
||||||
$product,
|
$product,
|
||||||
@@ -2625,6 +2626,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
0,
|
0,
|
||||||
$is_rewrite_active
|
$is_rewrite_active
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!$product->active)
|
if (!$product->active)
|
||||||
{
|
{
|
||||||
$preview_url = $this->context->link->getProductLink(
|
$preview_url = $this->context->link->getProductLink(
|
||||||
@@ -2637,15 +2639,12 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
0,
|
0,
|
||||||
$is_rewrite_active
|
$is_rewrite_active
|
||||||
);
|
);
|
||||||
|
$admin_dir = dirname($_SERVER['PHP_SELF']);
|
||||||
|
$admin_dir = substr($admin_dir, strrpos($admin_dir, '/') + 1);
|
||||||
|
$preview_url .= ((strpos($preview_url, '?') === false) ? '?' : '&').'adtoken='.$this->token.'&ad='.$admin_dir.'&id_employee='.(int)$this->context->employee->id;
|
||||||
|
|
||||||
if (!$product->active)
|
|
||||||
{
|
|
||||||
$admin_dir = dirname($_SERVER['PHP_SELF']);
|
|
||||||
$admin_dir = substr($admin_dir, strrpos($admin_dir, '/') + 1);
|
|
||||||
|
|
||||||
$preview_url .= $product->active ? '' : '&adtoken='.$this->token.'&ad='.$admin_dir.'&id_employee='.(int)$this->context->employee->id;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $preview_url;
|
return $preview_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2996,7 +2995,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
$data->assign(array(
|
$data->assign(array(
|
||||||
'link' => $this->context->link,
|
'link' => $this->context->link,
|
||||||
'currency' => $currency = $this->context->currency,
|
'currency' => $currency = $this->context->currency,
|
||||||
'tax_rules_groups' => TaxRulesGroup::getTaxRulesGroups(true, true),
|
'tax_rules_groups' => TaxRulesGroup::getTaxRulesGroups(true),
|
||||||
'taxesRatesByGroup' => TaxRulesGroup::getAssociatedTaxRatesByIdCountry($this->context->country->id),
|
'taxesRatesByGroup' => TaxRulesGroup::getAssociatedTaxRatesByIdCountry($this->context->country->id),
|
||||||
'ecotaxTaxRate' => Tax::getProductEcotaxRate(),
|
'ecotaxTaxRate' => Tax::getProductEcotaxRate(),
|
||||||
'tax_exclude_taxe_option' => Tax::excludeTaxeOption(),
|
'tax_exclude_taxe_option' => Tax::excludeTaxeOption(),
|
||||||
|
|||||||
@@ -37,7 +37,17 @@ class AdminShippingControllerCore extends AdminController
|
|||||||
foreach ($carriers as $key => $carrier)
|
foreach ($carriers as $key => $carrier)
|
||||||
if ($carrier['is_free'])
|
if ($carrier['is_free'])
|
||||||
unset($carriers[$key]);
|
unset($carriers[$key]);
|
||||||
|
|
||||||
|
$carrier_default_sort = array(
|
||||||
|
array('value' => Carrier::SORT_BY_PRICE, 'name' => $this->l('Price')),
|
||||||
|
array('value' => Carrier::SORT_BY_POSITION, 'name' => $this->l('Position'))
|
||||||
|
);
|
||||||
|
|
||||||
|
$carrier_default_order = array(
|
||||||
|
array('value' => Carrier::SORT_BY_ASC, 'name' => $this->l('Ascending')),
|
||||||
|
array('value' => Carrier::SORT_BY_DESC, 'name' => $this->l('Descending'))
|
||||||
|
);
|
||||||
|
|
||||||
$this->fields_options = array(
|
$this->fields_options = array(
|
||||||
'handling' => array(
|
'handling' => array(
|
||||||
'title' => $this->l('Handling'),
|
'title' => $this->l('Handling'),
|
||||||
@@ -68,12 +78,45 @@ class AdminShippingControllerCore extends AdminController
|
|||||||
<li>'.$this->l('Coupons are not taken into account when calculating free shipping').'</li>
|
<li>'.$this->l('Coupons are not taken into account when calculating free shipping').'</li>
|
||||||
</ul>',
|
</ul>',
|
||||||
'submit' => array()
|
'submit' => array()
|
||||||
|
),
|
||||||
|
'general' => array(
|
||||||
|
'title' => $this->l('Carrier options'),
|
||||||
|
'fields' => array(
|
||||||
|
'PS_CARRIER_DEFAULT' => array(
|
||||||
|
'title' => $this->l('Default carrier:'),
|
||||||
|
'desc' => $this->l('Your shop\'s default carrier'),
|
||||||
|
'cast' => 'intval',
|
||||||
|
'type' => 'select',
|
||||||
|
'identifier' => 'id_carrier',
|
||||||
|
'list' => array_merge(
|
||||||
|
array(
|
||||||
|
-1 => array('id_carrier' => -1, 'name' => $this->l('Best price')),
|
||||||
|
-2 => array('id_carrier' => -2, 'name' => $this->l('Best grade'))
|
||||||
|
),
|
||||||
|
Carrier::getCarriers((int)Configuration::get('PS_LANG_DEFAULT'), true, false, false, null, Carrier::ALL_CARRIERS))
|
||||||
|
),
|
||||||
|
'PS_CARRIER_DEFAULT_SORT' => array(
|
||||||
|
'title' => $this->l('Sort by:'),
|
||||||
|
'desc' => $this->l('This will only be visible in the Front Office'),
|
||||||
|
'cast' => 'intval',
|
||||||
|
'type' => 'select',
|
||||||
|
'identifier' => 'value',
|
||||||
|
'list' => $carrier_default_sort
|
||||||
|
),
|
||||||
|
'PS_CARRIER_DEFAULT_ORDER' => array(
|
||||||
|
'title' => $this->l('Order by:'),
|
||||||
|
'desc' => $this->l('This will only be visible in the Front Office'),
|
||||||
|
'cast' => 'intval',
|
||||||
|
'type' => 'select',
|
||||||
|
'identifier' => 'value',
|
||||||
|
'list' => $carrier_default_order
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'submit' => array()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function postProcess()
|
public function postProcess()
|
||||||
{
|
{
|
||||||
/* Shipping fees */
|
/* Shipping fees */
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ class AdminShopControllerCore extends AdminController
|
|||||||
$this->fields_form['input'][] = array(
|
$this->fields_form['input'][] = array(
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'label' => $this->l('Category root:'),
|
'label' => $this->l('Category root:'),
|
||||||
'desc' => $this->l('This is the root category of the store that you\'ve created. To define a new root category for your store,').' <a href="'.$this->context->link->getAdminLink('AdminCategories').'&addcategoryroot">'.$this->l('Please click here').'</a>',
|
'desc' => $this->l('This is the root category of the store that you\'ve created. To define a new root category for your store,').' <a href="'.$this->context->link->getAdminLink('AdminCategories').'&addcategoryroot" target="_blank">'.$this->l('Please click here').'</a>',
|
||||||
'name' => 'id_category',
|
'name' => 'id_category',
|
||||||
'options' => array(
|
'options' => array(
|
||||||
'query' => $categories,
|
'query' => $categories,
|
||||||
|
|||||||
@@ -1193,7 +1193,7 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// updates receipt
|
// updates receipt
|
||||||
if (Tools::isSubmit('submitFiltersupply_order_detail') && Tools::isSubmit('submitBulkUpdatesupply_order_detail') && Tools::isSubmit('id_supply_order'))
|
if (Tools::isSubmit('submitBulkUpdatesupply_order_detail') && Tools::isSubmit('id_supply_order'))
|
||||||
$this->postProcessUpdateReceipt();
|
$this->postProcessUpdateReceipt();
|
||||||
|
|
||||||
// use template to create a supply order
|
// use template to create a supply order
|
||||||
@@ -1338,6 +1338,7 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
|||||||
$this->errors[] = sprintf(Tools::displayError($this->l('Quantity (%d) for product #%d is not valid')), (int)$quantity, (int)$id_supply_order_detail);
|
$this->errors[] = sprintf(Tools::displayError($this->l('Quantity (%d) for product #%d is not valid')), (int)$quantity, (int)$id_supply_order_detail);
|
||||||
else // everything is valid : updates
|
else // everything is valid : updates
|
||||||
{
|
{
|
||||||
|
|
||||||
// creates the history
|
// creates the history
|
||||||
$supplier_receipt_history = new SupplyOrderReceiptHistory();
|
$supplier_receipt_history = new SupplyOrderReceiptHistory();
|
||||||
$supplier_receipt_history->id_supply_order_detail = (int)$id_supply_order_detail;
|
$supplier_receipt_history->id_supply_order_detail = (int)$id_supply_order_detail;
|
||||||
|
|||||||
@@ -179,6 +179,15 @@ class AdminTaxRulesGroupControllerCore extends AdminController
|
|||||||
'stay' => true
|
'stay' => true
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (Shop::isFeatureActive())
|
||||||
|
{
|
||||||
|
$this->fields_form['input'][] = array(
|
||||||
|
'type' => 'shop',
|
||||||
|
'label' => $this->l('Shop association:'),
|
||||||
|
'name' => 'checkBoxShopAsso',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (!($obj = $this->loadObject(true)))
|
if (!($obj = $this->loadObject(true)))
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1065,7 +1065,7 @@ class AdminTranslationsControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
case 'front':
|
case 'front':
|
||||||
// Parsing file in Front office
|
// Parsing file in Front office
|
||||||
$regex = '/\{l\s*s=(?:\''._PS_TRANS_PATTERN_.'\'|\"'._PS_TRANS_PATTERN_.'\")(\s*sprintf=.*)?(\s*js=1)?\s*\}/U';
|
$regex = '/\{l\s*s=(?|\'('._PS_TRANS_PATTERN_.')\'|"('._PS_TRANS_PATTERN_.')")(\s*sprintf=.*)?(\s*js=1)?\s*\}/U';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'back':
|
case 'back':
|
||||||
@@ -1075,7 +1075,7 @@ class AdminTranslationsControllerCore extends AdminController
|
|||||||
else if ($type_file == 'specific')
|
else if ($type_file == 'specific')
|
||||||
$regex = '/Translate::getAdminTranslation\(\''._PS_TRANS_PATTERN_.'\'\)/U';
|
$regex = '/Translate::getAdminTranslation\(\''._PS_TRANS_PATTERN_.'\'\)/U';
|
||||||
else
|
else
|
||||||
$regex = '/\{l\s*s\s*=(?:\''._PS_TRANS_PATTERN_.'\'|\"'._PS_TRANS_PATTERN_.'\")(\s*sprintf=.*)?(\s*js=1)?(\s*slashes=1)?\s*\}/U';
|
$regex = '/\{l\s*s\s*=(?|\''._PS_TRANS_PATTERN_.'\'|"'._PS_TRANS_PATTERN_.'")(\s*sprintf=.*)?(\s*js=1)?(\s*slashes=1)?\s*\}/U';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'errors':
|
case 'errors':
|
||||||
@@ -1089,7 +1089,7 @@ class AdminTranslationsControllerCore extends AdminController
|
|||||||
$regex = '/->l\(\''._PS_TRANS_PATTERN_.'\'(, ?\'(.+)\')?(, ?(.+))?\)/U';
|
$regex = '/->l\(\''._PS_TRANS_PATTERN_.'\'(, ?\'(.+)\')?(, ?(.+))?\)/U';
|
||||||
else
|
else
|
||||||
// In tpl file look for something that should contain mod='module_name' according to the documentation
|
// In tpl file look for something that should contain mod='module_name' according to the documentation
|
||||||
$regex = '/\{l\s*s=(?:\''._PS_TRANS_PATTERN_.'\'|\"'._PS_TRANS_PATTERN_.'\").*\s+mod=\''.$module_name.'\'.*\}/U';
|
$regex = '/\{l\s*s=(?|\''._PS_TRANS_PATTERN_.'\'|"'._PS_TRANS_PATTERN_.'").*\s+mod=\''.$module_name.'\'.*\}/U';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'pdf':
|
case 'pdf':
|
||||||
@@ -1097,7 +1097,7 @@ class AdminTranslationsControllerCore extends AdminController
|
|||||||
if ($type_file == 'php')
|
if ($type_file == 'php')
|
||||||
$regex = '/HTMLTemplate.*::l\(\''._PS_TRANS_PATTERN_.'\'[\)|\,]/U';
|
$regex = '/HTMLTemplate.*::l\(\''._PS_TRANS_PATTERN_.'\'[\)|\,]/U';
|
||||||
else
|
else
|
||||||
$regex = '/\{l\s*s=(?:\''._PS_TRANS_PATTERN_.'\'|\"'._PS_TRANS_PATTERN_.'\")(\s*sprintf=.*)?(\s*js=1)?(\s*pdf=\'true\')?\s*\}/U';
|
$regex = '/\{l\s*s=(?|\''._PS_TRANS_PATTERN_.'\'|"'._PS_TRANS_PATTERN_.'")(\s*sprintf=.*)?(\s*js=1)?(\s*pdf=\'true\')?\s*\}/U';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class AuthControllerCore extends FrontController
|
|||||||
parent::init();
|
parent::init();
|
||||||
|
|
||||||
if (!Tools::getIsset('step') && $this->context->customer->isLogged() && !$this->ajax)
|
if (!Tools::getIsset('step') && $this->context->customer->isLogged() && !$this->ajax)
|
||||||
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account'));
|
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account'));
|
||||||
|
|
||||||
if (Tools::getValue('create_account'))
|
if (Tools::getValue('create_account'))
|
||||||
$this->create_account = true;
|
$this->create_account = true;
|
||||||
@@ -329,7 +329,7 @@ class AuthControllerCore extends FrontController
|
|||||||
{
|
{
|
||||||
if ($back = Tools::getValue('back'))
|
if ($back = Tools::getValue('back'))
|
||||||
Tools::redirect(html_entity_decode($back));
|
Tools::redirect(html_entity_decode($back));
|
||||||
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account'));
|
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -469,7 +469,7 @@ class AuthControllerCore extends FrontController
|
|||||||
Tools::redirect('index.php?controller=order&multi-shipping='.(int)Tools::getValue('multi-shipping'));
|
Tools::redirect('index.php?controller=order&multi-shipping='.(int)Tools::getValue('multi-shipping'));
|
||||||
// else : redirection to the account
|
// else : redirection to the account
|
||||||
else
|
else
|
||||||
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account'));
|
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
|
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
|
||||||
@@ -608,7 +608,7 @@ class AuthControllerCore extends FrontController
|
|||||||
Tools::redirect('index.php?controller=order&multi-shipping='.(int)Tools::getValue('multi-shipping'));
|
Tools::redirect('index.php?controller=order&multi-shipping='.(int)Tools::getValue('multi-shipping'));
|
||||||
// else : redirection to the account
|
// else : redirection to the account
|
||||||
else
|
else
|
||||||
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account'));
|
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ class CartControllerCore extends FrontController
|
|||||||
protected $id_address_delivery;
|
protected $id_address_delivery;
|
||||||
protected $customization_id;
|
protected $customization_id;
|
||||||
protected $qty;
|
protected $qty;
|
||||||
|
public $ssl = false;
|
||||||
|
|
||||||
public $ssl = true;
|
public $ssl = true;
|
||||||
|
|
||||||
@@ -190,10 +191,30 @@ class CartControllerCore extends FrontController
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$qty_to_check = $this->qty;
|
||||||
|
$cart_products = $this->context->cart->getProducts();
|
||||||
|
|
||||||
|
if (is_array($cart_products))
|
||||||
|
foreach ($cart_products as $cart_product)
|
||||||
|
{
|
||||||
|
if ((isset($this->id_product_attribute) && $cart_product['id_product_attribute'] == $this->id_product_attribute) ||
|
||||||
|
(isset($this->id_product) && $cart_product['id_product'] == $this->id_product))
|
||||||
|
{
|
||||||
|
$qty_to_check = $cart_product['cart_quantity'];
|
||||||
|
|
||||||
|
if (Tools::getValue('op', 'up') == 'down')
|
||||||
|
$qty_to_check -= $this->qty;
|
||||||
|
else
|
||||||
|
$qty_to_check += $this->qty;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Check product quantity availability
|
// Check product quantity availability
|
||||||
if ($this->id_product_attribute)
|
if ($this->id_product_attribute)
|
||||||
{
|
{
|
||||||
if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !Attribute::checkAttributeQty($this->id_product_attribute, $this->qty))
|
if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !Attribute::checkAttributeQty($this->id_product_attribute, $qty_to_check))
|
||||||
$this->errors[] = Tools::displayError('There isn\'t enough product in stock.');
|
$this->errors[] = Tools::displayError('There isn\'t enough product in stock.');
|
||||||
}
|
}
|
||||||
else if ($product->hasAttributes())
|
else if ($product->hasAttributes())
|
||||||
@@ -203,10 +224,10 @@ class CartControllerCore extends FrontController
|
|||||||
// @todo do something better than a redirect admin !!
|
// @todo do something better than a redirect admin !!
|
||||||
if (!$this->id_product_attribute)
|
if (!$this->id_product_attribute)
|
||||||
Tools::redirectAdmin($this->context->link->getProductLink($product));
|
Tools::redirectAdmin($this->context->link->getProductLink($product));
|
||||||
else if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !Attribute::checkAttributeQty($this->id_product_attribute, $this->qty))
|
else if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !Attribute::checkAttributeQty($this->id_product_attribute, $qty_to_check))
|
||||||
$this->errors[] = Tools::displayError('There isn\'t enough product in stock.');
|
$this->errors[] = Tools::displayError('There isn\'t enough product in stock.');
|
||||||
}
|
}
|
||||||
else if (!$product->checkQty($this->qty))
|
else if (!$product->checkQty($qty_to_check))
|
||||||
$this->errors[] = Tools::displayError('There isn\'t enough product in stock.');
|
$this->errors[] = Tools::displayError('There isn\'t enough product in stock.');
|
||||||
|
|
||||||
// If no errors, process product addition
|
// If no errors, process product addition
|
||||||
|
|||||||
@@ -53,6 +53,8 @@ class CategoryControllerCore extends FrontController
|
|||||||
|
|
||||||
public function canonicalRedirection($canonicalURL = '')
|
public function canonicalRedirection($canonicalURL = '')
|
||||||
{
|
{
|
||||||
|
if (Tools::getValue('live_edit'))
|
||||||
|
return ;
|
||||||
if (!Validate::isLoadedObject($this->category) || !$this->category->inShop() || !$this->category->isAssociatedToShop())
|
if (!Validate::isLoadedObject($this->category) || !$this->category->inShop() || !$this->category->isAssociatedToShop())
|
||||||
{
|
{
|
||||||
$this->redirect_after = '404';
|
$this->redirect_after = '404';
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ class CmsControllerCore extends FrontController
|
|||||||
|
|
||||||
public function canonicalRedirection($canonicalURL = '')
|
public function canonicalRedirection($canonicalURL = '')
|
||||||
{
|
{
|
||||||
|
if (Tools::getValue('live_edit'))
|
||||||
|
return ;
|
||||||
if (Validate::isLoadedObject($this->cms) && ($canonicalURL = $this->context->link->getCMSLink($this->cms)))
|
if (Validate::isLoadedObject($this->cms) && ($canonicalURL = $this->context->link->getCMSLink($this->cms)))
|
||||||
parent::canonicalRedirection($canonicalURL);
|
parent::canonicalRedirection($canonicalURL);
|
||||||
else if (Validate::isLoadedObject($this->cms_category) && ($canonicalURL = $this->context->link->getCMSCategoryLink($this->cms_category)))
|
else if (Validate::isLoadedObject($this->cms_category) && ($canonicalURL = $this->context->link->getCMSCategoryLink($this->cms_category)))
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ class ManufacturerControllerCore extends FrontController
|
|||||||
|
|
||||||
public function canonicalRedirection($canonicalURL = '')
|
public function canonicalRedirection($canonicalURL = '')
|
||||||
{
|
{
|
||||||
|
if (Tools::getValue('live_edit'))
|
||||||
|
return ;
|
||||||
if (Validate::isLoadedObject($this->manufacturer))
|
if (Validate::isLoadedObject($this->manufacturer))
|
||||||
parent::canonicalRedirection($this->context->link->getManufacturerLink($this->manufacturer));
|
parent::canonicalRedirection($this->context->link->getManufacturerLink($this->manufacturer));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -614,13 +614,21 @@ class OrderOpcControllerCore extends ParentOrderController
|
|||||||
|
|
||||||
protected function _processAddressFormat()
|
protected function _processAddressFormat()
|
||||||
{
|
{
|
||||||
$selectedCountry = (int)(Configuration::get('PS_COUNTRY_DEFAULT'));
|
|
||||||
|
|
||||||
$address_delivery = new Address((int)$this->context->cart->id_address_delivery);
|
$address_delivery = new Address((int)$this->context->cart->id_address_delivery);
|
||||||
$address_invoice = new Address((int)$this->context->cart->id_address_invoice);
|
$address_invoice = new Address((int)$this->context->cart->id_address_invoice);
|
||||||
|
|
||||||
$inv_adr_fields = AddressFormat::getOrderedAddressFields((int)$address_delivery->id_country, false, true);
|
$inv_adr_fields = AddressFormat::getOrderedAddressFields((int)$address_delivery->id_country, false, true);
|
||||||
$dlv_adr_fields = AddressFormat::getOrderedAddressFields((int)$address_invoice->id_country, false, true);
|
$dlv_adr_fields = AddressFormat::getOrderedAddressFields((int)$address_invoice->id_country, false, true);
|
||||||
|
$requireFormFieldsList = AddressFormat::$requireFormFieldsList;
|
||||||
|
|
||||||
|
// Add missing require fields for a new user susbscription form
|
||||||
|
foreach ($requireFormFieldsList as $fieldName)
|
||||||
|
if (!in_array($fieldName, $dlv_adr_fields))
|
||||||
|
$dlv_adr_fields[] = trim($fieldName);
|
||||||
|
|
||||||
|
foreach ($requireFormFieldsList as $fieldName)
|
||||||
|
if (!in_array($fieldName, $inv_adr_fields))
|
||||||
|
$inv_adr_fields[] = trim($fieldName);
|
||||||
|
|
||||||
$inv_all_fields = array();
|
$inv_all_fields = array();
|
||||||
$dlv_all_fields = array();
|
$dlv_all_fields = array();
|
||||||
@@ -631,6 +639,9 @@ class OrderOpcControllerCore extends ParentOrderController
|
|||||||
foreach (explode(' ', $fields_line) as $field_item)
|
foreach (explode(' ', $fields_line) as $field_item)
|
||||||
${$adr_type.'_all_fields'}[] = trim($field_item);
|
${$adr_type.'_all_fields'}[] = trim($field_item);
|
||||||
|
|
||||||
|
${$adr_type.'_adr_fields'} = array_unique(${$adr_type.'_adr_fields'});
|
||||||
|
${$adr_type.'_all_fields'} = array_unique(${$adr_type.'_all_fields'});
|
||||||
|
|
||||||
$this->context->smarty->assign($adr_type.'_adr_fields', ${$adr_type.'_adr_fields'});
|
$this->context->smarty->assign($adr_type.'_adr_fields', ${$adr_type.'_adr_fields'});
|
||||||
$this->context->smarty->assign($adr_type.'_all_fields', ${$adr_type.'_all_fields'});
|
$this->context->smarty->assign($adr_type.'_all_fields', ${$adr_type.'_all_fields'});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ class ProductControllerCore extends FrontController
|
|||||||
|
|
||||||
public function canonicalRedirection($canonical_url = '')
|
public function canonicalRedirection($canonical_url = '')
|
||||||
{
|
{
|
||||||
|
if (Tools::getValue('live_edit'))
|
||||||
|
return ;
|
||||||
if (Validate::isLoadedObject($this->product))
|
if (Validate::isLoadedObject($this->product))
|
||||||
parent::canonicalRedirection($this->context->link->getProductLink($this->product));
|
parent::canonicalRedirection($this->context->link->getProductLink($this->product));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ class SupplierControllerCore extends FrontController
|
|||||||
|
|
||||||
public function canonicalRedirection($canonicalURL = '')
|
public function canonicalRedirection($canonicalURL = '')
|
||||||
{
|
{
|
||||||
|
if (Tools::getValue('live_edit'))
|
||||||
|
return ;
|
||||||
if (Validate::isLoadedObject($this->supplier))
|
if (Validate::isLoadedObject($this->supplier))
|
||||||
parent::canonicalRedirection($this->context->link->getSupplierLink($this->supplier));
|
parent::canonicalRedirection($this->context->link->getSupplierLink($this->supplier));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2470,14 +2470,20 @@ margin-bottom:7px;
|
|||||||
clear: both;
|
clear: both;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#carrier_wizard.swMain ul.anchor li{
|
#carrier_wizard.swMain ul.anchor li{
|
||||||
position: relative;
|
position: relative;
|
||||||
display:block;
|
display:block;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
float: left;
|
float: left;
|
||||||
|
}
|
||||||
|
#carrier_wizard.swMain ul.nbr_steps_4.anchor li{
|
||||||
width: 25%;
|
width: 25%;
|
||||||
}
|
}
|
||||||
|
#carrier_wizard.swMain ul.nbr_steps_5.anchor li{
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
#carrier_wizard.swMain ul.anchor li a {
|
#carrier_wizard.swMain ul.anchor li a {
|
||||||
height: 32px;
|
height: 32px;
|
||||||
display:block;
|
display:block;
|
||||||
@@ -2635,10 +2641,10 @@ margin-bottom:7px;
|
|||||||
#carrier_wizard #zone_ranges label { float: none; width: inherit }
|
#carrier_wizard #zone_ranges label { float: none; width: inherit }
|
||||||
#carrier_wizard #step_carrier_summary label {width: 40px}
|
#carrier_wizard #step_carrier_summary label {width: 40px}
|
||||||
#carrier_wizard #step_carrier_summary .margin-form {padding-left: 60px;}
|
#carrier_wizard #step_carrier_summary .margin-form {padding-left: 60px;}
|
||||||
#carrier_wizard #summary_zones, #carrier_wizard #summary_groups {margin-left: 20px; margin-top: 10px; list-style: disc}
|
#carrier_wizard #summary_zones, #carrier_wizard #summary_groups, #carrier_wizard #summary_shops {margin-left: 20px; margin-top: 10px; list-style: disc}
|
||||||
#carrier_wizard .ranges_not_follow label {width: inherit; float:none}
|
#carrier_wizard .ranges_not_follow label {width: inherit; float:none}
|
||||||
#carrier_wizard .ranges_not_follow {width: 300px; margin-bottom: 0}
|
#carrier_wizard .ranges_not_follow {width: 300px; margin-bottom: 0}
|
||||||
|
#carrier_wizard .assoShop { min-height: inherit}
|
||||||
|
|
||||||
/*** IE10 ***/
|
/*** IE10 ***/
|
||||||
/*@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
/*@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||||
|
|||||||
@@ -23,6 +23,513 @@ International Registred Trademark & Property of PrestaShop SA
|
|||||||
|
|
||||||
Release Notes for PrestaShop 1.5
|
Release Notes for PrestaShop 1.5
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
####################################
|
||||||
|
# v1.5.5.0 - (2013-08-22) #
|
||||||
|
####################################
|
||||||
|
|
||||||
|
Fixed bugs:
|
||||||
|
|
||||||
|
[-] Installer : added ob_start() (required with the cookie mode when debug mode is activated)
|
||||||
|
[-] Installer : fixed clear smarty cache
|
||||||
|
[-] Installer : changed syntax from $class:func to call_user_func because it seems to be more compliant with old PHP versions
|
||||||
|
[-] INSTALLER : Force update of PS_LEGACY_IMAGES to 0
|
||||||
|
[-] INSTALLER : missing parenthesis in SQL in set_product_suppliers, thanks to @EvaldasUzkuras
|
||||||
|
[-] INSTALLER : Fix bug while updateing supplier reference, back from https://github.com/PrestaShop/PrestaShop/pull/618 thanks @EvaldasUzkuras
|
||||||
|
[-] Installer: update leftcolumn alias to enable live_edit on blockmyaccount
|
||||||
|
[-] INSTALLER : Errors in upgrader
|
||||||
|
[-] INSTALLER : Fix SQL warnings when upgrading
|
||||||
|
[-] INSTALLER : fix bug when updating add_new_tab not defined
|
||||||
|
[-] INSTALLER : Remove warnings
|
||||||
|
[-] Installer: Fix some sql queries
|
||||||
|
[-] INSTALLER : Shown index can return empty array
|
||||||
|
[-] INSTALLER : Prevent crash when populating data, MACOSX OS creates hidden files
|
||||||
|
[-] INSTALLER : Fix bug #PSCFV-8813 1.4.7.0.sql not uptodate
|
||||||
|
[-] INSTALLER : Fix bug #PSCFV-8813 missing file PHP:setAllGroupsOnHomeCategory();
|
||||||
|
[-] INSTALLER : Create reinsurance_lang when updating from below 1.5.0.13
|
||||||
|
[-] INSTALLER : SQL error during upgrade from 1.5.0.13
|
||||||
|
[-] INSTALLER : SQL error during upgrade from 1.5.0.9
|
||||||
|
[-] INSTALLER : Fix bug #PSCFV-8605 loop on ressource wether than n array
|
||||||
|
[-] INSTALLER : Fix bug #PSCFI-7075 too short column in PREFIX_webservice_account
|
||||||
|
[-] INSTALLER : Fix bug #PSCFV-8605 first part, do not affect memeory limit when upgrading if set to -1
|
||||||
|
[-] INSTALLER : Fix bug #PSCFV-8750 do not activate disabled module during upgrade
|
||||||
|
|
||||||
|
[-] FO : fixed bad search redirection #PSCFV-10158
|
||||||
|
[-] FO : FixBug Missing PS_STOCK_MANAGEMENT smarty variable
|
||||||
|
[-] FO : fixed html tags that should not appear in blockcategories
|
||||||
|
[-] FO: Fix quantity discount table display for non default attribute #PSCFV-9942
|
||||||
|
[-] FO : FixBug #PSCFV-10058 - Missing required form fields in address format
|
||||||
|
[-] FO : FixBug #PSCFV-10090 urlencode syntax error - Thanks Duarte
|
||||||
|
[-] FO : FixBug #PSCFV-10058 Invalid id country after allow to select no country
|
||||||
|
[-] FO : FixBug CGV does not pop-up in Fancy Box
|
||||||
|
[-] FO : FixBug generated_date error
|
||||||
|
[-] FO : input token missplaced in address.tpl
|
||||||
|
[-] FO : Do not redirect on 301 when POST request
|
||||||
|
[-] FO :ProductSale::getBestSales() by modified date renders SQL error, thanks @SebSept
|
||||||
|
[-] FO : expiration date not displayed in email for downloadable product
|
||||||
|
[-] FO : FixBug No warning message when no carriers available from advanced stock management
|
||||||
|
[-] Fo : Bad date format in order-detail, merge from https://github.com/PrestaShop/PrestaShop/pull/476 thanks @gbelorgey
|
||||||
|
[-] FO: fixed bug shopping cart price misplaced - #9971
|
||||||
|
[-] FO : Fix bug #PSCFV-9856 could not add Uncombinable cart rules and Minimum amount check badly calculated
|
||||||
|
[-] FO : Fix bug #PSCFV-9993 could not see product quantity in pack content
|
||||||
|
[-] FO : Fix bug #PSCFV-9847 Cart Rule not updated when address is updated on Checkout Page
|
||||||
|
[-] FO : FixBug #PSCFV-9846 Bookmark title escape problem on special language
|
||||||
|
[-] FO : FixBug #PSCFV-9766 All products in products list for email confirmation with multi-shipping
|
||||||
|
[-] FO : FixBug Wrong offset in more than one shipping address
|
||||||
|
[-] FO : FixBug #PSCFV-9961 Remove wishlists icon
|
||||||
|
[-] FO : FixBug #PSCFV-9951 Syntax error - Thanks to Oleacorner-Olivier B
|
||||||
|
[-] FO : Force browser language detection in Tools::setCookieLanguage
|
||||||
|
[-] FO : FixBug #PSCFV-9879 Email confirmation message not present
|
||||||
|
[-] FO : Prevent unsassigned category id, thans @PrestaCaptainFLAM
|
||||||
|
[-] FO : fixed pagination for p = 0 #PSCFV-9746
|
||||||
|
[-] FO : Removed useless live edit query #PSCFV-9845
|
||||||
|
[-] FO : FixBug of total products from supliers and manufacturer
|
||||||
|
[-] FO : FixBug #PSCFV-8018 All products was counted in manufacturer lsit even if products was set as hidden
|
||||||
|
[-] FO : FixBug #PSCFV-8018 All products was counted in manufacturer list even hidden products
|
||||||
|
[-] FO : FixBug #PSCFV-7723 Bad manufacturers list pagination
|
||||||
|
[-] FO : fixed group query for cart rules #PSCFV-8992
|
||||||
|
[-] FO : Fixed partial use of cart rules which does not offer free shipping #PSCFV-9216
|
||||||
|
[-] FO : Fix bug #PSCFV-9662 udpate payments means after delete thanks @maofree
|
||||||
|
[-] FO : Fix bug #PSCFV-9754 do not use back url on cart summary link in steps
|
||||||
|
[-] FO : fixed useless error when the product id in the URL is not an int #PSCFV-9726
|
||||||
|
[-] FO : Fix bug #PSCFV-9021 : bad category id for breadcrumb on product when url rewrite is on
|
||||||
|
[-] FO : you cannot access the front office with a disabled language anymore #PSCFV-9714
|
||||||
|
[-] FO : fixed bad condition in the dispatcher rules
|
||||||
|
[-] FO : Fix bug #PSCFV-9653 could not return a custom product
|
||||||
|
[-] FO : could not see old_price_display when specific price on one combination
|
||||||
|
[-] FO : Bad specific price for a combination // sorry
|
||||||
|
[-] FO : Bad specific price for a combination
|
||||||
|
[-] FO : Fix bug #PSCFV-9355 dleete button missing for custo in blockcart
|
||||||
|
[-] FO : Fix bug #PSCFV-9669, update total price on order-payment
|
||||||
|
[-] FO :Fix bug #PSCFV-9650 could not see delete href in block cart
|
||||||
|
[-] FO: OrderHistory - Unclosed tag
|
||||||
|
[-] FO : added smarty cache to blockcms
|
||||||
|
[-] FO: Fix #PSCFV-9325 all was included on 301 for root deprecated controllers
|
||||||
|
[-] FO : fixed remove button for free product in the cart block #PSCFV-8465
|
||||||
|
[-] FO : fixed entities issue in javascript alerts #PSCFV-9001
|
||||||
|
[-] FO : fixed bug #PSCFV-9388 - newsletter is required error, showing two times
|
||||||
|
[-] FO : Fix bug #PSCFV-8412 no zipcode for countries when default country has no zip code in adress format
|
||||||
|
[-] FO : fixed bug #PSCFV-7454
|
||||||
|
[-] FO : Css fix on first address and avaibility
|
||||||
|
[-] FO : Fix one_phone_at_leastphone again when PS_REGISTRATION_PROCESS_TYPE = 1 && PS_ORDER_PROCESS_TYPE =0
|
||||||
|
[-] FO : fixed bug #PSCFV-9007 - Best sales query has ambigious column when sorted on date_add
|
||||||
|
[-] FO : Fix #PSCFV-9414 submitGuestAccount is not submitAccount
|
||||||
|
[-] FO : #PSCFV-9532 remove hardcoded unidentified group number
|
||||||
|
[-] FO : Fix bug #PSCFV-9525 escape double quote in address formated fields
|
||||||
|
[-] FO : Fix #PSCFV-7388 again Instant checkout - State validation
|
||||||
|
[-] FO : fixed alternative row color on shopping cart summary #PSCFV-9208
|
||||||
|
[-] FO: Fixed bug PrestaShop 1.5.4.1 Catalog Mode Display Incorrect Header (mis-aligned) - #PSCFV-9327
|
||||||
|
[-] FO : fixed pdf template #PSCFV-9430
|
||||||
|
[-] FO: Fix shop restriction on features #PSCFV-7848
|
||||||
|
[-] FO : fixed bug #PSCFV-9092 - conflict on the company field during account creation
|
||||||
|
[-] FO: fixed w3c errors
|
||||||
|
[-] FO: solved some W3C errors
|
||||||
|
[-] FO: some W3C errors corrected
|
||||||
|
[-] FO: Fix no image displayed for products in the cart when it was added from another store in multishop #PSCFV-9385
|
||||||
|
[-] FO : In stock sort is now removed when Stock managment is disabled on default theme. Not to be confused for my pull #465, which was for default mobile theme. This is for the default regular theme.
|
||||||
|
[-] FO : Report of #PSCFI-7240 typos in cms.tpl
|
||||||
|
[-] FO: http page should be redirected to http when accessed with https #PSCFV-9212
|
||||||
|
[-] FO: Fix Category::getSubCategories() default group used #PSCFV-9356
|
||||||
|
[-] FO: Fix Order::getOrdersTotalPaid() reference is now a string #PSCFV-9342
|
||||||
|
[-] FO : In stock is now removed when Stock managment is disabled Fixes the bug where Stock managment is disabled, it stil show "In Stock" in the sort by list. Added $PS_STOCK_MANAGEMENT to line 64.
|
||||||
|
[-] FO: Fix Carrier::getDeliveredCountries for multishop #PSCFV-9279
|
||||||
|
[-] FO : Fix bug #PSCFV-9171, can not order with a unactivated country
|
||||||
|
[-] FO: Tools::getMediaServer() should return Tools::getShopDomain() instead of Tools::getHttpHost() #PSCFV-9217
|
||||||
|
[-] FO : first_item class don t exist if shopping cart have only one item if shopping cart have only one product, last_item class exist but not first_item because of "else if" after if isset($productLast)
|
||||||
|
[-] FO: Fix #PSCFV-9057 close output buffer before sending attachment and virtualproducts
|
||||||
|
[-] FO : Fix bug #PSCFV-8967 large image instead of thickbox when one image
|
||||||
|
[-] FO: fixed bug: Solved a javascript problem on the new 1.5.4.1 with the full image on product page - PSCFV-8967
|
||||||
|
[-] FO: improve some css for RTL language
|
||||||
|
[-] FO: replace logo on the left (fixed bug RTL language - #PSCFV-8891)
|
||||||
|
[-] FO : Jqzoom must be enabled to add class jqzoom
|
||||||
|
[-] FO : removed misleading label on the shipping total #PSCFV-8556
|
||||||
|
[-] FO : fixed truncate and entities in the cart block #PSCFV-8870
|
||||||
|
|
||||||
|
[-] BO : fixed bug when save carrier without range
|
||||||
|
[-] BO: Fix multishop association for tax rules group - #PSCFV-9967
|
||||||
|
[-] BO : fixed bug #PSCFV-10169 - now you can go backward from step 3 to 2 when no ranges are set
|
||||||
|
[-] BO : fixed bug #PSCFV-10073 - now you can upload carrier logo on windows
|
||||||
|
[-] BO: Delete from attribute_shop when an attribute group is deleted #PSCFV-9902
|
||||||
|
[-] BO : FixBug #PSCFV-10075 remove product attribute image association on delete product attribute
|
||||||
|
[-] BO : FixBug Preview product url
|
||||||
|
[-] BO : fixed bug #PSCFV-9782 - live edit bug with multistore
|
||||||
|
[-] BO : fixed range deletion when press enter on input 'all' on carrier wizard
|
||||||
|
[-] BO : FixBug #PSCFV-7571 Error checking available product quantity
|
||||||
|
[-] BO : FixBug update received quantity in suply order
|
||||||
|
[-] BO : fixed bug #PSCFV-10111 when carrier is free don't display ranges in summary
|
||||||
|
[-] BO : Added comprehensive error display when prestashop cannot write the .htaccess file
|
||||||
|
[-] BO :FixBug Suppliers and Warehouses accordion
|
||||||
|
[-] BO : fixed bug #PSCFV-10096
|
||||||
|
[-] BO : fixed bug when carrier is free and change shipping method
|
||||||
|
[-] BO : fixed bug #PSCFV-10091 - you can now enable all zone in one clic
|
||||||
|
[-] BO : fixed bug #PSCFV-10033 - disable next step if no range has been added on carrier wizard
|
||||||
|
[-] BO : fixed multistore thumbnail on product list
|
||||||
|
[-] BO : FixBug root category listed after list reset
|
||||||
|
[-] BO : Fix additional quote in live edit template
|
||||||
|
[-] BO : list of carriers should only contain the active one in AdminProducts
|
||||||
|
[-] BO : OrderSlip now correctly displays the order slip date, thanks @Jacky75
|
||||||
|
[-] BO : Do not display root category bool if addrootcategory not in url
|
||||||
|
[-] BO : Fix send e-mails updating tracking number Hi, We've fixed some bugs parameters about the Send function of Mail class in the AdminOrdersController.php. Regards, Massimo.
|
||||||
|
[-] BO : FixBug Multiple list pagination error.
|
||||||
|
[-] BO : FixBug Manufacturer multilist pagination, filter, order problems and manufacturer address filter exception
|
||||||
|
[-] BO : FixBug #PSCFV-8311 pagination, filter and order with multilist
|
||||||
|
[-] BO : Fix bug #PSCFV-8139 bad renderform on errors in AdminStatuses
|
||||||
|
[-] BO: Fix #PSCFV-9885 catalog price rules edition
|
||||||
|
[-] BO : FixBug #PSCFV-7839 No invoice file attached to payment email confirmation
|
||||||
|
[-] BO : Fix warning in AdminAttributesGroups after https://github.com/PrestaShop/PrestaShop/pull/392
|
||||||
|
[-] BO : FixBug #PSCFV-7824 No total tax not show in order email confirmation
|
||||||
|
[-] BO: FixBug #PSCFV-10005 Filter on COUNT field
|
||||||
|
[-] BO : Fix bug #PSCFV-9990 bad count on list header helper
|
||||||
|
[-] BO : FixBug #PSCFV-9859 Carriers free shipping inline edit
|
||||||
|
[-] BO : FixBug #PSCFV-9748 Missing confirmation and update button problem
|
||||||
|
[-] BO : fixed domain warning
|
||||||
|
[-] BO : FixBug Install currency on Localization Pack
|
||||||
|
[-] BO : FixBug Invalid offset when only one error in layout
|
||||||
|
[-] BO : Fix onchange event on Adminmodules list execption
|
||||||
|
[-] BO : Fix onchange event on adminmoudlue list execption
|
||||||
|
[-] BO : FixBug allow_url_fopen on BackOffice home page
|
||||||
|
[-] BO : fixed bug #PSCFV-9809 - carrier wizard tab access fix
|
||||||
|
[-] BO : FixBug #PSCFV-9959 file_get_contents error
|
||||||
|
[-] BO : Fix while of translation, to find in folder if translation exists
|
||||||
|
[-] BO : FixBug #PSCFV-9965 currency not active by default in Localization pack
|
||||||
|
[-] BO : fixed some bug on carrier wizard - added tabindex on input - new default carrier img
|
||||||
|
[-] BO : doesn't match available_fields of AdminImportController - Correct wrong position of available_fields - Add some of available_fields
|
||||||
|
[-] BO : fixed input action when set fees for all zones in carrier wizard
|
||||||
|
[-] BO : FixBug #PSCFV-9895 Mal function in products suppliers accordion
|
||||||
|
[-] BO : FixBug Impossible to remove available date from product attribute
|
||||||
|
[-] BO : FixBug #PSCFV-9042 Supply orders now accept 0 value to automatically load products
|
||||||
|
[-] BO : FixBug #PSCFV-9839 Update product warehouse on suply order - thanks @O'Donnell
|
||||||
|
[-] BO : FixBug #PSCFV-9894 undefined quantity_all_version variable in product.tpl
|
||||||
|
[-] BO : Fix SQL query when $join_category == false, pull request https://github.com/Captain-FLAM/PrestaShop/commit/d5f75c63b6e21dd87c77a027bf8dd293afb1a94f thanks @Captain-FLAM
|
||||||
|
[-] BO : Could not find cover when image table corrupted
|
||||||
|
[-] BO : FixBug #PSCFV-9881 Remove updateCarriersList on zip code blur
|
||||||
|
[-] BO : FixBug #PSCFV-9878 Wrong login tab order
|
||||||
|
[-] BO : FixBug #PSCFV-8060 Error getting last quantity and price in stock mouvement
|
||||||
|
[-] BO : FixBug #PSCFV-8237 Javascript Error setting default supplier
|
||||||
|
[-] BO : FixBug #PSCFV-9138 Error duplicate product group reduction
|
||||||
|
[-] BO : FixBug #PSCFV-9251 Meta Tag delete previous
|
||||||
|
[-] BO : FixBug #PSCFV-9049 Bad actionOrderSlipAdd hook description
|
||||||
|
[-] BO : FIxBug Correct image language in product
|
||||||
|
[-] BO : fixed sort by currency exchange rate #PSCFV-9840
|
||||||
|
[-] BO : If no nb, get default 8, not 10.
|
||||||
|
[-] BO : translation copy is now easier #PSCFV-8886
|
||||||
|
[-] BO : FixBug #PSCFV-5316 Translation problem in delete button link
|
||||||
|
[-] BO : FixBug #PSCFV-6140 Pagination link error
|
||||||
|
[-] BO : FixBug #PSCFV-9723 Exporting quantity in instant stock was not returning all rows
|
||||||
|
[-] BO : FixBug #PSCFV-8234 Products tags not correctly indexed in search
|
||||||
|
[-] BO : Bad return value for AdminCountries::processStatus()
|
||||||
|
[-] BO : FixBug Directory Separator on URL
|
||||||
|
[-] BO : FixBug #PSCFV-8217 Shop logo image not refresh after change
|
||||||
|
[-] BO : FixBug #PSCFV-9613 Fix product tax to be shop dependent
|
||||||
|
[-] BO : FixBug #PSCFV-8287 Breadcrumbs label was wrong
|
||||||
|
[-] BO : FixBug #PSCFV-8229 Default country value set to manufacturer country Default country value set to manufacturer country Click on manufacturer address line now redirect to manufacturer address edition
|
||||||
|
[-] BO : FixBug #PSCFV-6365 Missing message confirmation for Images modification in Preferences > Images
|
||||||
|
[-] BO : Fix bug #PSCFV-9722, do not propose adding root categories in categories when there is only one shop
|
||||||
|
[-] BO : Use only 0% reduction from category in group
|
||||||
|
[-] BO: Fix tax rule edition - unique tax rule can't be edited
|
||||||
|
[-] BO : Fix bug #PSCFV-9395 Missing vertical separation between flags
|
||||||
|
[-] BO : Fix Bug #PSCFV-9550 Bad URL redirection
|
||||||
|
[-] BO : Fix bug #PSCFV-9310 bad type for input in helper thankx @Piotr Moćko
|
||||||
|
[-] BO: Delete specific price after combination deletion && fix SpecificPrice::getByProductId() sql query
|
||||||
|
[-] BO : fixed charts and grids in multishop #PSCFV-8978
|
||||||
|
[-] BO : you can now have different mail topic for one mail template #PSCFV-9617
|
||||||
|
[-] BO : added checks on product attributes properties #PSCFV-9703
|
||||||
|
[-] BO: display vat number field should not depends of the vatnumber module #PSCFV-9672
|
||||||
|
[-] BO : products comments impossible if quantity > 0 The pull request https://github.com/PrestaShop/PrestaShop/pull/219 makes the module not working properly in v1.5.4.1. Indeed, after this change, the OosHook works as expected but now, as the product comments module is attached to the OosHook, comments information is only shown when the product is out of stock!
|
||||||
|
[-] BO: product supplier price should not be converted on product page #PSCFV-9420
|
||||||
|
[-] BO : Fix bug #PSCFV-8666 COD module association no more deleted when restrition on other currency
|
||||||
|
[-] BO : Fix bug #PSCFV-8619 update order weight when modifying products
|
||||||
|
[-] BO : fixed bug #PSCFV-9622
|
||||||
|
[-] BO: remove old icon into New Version block
|
||||||
|
[-] BO: Fix manufacturer addresses duplication #PSCFV-9601
|
||||||
|
[-] BO : fixed translation and languages issues
|
||||||
|
[-] BO : fixed addslashes on tpl translations (compatibility between "slashes" and "js" parameters) #PSCFV-9427
|
||||||
|
[-] BO : fixed bug #PSCFV-9586 - Unable to sort CMS page in back office
|
||||||
|
[-] BO: Fix #PSCFV-9455 stock was resetted if adv stock management is enable and product preference is submited on shop context
|
||||||
|
[-] BO : Fix warnings when product not available in Shop
|
||||||
|
[-] BO : fixed bug #PSCFV-7921 - Language selector (with flags) cant be translated
|
||||||
|
[-] BO : fixed bug #PSCFV-7634 - Add non-existent new product to order using autocomplete gives javascript error (data.products is not defined)
|
||||||
|
[-] BO: This is now not possible to move a tab with id_parent = 0 to an another tab
|
||||||
|
[-] BO : Fix bug #PSCFV-7353 can not see the thumb for a scene
|
||||||
|
[-] BO : Fix bug #PSCFV-7353 can not see the thumb for a scenes
|
||||||
|
[-] BO : remove "utm_*" rules preventing Google services from indexing the shop Google shopping refuses all products having their URL blocked by the robots.txt file
|
||||||
|
[-] BO : allow partial use for credit slip vouchers #PSCFV-9539
|
||||||
|
[-] BO : Fix bug #PSCFV-9264 bad cancel qty when refund / return
|
||||||
|
[-] BO : missing colspan after update product detail
|
||||||
|
[-] BO: Stock should not appears on product listing when stock management is disabled #PSCFV-8207
|
||||||
|
[-] BO: fixed bug button on module list
|
||||||
|
[-] BO: fixed bug #PSCFV-9463 + improve some css on BO menu
|
||||||
|
[-] BO: fixed bug #PSCFV-9461
|
||||||
|
[-] BO: fixed bug #PSCFV-7440
|
||||||
|
[-] BO : fixed quote issue with magic quote in customization in adminorders #PSCFV-9311
|
||||||
|
[-] BO : fixed parsing of discount value in AdminOrders #PSCFV-9481
|
||||||
|
[-] BO : Upload image name with trailing slash in name
|
||||||
|
[-] BO : fixed ajax in permissions tab #PSCFV-7442
|
||||||
|
[-] BO : fixed bug #PSCFV-9405 - Delete file of downloadable product when cancel
|
||||||
|
[-] BO : Fixed permission update #PSCFV-7441
|
||||||
|
[-] BO : postcode required in manufacturer address
|
||||||
|
[-] BO : fixed link in AdminTracking #PSCFV-7409
|
||||||
|
[-] BO : fix require path to config.inc.php
|
||||||
|
[-] BO: Fix #PSCFV-8904 bad id_warehouse is stored on ps_address table
|
||||||
|
[-] BO: association of product attributes on associating a product to another shop #PSCFV-8735
|
||||||
|
[-] BO: Fix #PSCFV-9428 features duplicated with multishop on Feature::getFeatures()
|
||||||
|
[-] BO: Fix #PSCFV-7763 Re-inject quantities after deleting a product from a order
|
||||||
|
[-] BO: Addresses are now totally deleted from the database if not used on a order
|
||||||
|
[-] BO: Fix #PSCFV-6657 translations of overriden admin templates
|
||||||
|
[-] BO : Fix bug #PNM-788 Loyalty points in adminCustomers when only one order
|
||||||
|
[-] Bo : Fix #PSCFV-9306 report of #PSCFI-7115 Add a new specific price = faulty validation
|
||||||
|
[-] BO: Fix combinations duplication on multishop with context all for the product duplication #PSCFV-9020
|
||||||
|
[-] BO : Report of #PSCFI-6790 REQUEST_URI badly recorded
|
||||||
|
[-] BO : Fix bug #PSCFI-7231 strtolower iso_lang for package download link
|
||||||
|
[-] BO : Fixed unregistered version field for some modules
|
||||||
|
[-] BO: Fix language deletion with multishop when shops still associate to the language #PSCFV-9244
|
||||||
|
[-] BO : fixed bug #PSCFV-9178 - is_color_group is not inserted correctly
|
||||||
|
[-] BO : Fix bug #PSCFI-6755 "+" in email
|
||||||
|
[-] BO: Fix PHP warning on orderslip generation without ecotax #PSCFV-8743
|
||||||
|
[-] BO : remove deprecated parameter when call Tools::displayDate()
|
||||||
|
[-] BO : remove deprecated parameter when call Tools::link_rewrite() part 2
|
||||||
|
[-] BO : remove deprecated parameter when call Tools::link_rewrite()
|
||||||
|
[-] BO : Fix #PSCFI-7186 incorrect return in Meta->deleteSelection()
|
||||||
|
[-] BO: Root category should be the shop category and not the higher category with multiple root and without multishop #PSCFV-8860
|
||||||
|
[-] BO : fixed gift deletion when there is no products anymore in the cart
|
||||||
|
[-] BO: Fix listing exports with image or other empty fields
|
||||||
|
[-] BO : catch prestashop exception and display smart error messages #PSCFV-9147
|
||||||
|
[-] BO : fixed issue with reduction in the category for groups #PSCFV-9101
|
||||||
|
[-] BO : Fix "The controller adminnotound is missing or invalid." error when no controller get variable
|
||||||
|
[-] BO: Ajax Confirmation / padding-left
|
||||||
|
[-] BO : fixed turkish characters replacement #PSCFV-8968
|
||||||
|
[-] BO : fixed potential warning with texture list #PSCFV-9050
|
||||||
|
[-] BO : tab cache wasn't emptied on delete #PSCFV-9053
|
||||||
|
[-] BO: You can now disable the email sent after account creation
|
||||||
|
[-] BO : don't show unecessary tpl module translations - complience with documentation
|
||||||
|
[-] BO: Fix #PSCFV-8179 shop domain used in emails sometimes was for the wrong shop
|
||||||
|
[-] BO : don't show translation for class/controler overrides when on modules translation page
|
||||||
|
[-] BO : fixed infinite loop in the categories #PSCFV-8965
|
||||||
|
[-] Bo : Admin login loop under Firefox
|
||||||
|
[-] BO : fixed image import with allow_url_fopen deactivated #PSCFV-8181
|
||||||
|
[-] BO : bug in BO translations when Windows OS [-] BO : bug in BO translations when Windows OS Impossible to translate the strings of the back office in the directory override/controllers/admin/... under windows environment. The statement " $parent_class = explode(DIRECTORY_SEPARATOR,..) " returns wrong result under windows environment. because the path name has '/' and '\' chars. $parent_class contains bad values and the string "override" is not found.
|
||||||
|
[-] BO: Fix #PSCFV-8957 order creation when id_cart=0 is present in database but should normally not happen
|
||||||
|
[-] BO : fixed automatic creation of email overrides in the template #PSCFV-8785
|
||||||
|
[-] BO : fixed error message in language form #PSCFV-8890
|
||||||
|
[-] BO : fixed bug #PSCFV-7411 - Store location problem with some longitude values
|
||||||
|
[-] BO : Fix bug #PSCFI-7141, wrong quantity and sales number in Product Sales, thankx to @Tuan Tran
|
||||||
|
[-] BO : Fixed display when you translate modules without theme selected
|
||||||
|
|
||||||
|
[-] Classes : fix memcache ext #PSCFV-5225 thanks @up2date
|
||||||
|
[-] Classes : ModuleFrontController updated. Thank you @codeurWeb
|
||||||
|
[-] Classes : ModuleFrontController & templates overrides fixed
|
||||||
|
[-] Classes : Bug fix Validate.php - Error with $mail_name
|
||||||
|
[-] Classes : SwiftMailer - Fix deprecated preg_replace (PHP 5. 5.0)
|
||||||
|
[-] Classes : fixed cachefs and memcache classes #PSCFV-5225 thanks @prestalab
|
||||||
|
[-] Classes : Mail - check instance of link in the context
|
||||||
|
[-] Classes : Db : Fixed $link
|
||||||
|
[-] Classes : Db classe fixed (check InnoDB support MySQL >= 5.6)
|
||||||
|
|
||||||
|
[-] Core: Fix language link with multishop from another shop #PSCFV-10063
|
||||||
|
[-] CORE : Do not delete index.php in smarty cache or /img/tmp/
|
||||||
|
[-] Core: Fix #PSCFV-8887 - improve performance of search indexation
|
||||||
|
[-] CORE : Fix bug #PSCFV-8542 could not have rewrited link for modules in blocklanguage
|
||||||
|
[-] CORE : getModuleLink not working on module custom route, merge from https://github.com/PrestaShop/PrestaShop/pull/487 thanks @zimmi1
|
||||||
|
[-] CORE : Addslashes on not translated strings for javascript js=1
|
||||||
|
[-] CORE : Fix for field validation in ObjectModel::validateFieldsLang() when default lang value not set, thanks @rimas-kudelis
|
||||||
|
[-] CORE : Cast product price to float instead of int when adding supplier reference, thanks @rimas-kudelis
|
||||||
|
[-] CORE : Merge from PrestaEdit last pull request again
|
||||||
|
[-] CORE : Fix warning #PSCFV-9678 when sending message to customer
|
||||||
|
[-] CORE : Fix bug #PSCFV-9572 when seizing in 0 in forms input fields for objects
|
||||||
|
[-] CORE: Copy live_edit bool when register alias hook
|
||||||
|
[-] CORE: No category in url preview on BO product page
|
||||||
|
[-] Core: ObjectModel::toggleStatus should change only active field on multishop with global context #PSCFV-9707
|
||||||
|
[-] Core: Fix #PSCFV-9652 too much payments for multishipping orders
|
||||||
|
[-] CORE : fixed bug #PSCFV-8745 Contact form e-mail template with incomplete information
|
||||||
|
[-] CORE : fixed bug #PSCFV-9460
|
||||||
|
[-] CORE: Fix bug #PSCFV-9474 missing unity and unit_price_ratio in Cart::getProducts
|
||||||
|
[-] CORE : fixed #PSCFV-7451 - error in classes Carrier
|
||||||
|
[-] CORE : Report of https://github.com/PrestaShop/PrestaShop/pull/504 Thanks @aseques
|
||||||
|
[-] CORE : CartRule::checkProductRestrictions : A gift product in the same category as its restrictions causes the gift to stay in the cart even if emptied
|
||||||
|
[-] CORE : fixed bug #PSCFV-9121 - virtual product does not have link after upgrade - part 2
|
||||||
|
[-] CORE : fixed bug #PSCFV-9121 - virtual product does not have link after upgrade
|
||||||
|
[-] Core: Hook actionPaymentConfirmation should also be called for PS_OS_WS_PAYMENT order statuse
|
||||||
|
[-] CORE : Report of https://github.com/PrestaShop/PrestaShop-1.4/commit/ec8deb289185daa03cd11d239797bbe5bdbaecd0
|
||||||
|
[-] CORE : Report of https://github.com/PrestaShop/PrestaShop-1.4/commit/a6e8a2eda7fe3bab5245df9b98df7b2f6f7d541f
|
||||||
|
[-] Core : fixed URL regexp #PSCFV-8986
|
||||||
|
[-] Core: Fix StockManager::getProductRealQuantities() per warehouse with some orderstatuses #PSCFV-9219
|
||||||
|
[-] CORE: Fix #PSCFV-9185 Wrong product price display on list by manufacturer Added default_on condition on getProducts() query in Manufacturer class.
|
||||||
|
[-] CORE : Fix bug #PSCFI-7168 cast and truncate POST values for statistics.php controller
|
||||||
|
[-] CORE : TRACKING_DIRECT_TRAFFIC not respected
|
||||||
|
[-] CORE : referer keywords truncated before insertion in connections table
|
||||||
|
[-] CORE : Fix bug #PSCFI-7072 redundant configuration get
|
||||||
|
[-] Core: Fix StockManager::getProductRealQuantities() for refunded quantities on non delivered orders
|
||||||
|
[-] Core: Fix specific prices if they are configured to count quantity per product and not per combination
|
||||||
|
[-] CORE : fixed PHP Notice: Undefined index: date_expiration on virtual product
|
||||||
|
|
||||||
|
[-] MO : fixed smarty cache on blocksearch #PSCFV-8739
|
||||||
|
[-] MO : multilines translations does not work #PNM-1645
|
||||||
|
[-] MO : sendtofriend FixBug Form error
|
||||||
|
[-] MO : fixed potential warning in pscleaner #PSCFV-10070
|
||||||
|
[-] MO: no more 1.4 support for blocklayered
|
||||||
|
[-] MO : fixed bug #PNM-792 : remove unused js file in blocklayered
|
||||||
|
[-] MO : fixed category link on blocklayered #PNM-1427
|
||||||
|
[-] MO : blocklayered also try to find the translations in the translations directory
|
||||||
|
[-] MO : added `visibility` IN ("both", "catalog") in blocklayered
|
||||||
|
[-] MO : fixed module upgrade with common version number
|
||||||
|
[-] MO: cover image issue with layered block on multishop, thanks @theginie
|
||||||
|
[-] MO : My account column block should not display module icon in list
|
||||||
|
[-] MO : blocktopmenu should clear cache when adding a new subcategory
|
||||||
|
[-] MO : Missing image in my account for MODULE WishList
|
||||||
|
[-] MO : mod='blockmyaccount' missing in blockmyaccountfooter.tpl
|
||||||
|
[-] MO : mod='blockmyaccount' missing in blockmyaccountfooter.tpl (translation doesnt work), thanks @mypresta-eu
|
||||||
|
[-] MO : Fix sort order for combinations, report of pull request https://github.com/PrestaShop/PrestaShop/pull/364
|
||||||
|
[-] MO : blockviewed Fix bug adding last product to list, thanks @kluevandrew
|
||||||
|
[-] MO : Fix bug discount display in mail, manual merge from https://github.com/202-ecommerce/PrestaShop/commit/1d5df338c46aef723d13aef3e213792df6ea92e2
|
||||||
|
[-] MO : fixed disappearing form in sekeyword #PSCFV-9743
|
||||||
|
[-] MO : Followup : don't send emails for empty carts thanks @axometeam
|
||||||
|
[-] MO : fixed bad redirection in trackingfront #PSCFV-8378
|
||||||
|
[-] MO : Bug fix - PS Cleaner, check if module favoriteproducts is installed. Fix Bug when favoriteproducts is not install.
|
||||||
|
[-] MO: exec hook on hook registration #PSCFV-8977
|
||||||
|
[-] MO : fixed bug #PSCFV-5724 - 1.5.2.0 cms block error when adding more than one column to the categories block in the footer
|
||||||
|
[-] MO : fixed bug #PSCFV-8654 - 1.5.4.0 My Favorites doesn't add product
|
||||||
|
[-] MO : fixed bug #PSCFV-9040 - Block CMS Multishop bug
|
||||||
|
[-] MO : fixed bug #PSCFV-8910 - Productcomments module allows post only one comment per product
|
||||||
|
[-] MO : do not check the VAT number if the module is disabled #PSCFV-9397
|
||||||
|
[-] MO : removed doubled "/" in homeslider template #PSCFV-9439
|
||||||
|
[-] MO : fixed editorial issue when the entity does not exist yet for a shop #PSCFV-9442
|
||||||
|
[-] MO : do not truncate order return state in pscleaner #PSCFV-9431
|
||||||
|
[-] MO : loyalty small smarty fix #PNM-1305
|
||||||
|
[-] MO : Fixed double creation of vouchers in loyalty and some redirections #PNM-1317
|
||||||
|
[-] MO : Followup : Don't send followup vouchers to guest accounts
|
||||||
|
[-] MO : Followup : Don't execute crontasks if the module is disabled
|
||||||
|
[-] MO : Report of #PNM-1413 when alert already set on default combination
|
||||||
|
[-] MO: Fix newsletter module mail like newsletter_voucher.html - Edit html/css/translation for newsletter_conf.html and newsletter_verif.html - Use {color} variable
|
||||||
|
[-] MO: Fix sendtoafriend module #PSCFV-8340 http://code.google.com/p/jquery-json/issues/detail?id=43
|
||||||
|
[-] MO : Remove link "Notify me when available" when in stock
|
||||||
|
[-] MO: Fix double html entities on link edition in the blocktopmenumodule #PSCFV-8808
|
||||||
|
[-] MO: Don't make unnecessary request to ajax cart
|
||||||
|
[-] MO: Fix #PSCFV-8973 product images in the blockviewed module
|
||||||
|
[-] MO : Fix bug #PSCFI-7055 do not relay on ".html" in referer to find previous category
|
||||||
|
[-] MO: blockcart ajax cart product insert missing html class Added the same HTML class as the other product names have in the ajax cart. Perhaps it would be nice to add an added_from_ajax as well in case you would want to differ between the newly added items and previously added ones? Another potential issue is on line 445 where there is no space after the insert. If Prestashop is set to minify the normal page, this is correct, otherwise there will be a space missing.
|
||||||
|
[-] MO : fixed hug #PSCFV-8994 - clear cache when truncate catalog
|
||||||
|
[-] MO : fixed bug #PSCFV-7703 - Images for bank wire, cheque and cash payment missing on Order Summary
|
||||||
|
|
||||||
|
[-] WS: Fix retrieve of stock_availables when stock is shared on the shop group
|
||||||
|
[-] WS: add id_address_delivery on cart products association
|
||||||
|
[-] WS: Sanity check before creating packs As it is before this commit, every product that is created from the schema without removing the empty bundle item in the schema will become a pack containing one broken item. Sorry, this bug was introduced by my previous pull request.
|
||||||
|
[-] WS: Enable feature request #PSCFV-5581, thanks @codl for pull request #593
|
||||||
|
[-] WS: do not escape shop name overzealously
|
||||||
|
[-] WS : fixed ?schema=blank (performance issue)
|
||||||
|
[-] WS: Fix accessories duplication on product update
|
||||||
|
[-] WS: Fix webservice sort for multishop fields #PSCFV-5634
|
||||||
|
[-] WS: Fix #PSCFI-7009 product prices on orders with specific prices
|
||||||
|
[-] WS: Fix deletion of product_features on product update #PSCFI-6740
|
||||||
|
[-] WS: Fix memory leak when getting synopsis
|
||||||
|
|
||||||
|
[-] PDF : Fix columns error
|
||||||
|
[-] PDF : Fix dejavusans font for en lang
|
||||||
|
|
||||||
|
[-] TR : fixed missing space in RMA PDF
|
||||||
|
|
||||||
|
Improved/changed features:
|
||||||
|
|
||||||
|
[*] Installer : added cookie mode instead of session for the installer
|
||||||
|
[*] Installer: you can now choose to send an email to the administrator after installation with php-cli
|
||||||
|
|
||||||
|
[*] Security : deny access to this folder as already done for classes
|
||||||
|
|
||||||
|
[*] FO : added chinese/japanese search
|
||||||
|
[*] FO : Add reference sort to theme
|
||||||
|
[*] FO : Blur for tab navigation, followup a0ee3d3, thanks @Seynaeve
|
||||||
|
[*] FO : Blur for tab navigation, followup a0ee3d3c34b7fc5d149228197be382af59a49e47, thanks @Seynaeve
|
||||||
|
[*] FO : Fix bug #PSCFV-9611, autocomplete to off on opc page and other pages
|
||||||
|
[*] FO : updated Fancybox plug-in
|
||||||
|
[*] FO : a few more SQL improvements
|
||||||
|
[*] FO : lots of performance improvements (removed or merged useless SQL queries)
|
||||||
|
[*] FO: display Error500 if no database access Sometimes, we have some problems with the MySQL Database and a Fatal Error is done. With this, we show the error500 template.
|
||||||
|
[*] FO : getCatImageLink doesn't work without type thanks @axometeam
|
||||||
|
[*] FO : Retrieve invoice address in OPC + guest checkout, thanks @Piotr Moćko
|
||||||
|
[*] FO : Fix bug #PSCFV-9440 add another address in guest checkout in OPC
|
||||||
|
[*] FO : removed code specific to multishipping from the no-multishipping process
|
||||||
|
[*] FO : added smarty cache on productscategory
|
||||||
|
[*] FO : added smarty cache on crossselling module
|
||||||
|
[*] FO : improved entity links retrieval (no need to instanciate an object when there is no need... to instanciate un object)
|
||||||
|
[*] FO : added smarty cache to blockspecials
|
||||||
|
[*] FO : added smarty cache on blockbestsellers
|
||||||
|
[*] FO : added smarty cache on homefeatured module
|
||||||
|
[*] FO : added smarty cache on blocknewproducts
|
||||||
|
[*] FO: Don't make useless ajax requests to blockcart on the cart page
|
||||||
|
[*] FO : AuthController can now have its own template
|
||||||
|
[*] FO: use Tools::fileAttachment() in ContactController
|
||||||
|
|
||||||
|
[*] BO: Warehouse name is now displayed on each product line orders
|
||||||
|
[*] BO : Clear smarty cache when submitting SEO rules
|
||||||
|
[*] BO : Add clear smarty cache button
|
||||||
|
[*] BO: Add reference to Options
|
||||||
|
[*] BO: Add reference to FrontController
|
||||||
|
[*] BO : Do not insert duplicates in product_carrier, thanks @edamart
|
||||||
|
[*] BO : Do not insert duplicates in poruct_carrier, thanks @edamart
|
||||||
|
[*] BO : Add filter choices in title of List, thankx to @ccauw
|
||||||
|
[*] BO : refact for modules exeptions regarding https://github.com/PrestaShop/PrestaShop/pull/614
|
||||||
|
[*] BO : Fix statistics redirection when change date When going into a special stats module (for exemple "statsproduct") if you change the date, Prestashop redirect to the "home" of statistics.
|
||||||
|
[*] BO : shipping enlarge listbox carriers enlarge listbox carriers to see all the name of the carrier
|
||||||
|
[*] BO : skip the first line by default All sample csv file use a first line of information
|
||||||
|
[*] BO : Proposition : IMPROVEMENT Admin Modules Positions You can see in action over there : http://www.youtube.com/watch?v=e7KXuCU3RIM
|
||||||
|
[*] BO: Add an option to allow iframes on descriptions
|
||||||
|
[*] BO : #PSCFV-8498 You can now use 0% in groups category rules in order to not apply discount on this category
|
||||||
|
[*] BO : Not increment stock if statut change fom Error to Canceled Not increment stock if statut change fom Error => Canceled or Canceled => Error (stock should stay the same). Add a code simplification too
|
||||||
|
[*] BO : Correct the getList() request for quantity and id_product Quantity and Id_product should be fixe as Int, else the Mysql request do something like : quantity LIKE "%0%" When an admin key-in quantity as 0, he want product with quantity as 0, not as 0 / 10 /20 / 30... ect (The same for id_product)
|
||||||
|
[*] BO : improved unicode characters replacement in URLs
|
||||||
|
[*] BO : Fix #PSCFV-8504 carrier on invoice and delivery slip
|
||||||
|
[*] BO : Correct Request Sql Manager validate options Correct Request Sql Manager validate options : - No size limit for the request - cutJoin() doesn't work for multiple Join (exemple : LEFT JOIN `XXX ON XXX AND XXX) => Then you can't save the request, even if it work
|
||||||
|
[*] BO : AdminControllers : Keep active filter on pagination
|
||||||
|
[*] BO: more than one image in HelperForm
|
||||||
|
[*] BO : Reselect current step in AdminOrders
|
||||||
|
[*] BO : Enable current subtab active class
|
||||||
|
[*] BO : attributes taken into account for the language entity in the localization packs
|
||||||
|
[*] BO: use Translate::getAdminTranslation instead of translate()
|
||||||
|
[*] BO: hook displayAdminForm / add param fieldset
|
||||||
|
|
||||||
|
[*] CORE : Allow external css loading, manual merge of https://github.com/PrestaShop/PrestaShop/pull/406 thanks @m-hume
|
||||||
|
[*] CORE : Fix bug #PSCFV-9811 doc on display404Error
|
||||||
|
[*] Core: that is now easier to get links for another shop
|
||||||
|
[*] Core : Smarty updated from 3.1.13 to 3.1.14 (cache issues fixed)
|
||||||
|
[*] CORE: can not delete class_index.php
|
||||||
|
[*] Core: you can now pass a query string with php-cli which will merged with for cronjobs and other things
|
||||||
|
|
||||||
|
[*] MO : added manufactureres order by name, thanks@Jacky75
|
||||||
|
[*] MO : Templates overrides works with the new structure (/views/templates/admin|front|hook)
|
||||||
|
[*] MO : Added customer and product object to hook sending email
|
||||||
|
[*] MO : added configuration cleaning to pscleaner
|
||||||
|
[*] MO : you can now exclude IP addresses from the online visitors module #PSCFV-9056
|
||||||
|
[*] MO : pscleaner reset employees notyfications pscleaner afetr truncating orders, messages and customers reset also employees notyfications
|
||||||
|
[*] MO : blocklayered optimization
|
||||||
|
[*] MO : Followup https://github.com/runningz/PrestaShop/commit/040ff3396ac32a1cc35d4d2464e8d36486cac418
|
||||||
|
[*] MO : blockcart - simpler selectors
|
||||||
|
[*] MO: Add smarty cache on blocksupplier and blockmanufacturer
|
||||||
|
[*] MO: blockcart animation optimization The animated element would not be removed upon the animation being finished. This made the site slow and unresponsive if the animated image was heavy (eg. a transparent png) and added to cart many times without reloading the page. This addition makes the animation behave as expected also when performing it multiple times.
|
||||||
|
|
||||||
|
[*] WS : order history add(POST) send customer email if sendemail=1 url parameter, thanks @gerdus
|
||||||
|
[*] WS : improved performances
|
||||||
|
[*] WS : improved web service performances
|
||||||
|
|
||||||
|
[*] PDF : Free shipping in invoice PDF display X2 thanks @axometeam
|
||||||
|
[*] PDF : Small column width fix
|
||||||
|
|
||||||
|
[*] TR : Added 10 new localization packs
|
||||||
|
|
||||||
|
[*] LO: Improved Argentina Localization Pack
|
||||||
|
[*] LO : corrected Israel standard tax rate
|
||||||
|
[*] LO : Fixed units in Belgium localization pack
|
||||||
|
[*] LO : Fix PSCFV-9330 (decimals=2)
|
||||||
|
[*] LO : Updated it & nl localization files
|
||||||
|
|
||||||
|
Added Features:
|
||||||
|
|
||||||
|
[+] BO: Add a wizard to create and edit your carriers
|
||||||
|
[+] BO: Addition, deletion and edition are now logged
|
||||||
|
[+] BO: Fix Bug Progress Bar Upload Image Product Lorsque l'on ajoute des images a des produits, la barre de progression s'affiche en dehors de son cadre. "position:relative" n'est pas présent pour "div.progressBarImage" dans le fichier admin.css . ---- When we add pictures to products, the progress bar is out of his wrapper. "position:relative" is missing for "div.progressBarImage" in admin.css file.
|
||||||
|
|
||||||
|
[+] CORE : new jquery UI version (1.10.3)
|
||||||
|
|
||||||
|
[+] TR: Created file structure for Dutch installer
|
||||||
|
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# v1.5.4.1 - (2013-04-25) #
|
# v1.5.4.1 - (2013-04-25) #
|
||||||
####################################
|
####################################
|
||||||
|
|||||||
@@ -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)
|
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
International Registered Trademark & Property of PrestaShop SA
|
International Registered Trademark & Property of PrestaShop SA
|
||||||
|
|
||||||
NAME: Prestashop 1.5.4.1
|
NAME: Prestashop 1.5.5.0
|
||||||
VERSION: 1.5.4.1
|
VERSION: 1.5.5.0
|
||||||
|
|
||||||
VORBEREITUNG
|
VORBEREITUNG
|
||||||
===========
|
===========
|
||||||
|
|||||||
@@ -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)
|
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
International Registered Trademark & Property of PrestaShop SA
|
International Registered Trademark & Property of PrestaShop SA
|
||||||
|
|
||||||
NAME: Prestashop 1.5.4.1
|
NAME: Prestashop 1.5.5.0
|
||||||
VERSION: 1.5.4.1
|
VERSION: 1.5.5.0
|
||||||
|
|
||||||
PREPARATION
|
PREPARATION
|
||||||
===========
|
===========
|
||||||
|
|||||||
@@ -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)
|
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
International Registered Trademark & Property of PrestaShop SA
|
International Registered Trademark & Property of PrestaShop SA
|
||||||
|
|
||||||
NAME: Prestashop 1.5.4.1
|
NAME: Prestashop 1.5.5.0
|
||||||
VERSION: 1.5.4.1
|
VERSION: 1.5.5.0
|
||||||
|
|
||||||
PREPARACI<EFBFBD>N
|
PREPARACI<EFBFBD>N
|
||||||
===========
|
===========
|
||||||
|
|||||||
@@ -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)
|
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
International Registered Trademark & Property of PrestaShop SA
|
International Registered Trademark & Property of PrestaShop SA
|
||||||
|
|
||||||
NAME: Prestashop 1.5.4.1
|
NAME: Prestashop 1.5.5.0
|
||||||
VERSION: 1.5.4.1
|
VERSION: 1.5.5.0
|
||||||
|
|
||||||
PREPARATION
|
PREPARATION
|
||||||
===========
|
===========
|
||||||
|
|||||||
@@ -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)
|
@license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
International Registered Trademark & Property of PrestaShop SA
|
International Registered Trademark & Property of PrestaShop SA
|
||||||
|
|
||||||
NAME: Prestashop 1.5.4.1
|
NAME: Prestashop 1.5.5.0
|
||||||
VERSION: 1.5.4.1
|
VERSION: 1.5.5.0
|
||||||
|
|
||||||
PREPARAZIONE
|
PREPARAZIONE
|
||||||
===========
|
===========
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ abstract class InstallControllerHttp
|
|||||||
* @var array List of installer steps
|
* @var array List of installer steps
|
||||||
*/
|
*/
|
||||||
protected static $steps = array('welcome', 'license', 'system', 'configure', 'database', 'process');
|
protected static $steps = array('welcome', 'license', 'system', 'configure', 'database', 'process');
|
||||||
|
protected $phone;
|
||||||
protected static $instances = array();
|
protected static $instances = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -318,7 +318,14 @@ abstract class InstallControllerHttp
|
|||||||
*/
|
*/
|
||||||
public function getPhone()
|
public function getPhone()
|
||||||
{
|
{
|
||||||
return $this->language->getInformation('phone', false);
|
if ($this->phone === null)
|
||||||
|
{
|
||||||
|
$this->phone = $this->language->getInformation('phone', false);
|
||||||
|
if ($iframe = Tools::file_get_contents('http://api.prestashop.com/iframe/install.php?lang='.$this->language->getLanguageIso()))
|
||||||
|
if (preg_match('/<img.+alt="([^"]+)".*>/Ui', $iframe, $matches) && isset($matches[1]))
|
||||||
|
$this->phone = $matches[1];
|
||||||
|
}
|
||||||
|
return $this->phone;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,14 +24,11 @@
|
|||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once 'init.php';
|
require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'init.php');
|
||||||
|
|
||||||
try
|
try {
|
||||||
{
|
require_once(_PS_INSTALL_PATH_.'classes'.DIRECTORY_SEPARATOR.'controllerHttp.php');
|
||||||
require_once _PS_INSTALL_PATH_.'classes/controllerHttp.php';
|
|
||||||
InstallControllerHttp::execute();
|
InstallControllerHttp::execute();
|
||||||
}
|
} catch (PrestashopInstallerException $e) {
|
||||||
catch (PrestashopInstallerException $e)
|
|
||||||
{
|
|
||||||
$e->displayMessage();
|
$e->displayMessage();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
|
||||||
// Check PHP version
|
// Check PHP version
|
||||||
if (version_compare(PHP_VERSION, '5.1.3', '<'))
|
if (version_compare(PHP_VERSION, '5.1.3', '<'))
|
||||||
die('You need at least PHP 5.1.3 to run PrestaShop. Your current PHP version is '.PHP_VERSION);
|
die('You need at least PHP 5.1.3 to run PrestaShop. Your current PHP version is '.PHP_VERSION);
|
||||||
@@ -37,7 +39,7 @@ define('_PS_INSTALL_MODELS_PATH_', _PS_INSTALL_PATH_.'models/');
|
|||||||
define('_PS_INSTALL_LANGS_PATH_', _PS_INSTALL_PATH_.'langs/');
|
define('_PS_INSTALL_LANGS_PATH_', _PS_INSTALL_PATH_.'langs/');
|
||||||
define('_PS_INSTALL_FIXTURES_PATH_', _PS_INSTALL_PATH_.'fixtures/');
|
define('_PS_INSTALL_FIXTURES_PATH_', _PS_INSTALL_PATH_.'fixtures/');
|
||||||
|
|
||||||
require_once(_PS_INSTALL_PATH_ . 'install_version.php');
|
require_once(_PS_INSTALL_PATH_.'install_version.php');
|
||||||
|
|
||||||
// we check if theses constants are defined
|
// we check if theses constants are defined
|
||||||
// in order to use init.php in upgrade.php script
|
// in order to use init.php in upgrade.php script
|
||||||
@@ -71,8 +73,8 @@ if (!@ini_get('date.timezone'))
|
|||||||
ini_set('magic_quotes_runtime', 0);
|
ini_set('magic_quotes_runtime', 0);
|
||||||
|
|
||||||
// Try to improve memory limit if it's under 32M
|
// Try to improve memory limit if it's under 32M
|
||||||
if (psinstall_get_memory_limit() < psinstall_get_octets('32M'))
|
if (psinstall_get_memory_limit() < psinstall_get_octets('64M'))
|
||||||
ini_set('memory_limit', '32M');
|
ini_set('memory_limit', '64M');
|
||||||
|
|
||||||
function psinstall_get_octets($option)
|
function psinstall_get_octets($option)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<tab id="Search" name="Pesquisar"/>
|
<tab id="Search" name="Pesquisar"/>
|
||||||
<tab id="Search_Engines" name="Ferramentas de Pesquisa"/>
|
<tab id="Search_Engines" name="Ferramentas de Pesquisa"/>
|
||||||
<tab id="SEO_URLs" name="SEO e URLs"/>
|
<tab id="SEO_URLs" name="SEO e URLs"/>
|
||||||
<tab id="Shipping" name="Envio"/>
|
<tab id="Shipping" name="Preferências"/>
|
||||||
<tab id="Shipping_1" name="Envio"/>
|
<tab id="Shipping_1" name="Envio"/>
|
||||||
<tab id="Shop_URLs" name="URL da loja"/>
|
<tab id="Shop_URLs" name="URL da loja"/>
|
||||||
<tab id="Shopping_Carts" name="Carrinhos de Compras"/>
|
<tab id="Shopping_Carts" name="Carrinhos de Compras"/>
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
return array(
|
return array(
|
||||||
'informations' => array(
|
'informations' => array(
|
||||||
'phone' => '+1 888.947.6543',
|
'phone' => '+1 888.947.6543',
|
||||||
'support' => 'https://www.prestashop.com/pt/support',
|
'support' => 'https://www.prestashop.com/pt/support',
|
||||||
|
'blog' => 'http://www.prestashop.com/blog/pt/'
|
||||||
),
|
),
|
||||||
'translations' => array(
|
'translations' => array(
|
||||||
'menu_welcome' => 'Escolha seu idioma',
|
'menu_welcome' => 'Escolha seu idioma',
|
||||||
@@ -162,7 +163,7 @@ return array(
|
|||||||
'Test message from PrestaShop' => 'Mensagem de teste do PrestaShop',
|
'Test message from PrestaShop' => 'Mensagem de teste do PrestaShop',
|
||||||
'This is a test message, your server is now available to send email' => 'Esta é uma mensagem de teste, seu servidor está disponível agora para enviar emails.',
|
'This is a test message, your server is now available to send email' => 'Esta é uma mensagem de teste, seu servidor está disponível agora para enviar emails.',
|
||||||
'%s - Login information' => '%s - Informação de identificação',
|
'%s - Login information' => '%s - Informação de identificação',
|
||||||
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'Um erro SQL ocorrey para a entidade <i>%1$s</i> : <i>%2$s</i>',
|
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'Um erro SQL ocorreu para a entidade <i>%1$s</i> : <i>%2$s</i>',
|
||||||
'Cannot create image "%1$s" for entity "%2$s"' => 'Não é possível criar imagem "%1$s" para a entidade "%2$s"',
|
'Cannot create image "%1$s" for entity "%2$s"' => 'Não é possível criar imagem "%1$s" para a entidade "%2$s"',
|
||||||
'Cannot create image "%1$s" (bad permissions on folder "%2$s")' => 'Não é possível criar imagem "%1$s" (permissão inválida na pasta "%2$s")',
|
'Cannot create image "%1$s" (bad permissions on folder "%2$s")' => 'Não é possível criar imagem "%1$s" (permissão inválida na pasta "%2$s")',
|
||||||
'Cannot create image "%s"' => 'Não é possível criar imagem "%s"',
|
'Cannot create image "%s"' => 'Não é possível criar imagem "%s"',
|
||||||
@@ -237,5 +238,14 @@ return array(
|
|||||||
'E-mail:' => 'E-mail:',
|
'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.',
|
'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',
|
'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',
|
||||||
|
'Database is created' => 'Banco de dados está criado',
|
||||||
|
'Cannot create the database automatically' => 'Não é possível criar o banco de dados automaticamente',
|
||||||
|
'Install modules Addons' => 'Instalar módulos Addons',
|
||||||
|
'Attempt to create the database automatically' => 'Tentativa de criar o banco de dados automaticamente',
|
||||||
|
'Country:' => 'País:',
|
||||||
|
'Must be letters and numbers with at least 8 characters' => 'Deve ser letras e números com pelo menos 8 caractéres',
|
||||||
|
'To install PrestaShop, you need to have JavaScript enabled in your browser.' => 'Para instalar o PrestaShop, você precisa ter JavaScript ativado no seu navegador',
|
||||||
|
'To enjoy the many features that are offered for free 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.' => 'Para aproveitar os muitos recursos que são oferecidos grátis pelo PrestaShop, por favor, leia os termos de licença abaixo. O núcleo do PrestaShop é licenciado sob OSL 3.0, enquanto os módulos e temas são licenciados sob AFL 3.0.',
|
||||||
|
'For security purposes, you must delete the "install" folder.' => 'Por questões de segurança, você deve deletar a pasta "install"',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<tab id="Search" name="Suche"/>
|
<tab id="Search" name="Suche"/>
|
||||||
<tab id="Search_Engines" name="Suchmaschinen"/>
|
<tab id="Search_Engines" name="Suchmaschinen"/>
|
||||||
<tab id="SEO_URLs" name="SEO & URLs"/>
|
<tab id="SEO_URLs" name="SEO & URLs"/>
|
||||||
<tab id="Shipping" name="Versand"/>
|
<tab id="Shipping" name="Voreinstellungen"/>
|
||||||
<tab id="Shipping_1" name="Versand"/>
|
<tab id="Shipping_1" name="Versand"/>
|
||||||
<tab id="Shop_URLs" name="Shop-URLs"/>
|
<tab id="Shop_URLs" name="Shop-URLs"/>
|
||||||
<tab id="Shopping_Carts" name="Warenkörbe"/>
|
<tab id="Shopping_Carts" name="Warenkörbe"/>
|
||||||
|
|||||||
@@ -3,61 +3,61 @@
|
|||||||
<meta id="404" id_shop="1">
|
<meta id="404" id_shop="1">
|
||||||
<title>404 error</title>
|
<title>404 error</title>
|
||||||
<description>This page cannot be found</description>
|
<description>This page cannot be found</description>
|
||||||
<keywords>error, 404, not found</keywords>
|
<keywords/>
|
||||||
<url_rewrite>page-not-found</url_rewrite>
|
<url_rewrite>page-not-found</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="best-sales" id_shop="1">
|
<meta id="best-sales" id_shop="1">
|
||||||
<title>Best sales</title>
|
<title>Best sales</title>
|
||||||
<description>Our best sales</description>
|
<description>Our best sales</description>
|
||||||
<keywords>best sales</keywords>
|
<keywords/>
|
||||||
<url_rewrite>best-sales</url_rewrite>
|
<url_rewrite>best-sales</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="contact" id_shop="1">
|
<meta id="contact" id_shop="1">
|
||||||
<title>Contact us</title>
|
<title>Contact us</title>
|
||||||
<description>Use our form to contact us</description>
|
<description>Use our form to contact us</description>
|
||||||
<keywords>contact, form, e-mail</keywords>
|
<keywords/>
|
||||||
<url_rewrite>contact-us</url_rewrite>
|
<url_rewrite>contact-us</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="index" id_shop="1">
|
<meta id="index" id_shop="1">
|
||||||
<title/>
|
<title/>
|
||||||
<description>Shop powered by PrestaShop</description>
|
<description>Shop powered by PrestaShop</description>
|
||||||
<keywords>shop, prestashop</keywords>
|
<keywords/>
|
||||||
<url_rewrite/>
|
<url_rewrite/>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="manufacturer" id_shop="1">
|
<meta id="manufacturer" id_shop="1">
|
||||||
<title>Manufacturers</title>
|
<title>Manufacturers</title>
|
||||||
<description>Manufacturers list</description>
|
<description>Manufacturers list</description>
|
||||||
<keywords>manufacturer</keywords>
|
<keywords/>
|
||||||
<url_rewrite>manufacturers</url_rewrite>
|
<url_rewrite>manufacturers</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="new-products" id_shop="1">
|
<meta id="new-products" id_shop="1">
|
||||||
<title>New products</title>
|
<title>New products</title>
|
||||||
<description>Our new products</description>
|
<description>Our new products</description>
|
||||||
<keywords>new, products</keywords>
|
<keywords/>
|
||||||
<url_rewrite>new-products</url_rewrite>
|
<url_rewrite>new-products</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="password" id_shop="1">
|
<meta id="password" id_shop="1">
|
||||||
<title>Forgot your password</title>
|
<title>Forgot your password</title>
|
||||||
<description>Enter your e-mail address used to register in goal to get e-mail with your new password</description>
|
<description>Enter your e-mail address used to register in goal to get e-mail with your new password</description>
|
||||||
<keywords>forgot, password, e-mail, new, reset</keywords>
|
<keywords/>
|
||||||
<url_rewrite>password-recovery</url_rewrite>
|
<url_rewrite>password-recovery</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="prices-drop" id_shop="1">
|
<meta id="prices-drop" id_shop="1">
|
||||||
<title>Prices drop</title>
|
<title>Prices drop</title>
|
||||||
<description>Our special products</description>
|
<description>Our special products</description>
|
||||||
<keywords>special, prices drop</keywords>
|
<keywords/>
|
||||||
<url_rewrite>prices-drop</url_rewrite>
|
<url_rewrite>prices-drop</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="sitemap" id_shop="1">
|
<meta id="sitemap" id_shop="1">
|
||||||
<title>Sitemap</title>
|
<title>Sitemap</title>
|
||||||
<description>Lost ? Find what your are looking for</description>
|
<description>Lost ? Find what your are looking for</description>
|
||||||
<keywords>sitemap</keywords>
|
<keywords/>
|
||||||
<url_rewrite>sitemap</url_rewrite>
|
<url_rewrite>sitemap</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="supplier" id_shop="1">
|
<meta id="supplier" id_shop="1">
|
||||||
<title>Suppliers</title>
|
<title>Suppliers</title>
|
||||||
<description>Suppliers list</description>
|
<description>Suppliers list</description>
|
||||||
<keywords>supplier</keywords>
|
<keywords/>
|
||||||
<url_rewrite>supplier</url_rewrite>
|
<url_rewrite>supplier</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="address" id_shop="1">
|
<meta id="address" id_shop="1">
|
||||||
@@ -73,10 +73,10 @@
|
|||||||
<url_rewrite>addresses</url_rewrite>
|
<url_rewrite>addresses</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="authentication" id_shop="1">
|
<meta id="authentication" id_shop="1">
|
||||||
<title>Authentication</title>
|
<title>Login</title>
|
||||||
<description/>
|
<description/>
|
||||||
<keywords/>
|
<keywords/>
|
||||||
<url_rewrite>authentication</url_rewrite>
|
<url_rewrite>login</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="cart" id_shop="1">
|
<meta id="cart" id_shop="1">
|
||||||
<title>Cart</title>
|
<title>Cart</title>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<tab id="Orders" name="Orders"/>
|
<tab id="Orders" name="Orders"/>
|
||||||
<tab id="Customers" name="Customers"/>
|
<tab id="Customers" name="Customers"/>
|
||||||
<tab id="Price_Rules" name="Price Rules"/>
|
<tab id="Price_Rules" name="Price Rules"/>
|
||||||
<tab id="Shipping" name="Shipping"/>
|
<tab id="Shipping" name="Preferences"/>
|
||||||
<tab id="Localization" name="Localization"/>
|
<tab id="Localization" name="Localization"/>
|
||||||
<tab id="Modules" name="Modules"/>
|
<tab id="Modules" name="Modules"/>
|
||||||
<tab id="Preferences" name="Preferences"/>
|
<tab id="Preferences" name="Preferences"/>
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<tab id="Search" name="Buscar"/>
|
<tab id="Search" name="Buscar"/>
|
||||||
<tab id="Search_Engines" name="Buscador"/>
|
<tab id="Search_Engines" name="Buscador"/>
|
||||||
<tab id="SEO_URLs" name="SEO y URLs"/>
|
<tab id="SEO_URLs" name="SEO y URLs"/>
|
||||||
<tab id="Shipping" name="transporte"/>
|
<tab id="Shipping" name="Preferencias"/>
|
||||||
<tab id="Shipping_1" name="transporte"/>
|
<tab id="Shipping_1" name="transporte"/>
|
||||||
<tab id="Shop_URLs" name="URL cortos"/>
|
<tab id="Shop_URLs" name="URL cortos"/>
|
||||||
<tab id="Shopping_Carts" name="Cestas"/>
|
<tab id="Shopping_Carts" name="Cestas"/>
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
return array(
|
return array(
|
||||||
'informations' => array(
|
'informations' => array(
|
||||||
'phone' => '+1 (888) 947-6543',
|
'phone' => '+34 917.872.909',
|
||||||
'support' => 'https://www.prestashop.com/es/support',
|
'support' => 'https://www.prestashop.com/es/support',
|
||||||
|
'blog' => 'http://www.prestashop.com/blog/es/'
|
||||||
),
|
),
|
||||||
'translations' => array(
|
'translations' => array(
|
||||||
'menu_welcome' => 'Elegir el idioma',
|
'menu_welcome' => 'Elegir el idioma',
|
||||||
@@ -234,5 +235,16 @@ return array(
|
|||||||
'PrestaShop compatibility with your system environment has been verified!' => '¡La compatibilidad de PrestaShop con su entorno del sistema ha sido verificada correctamente!',
|
'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',
|
'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',
|
'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',
|
||||||
|
'Database is created' => 'Base de datos se creada',
|
||||||
|
'Cannot create the database automatically' => 'No se puede crear la base de datos automáticamente',
|
||||||
|
'Install modules Addons' => 'Instalar módulos Addons',
|
||||||
|
'Attempt to create the database automatically' => 'Tentativa de crear la base de datos automáticamente',
|
||||||
|
'Country:' => 'País:',
|
||||||
|
'Must be letters and numbers with at least 8 characters' => 'Deben ser letras y números con un mínimo de 8 caracteres',
|
||||||
|
'To install PrestaShop, you need to have JavaScript enabled in your browser.' => 'Para instalar PrestaShop, usted necesita tener el Javascript activado en su navegador.',
|
||||||
|
'http://doc.prestashop.com/display/PS15/What+you+need+to+get+started#HowtoenableJavaScript-HowtoenableJavaScript' => 'http://doc.prestashop.com/display/PS15/What+you+need+to+get+started#HowtoenableJavaScript-HowtoenableJavaScript',
|
||||||
|
'To enjoy the many features that are offered for free 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.' => 'Para disfrutar de las numerosas funcionalidades ofrecidas de forma gratuita por PrestaShop, por favor lea los términos de la licencia a continuación. Core PrestaShop está disponible bajo la licencia OSL 3.0, mientras que los módulos y los temas están licenciados bajo la AFL 3.0.',
|
||||||
|
'For security purposes, you must delete the "install" folder.' => 'Por razones de seguridad, debe eliminar la carpeta "install".',
|
||||||
|
'http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Completingtheinstallation' => 'http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Completingtheinstallation',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,61 +3,61 @@
|
|||||||
<meta id="404" id_shop="1">
|
<meta id="404" id_shop="1">
|
||||||
<title>Erreur 404</title>
|
<title>Erreur 404</title>
|
||||||
<description>Cette page est introuvable</description>
|
<description>Cette page est introuvable</description>
|
||||||
<keywords>erreur, 404, introuvable</keywords>
|
<keywords/>
|
||||||
<url_rewrite>page-non-trouvee</url_rewrite>
|
<url_rewrite>page-non-trouvee</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="best-sales" id_shop="1">
|
<meta id="best-sales" id_shop="1">
|
||||||
<title>Meilleures ventes</title>
|
<title>Meilleures ventes</title>
|
||||||
<description>Liste de nos produits les mieux vendus</description>
|
<description>Liste de nos produits les mieux vendus</description>
|
||||||
<keywords>meilleures ventes</keywords>
|
<keywords/>
|
||||||
<url_rewrite>meilleures-ventes</url_rewrite>
|
<url_rewrite>meilleures-ventes</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="contact" id_shop="1">
|
<meta id="contact" id_shop="1">
|
||||||
<title>Contactez-nous</title>
|
<title>Contactez-nous</title>
|
||||||
<description>Utilisez notre formulaire pour nous contacter</description>
|
<description>Utilisez notre formulaire pour nous contacter</description>
|
||||||
<keywords>contact, formulaire, e-mail</keywords>
|
<keywords/>
|
||||||
<url_rewrite>contactez-nous</url_rewrite>
|
<url_rewrite>contactez-nous</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="index" id_shop="1">
|
<meta id="index" id_shop="1">
|
||||||
<title/>
|
<title/>
|
||||||
<description>Boutique propulsée par PrestaShop</description>
|
<description>Boutique propulsée par PrestaShop</description>
|
||||||
<keywords>boutique, prestashop</keywords>
|
<keywords/>
|
||||||
<url_rewrite/>
|
<url_rewrite/>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="manufacturer" id_shop="1">
|
<meta id="manufacturer" id_shop="1">
|
||||||
<title>Fabricants</title>
|
<title>Fabricants</title>
|
||||||
<description>Liste de nos fabricants</description>
|
<description>Liste de nos fabricants</description>
|
||||||
<keywords>fabricants</keywords>
|
<keywords/>
|
||||||
<url_rewrite>fabricants</url_rewrite>
|
<url_rewrite>fabricants</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="new-products" id_shop="1">
|
<meta id="new-products" id_shop="1">
|
||||||
<title>Nouveaux produits</title>
|
<title>Nouveaux produits</title>
|
||||||
<description>Liste de nos nouveaux produits</description>
|
<description>Liste de nos nouveaux produits</description>
|
||||||
<keywords>nouveau, produit</keywords>
|
<keywords/>
|
||||||
<url_rewrite>nouveaux-produits</url_rewrite>
|
<url_rewrite>nouveaux-produits</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="password" id_shop="1">
|
<meta id="password" id_shop="1">
|
||||||
<title>Mot de passe oublié</title>
|
<title>Mot de passe oublié</title>
|
||||||
<description>Renseignez votre adresse e-mail afin de recevoir votre nouveau mot de passe.</description>
|
<description>Renseignez votre adresse e-mail afin de recevoir votre nouveau mot de passe.</description>
|
||||||
<keywords>mot de passe, oublié, e-mail, nouveau, regénération</keywords>
|
<keywords/>
|
||||||
<url_rewrite>mot-de-passe-oublie</url_rewrite>
|
<url_rewrite>mot-de-passe-oublie</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="prices-drop" id_shop="1">
|
<meta id="prices-drop" id_shop="1">
|
||||||
<title>Promotions</title>
|
<title>Promotions</title>
|
||||||
<description>Nos produits en promotion</description>
|
<description>Nos produits en promotion</description>
|
||||||
<keywords>promotion, réduction</keywords>
|
<keywords/>
|
||||||
<url_rewrite>promotions</url_rewrite>
|
<url_rewrite>promotions</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="sitemap" id_shop="1">
|
<meta id="sitemap" id_shop="1">
|
||||||
<title>Plan du site</title>
|
<title>Plan du site</title>
|
||||||
<description>Perdu ? Trouvez ce que vous cherchez</description>
|
<description>Perdu ? Trouvez ce que vous cherchez</description>
|
||||||
<keywords>plan, site</keywords>
|
<keywords/>
|
||||||
<url_rewrite>plan-du-site</url_rewrite>
|
<url_rewrite>plan-du-site</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="supplier" id_shop="1">
|
<meta id="supplier" id_shop="1">
|
||||||
<title>Fournisseurs</title>
|
<title>Fournisseurs</title>
|
||||||
<description>Liste de nos fournisseurs</description>
|
<description>Liste de nos fournisseurs</description>
|
||||||
<keywords>fournisseurs</keywords>
|
<keywords/>
|
||||||
<url_rewrite>fournisseurs</url_rewrite>
|
<url_rewrite>fournisseurs</url_rewrite>
|
||||||
</meta>
|
</meta>
|
||||||
<meta id="address" id_shop="1">
|
<meta id="address" id_shop="1">
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<tab id="Search" name="Recherche"/>
|
<tab id="Search" name="Recherche"/>
|
||||||
<tab id="Search_Engines" name="Moteurs de recherche"/>
|
<tab id="Search_Engines" name="Moteurs de recherche"/>
|
||||||
<tab id="SEO_URLs" name="SEO & URLs"/>
|
<tab id="SEO_URLs" name="SEO & URLs"/>
|
||||||
<tab id="Shipping" name="Transport"/>
|
<tab id="Shipping" name="Préférences"/>
|
||||||
<tab id="Shipping_1" name="Transport"/>
|
<tab id="Shipping_1" name="Transport"/>
|
||||||
<tab id="Shop_URLs" name="URLs de boutique"/>
|
<tab id="Shop_URLs" name="URLs de boutique"/>
|
||||||
<tab id="Shopping_Carts" name="Paniers"/>
|
<tab id="Shopping_Carts" name="Paniers"/>
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<tab id="Search" name="Cerca"/>
|
<tab id="Search" name="Cerca"/>
|
||||||
<tab id="Search_Engines" name="Motori di ricerca"/>
|
<tab id="Search_Engines" name="Motori di ricerca"/>
|
||||||
<tab id="SEO_URLs" name="URL e SEO"/>
|
<tab id="SEO_URLs" name="URL e SEO"/>
|
||||||
<tab id="Shipping" name="Spedizione"/>
|
<tab id="Shipping" name="Preferenze"/>
|
||||||
<tab id="Shipping_1" name="Spedizione"/>
|
<tab id="Shipping_1" name="Spedizione"/>
|
||||||
<tab id="Shop_URLs" name="URLs negozi"/>
|
<tab id="Shop_URLs" name="URLs negozi"/>
|
||||||
<tab id="Shopping_Carts" name="Carrello"/>
|
<tab id="Shopping_Carts" name="Carrello"/>
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
return array(
|
return array(
|
||||||
'informations' => array(
|
'informations' => array(
|
||||||
'phone' => '+33 (0)1.40.18.30.04',
|
'phone' => '+33 (0)1.40.18.30.04',
|
||||||
'support' => 'https://www.prestashop.com/it/support',
|
'support' => 'https://www.prestashop.com/it/support',
|
||||||
|
'blog' => 'http://www.prestashop.com/blog/it/'
|
||||||
),
|
),
|
||||||
'translations' => array(
|
'translations' => array(
|
||||||
'menu_welcome' => 'Scelta della lingua',
|
'menu_welcome' => 'Scelta della lingua',
|
||||||
@@ -16,9 +17,9 @@ return array(
|
|||||||
'Invalid shop name' => 'Nome negozio non valido',
|
'Invalid shop name' => 'Nome negozio non valido',
|
||||||
'Your firstname contains some invalid characters' => 'Il tuo nome contiene caratteri non validi',
|
'Your firstname contains some invalid characters' => 'Il tuo nome contiene caratteri non validi',
|
||||||
'Your lastname contains some invalid characters' => 'Il tuo cognome contiene caratteri non validi',
|
'Your lastname contains some invalid characters' => 'Il tuo cognome contiene caratteri non validi',
|
||||||
'The password is incorrect (alphanumeric string with at least 8 characters)' => 'La password non è corretta (stringa alfanumerica di almeno 8 caratteri)',
|
'The password is incorrect (alphanumeric string with at least 8 characters)' => 'La password non è corretta (sequenza alfanumerica di almeno 8 caratteri)',
|
||||||
'Password and its confirmation are different' => 'La prima password digitata non coincide con la seconda',
|
'Password and its confirmation are different' => 'La password digitata non coincide con la conferma della stessa',
|
||||||
'This e-mail address is invalid' => 'L\'indirizzo e-mail non è valido',
|
'This e-mail address is invalid' => 'L\'indirizzo email non è valido',
|
||||||
'The uploaded file exceeds the upload_max_filesize directive in php.ini' => 'Il file inviato supera la dimensione massima autorizzata.',
|
'The uploaded file exceeds the upload_max_filesize directive in php.ini' => 'Il file inviato supera la dimensione massima autorizzata.',
|
||||||
'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form' => 'Il file inviato supera la dimensione massima autorizzata.',
|
'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form' => 'Il file inviato supera la dimensione massima autorizzata.',
|
||||||
'The uploaded file was only partially uploaded' => 'Il file è stato parzialmente inviato.',
|
'The uploaded file was only partially uploaded' => 'Il file è stato parzialmente inviato.',
|
||||||
@@ -34,7 +35,7 @@ return array(
|
|||||||
'Lingerie and Adult' => 'Intimo e adulti',
|
'Lingerie and Adult' => 'Intimo e adulti',
|
||||||
'Animals and Pets' => 'Animali',
|
'Animals and Pets' => 'Animali',
|
||||||
'Art and Culture' => 'Arte e cultura',
|
'Art and Culture' => 'Arte e cultura',
|
||||||
'Babies' => 'Neonato',
|
'Babies' => 'Neonati',
|
||||||
'Beauty and Personal Care' => 'Bellezza e cura del corpo',
|
'Beauty and Personal Care' => 'Bellezza e cura del corpo',
|
||||||
'Cars' => 'Automobili',
|
'Cars' => 'Automobili',
|
||||||
'Computer Hardware and Software' => 'Informatica e software',
|
'Computer Hardware and Software' => 'Informatica e software',
|
||||||
@@ -50,7 +51,7 @@ return array(
|
|||||||
'Services' => 'Servizi',
|
'Services' => 'Servizi',
|
||||||
'Shoes and accessories' => 'Scarpe e accessori',
|
'Shoes and accessories' => 'Scarpe e accessori',
|
||||||
'Sports and Entertainment' => 'Sport e divertimenti',
|
'Sports and Entertainment' => 'Sport e divertimenti',
|
||||||
'Travel' => 'Viaggi e turismo',
|
'Travel' => 'Viaggi',
|
||||||
'Database is connected' => 'Il database è connesso',
|
'Database is connected' => 'Il database è connesso',
|
||||||
'A test e-mail has been sent to %s' => 'Un\'e-mail di prova è stata inviata a %s',
|
'A test e-mail has been sent to %s' => 'Un\'e-mail di prova è stata inviata a %s',
|
||||||
'An error occurred while sending email, please verify your parameters' => 'Si è verificato un errore nell\'invio dell\'e-mail. Controlla le impostazioni.',
|
'An error occurred while sending email, please verify your parameters' => 'Si è verificato un errore nell\'invio dell\'e-mail. Controlla le impostazioni.',
|
||||||
@@ -59,7 +60,7 @@ return array(
|
|||||||
'Populate database tables' => 'Compilazione tabelle nel database',
|
'Populate database tables' => 'Compilazione tabelle nel database',
|
||||||
'Configure shop information' => 'Configurazione del negozio',
|
'Configure shop information' => 'Configurazione del negozio',
|
||||||
'Install modules' => 'Installazione moduli',
|
'Install modules' => 'Installazione moduli',
|
||||||
'Install demonstration data' => 'Installazione demo',
|
'Install demonstration data' => 'Installazione dati dimostrativi',
|
||||||
'Install theme' => 'Installazione del tema',
|
'Install theme' => 'Installazione del tema',
|
||||||
'PHP parameters:' => 'Parametri PHP:',
|
'PHP parameters:' => 'Parametri PHP:',
|
||||||
'Is PHP 5.1.2 or later installed ?' => 'PHP 5.1.2 o successivi installato?',
|
'Is PHP 5.1.2 or later installed ?' => 'PHP 5.1.2 o successivi installato?',
|
||||||
@@ -81,21 +82,21 @@ return array(
|
|||||||
'Please choose your main activity' => 'Seleziona l\'attività principale',
|
'Please choose your main activity' => 'Seleziona l\'attività principale',
|
||||||
'Other activity...' => 'Altre attività...',
|
'Other activity...' => 'Altre attività...',
|
||||||
'This information is not required, it will only be used for statistical purposes. This information does not change anything in your store.' => 'Queste informazioni non sono obbligatorie, saranno utilizzate a fini statistici. Queste informazioni non cambieranno nulla nel tuo negozio.',
|
'This information is not required, it will only be used for statistical purposes. This information does not change anything in your store.' => 'Queste informazioni non sono obbligatorie, saranno utilizzate a fini statistici. Queste informazioni non cambieranno nulla nel tuo negozio.',
|
||||||
'Install demo products:' => 'Installazione prodotti demo:',
|
'Install demo products:' => 'Installazione prodotti dimostrativi:',
|
||||||
'Yes' => 'Sì',
|
'Yes' => 'Sì',
|
||||||
'No' => 'No',
|
'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.' => 'I prodotti demo sono un buon modo per imparare a utilizzare PrestaShop. Dovresti installarli se non hai ancora dimestichezza con la soluzione',
|
'Demo products are a good way to learn how to use PrestaShop. You should install them if you are not familiar with it.' => 'I prodotti dimostrativi sono un buon modo per imparare a utilizzare PrestaShop. Dovresti installarli se non hai ancora dimestichezza con la piattaforma.',
|
||||||
'Default country:' => 'Paese di default:',
|
'Default country:' => 'Paese di default:',
|
||||||
'Select your country' => 'Seleziona il tuo paese',
|
'Select your country' => 'Seleziona il tuo paese',
|
||||||
'Shop timezone:' => 'Zona oraria del negozio:',
|
'Shop timezone:' => 'Fuso orario del negozio:',
|
||||||
'Select your timezone' => 'Seleziona la tua zona oraria',
|
'Select your timezone' => 'Seleziona il tuo fuso orario',
|
||||||
'Shop logo:' => 'Logo del negozio:',
|
'Shop logo:' => 'Logo del negozio:',
|
||||||
'Recommended dimensions:' => 'Dimensioni suggerite:',
|
'Recommended dimensions:' => 'Dimensioni suggerite:',
|
||||||
'First name:' => 'Nome:',
|
'First name:' => 'Nome:',
|
||||||
'Last name:' => 'Cognome:',
|
'Last name:' => 'Cognome:',
|
||||||
'E-mail address:' => 'Indirizzo e-mail:',
|
'E-mail address:' => 'Indirizzo email:',
|
||||||
'Shop password:' => 'Password del negozio:',
|
'Shop password:' => 'Password del negozio:',
|
||||||
'Re-type to confirm:' => 'Ridigita la password:',
|
'Re-type to confirm:' => 'Digita nuovamente la password:',
|
||||||
'Receive this information by e-mail' => 'Riceverò le mie informazioni tramite e-mail',
|
'Receive this information by e-mail' => 'Riceverò le mie informazioni tramite e-mail',
|
||||||
'Warning: You will receive this information only if your e-mail configuration is correct.' => 'Attenzione: riceverai queste informazioni per email solo le la configurazione è corretta',
|
'Warning: You will receive this information only if your e-mail configuration is correct.' => 'Attenzione: riceverai queste informazioni per email solo le la configurazione è corretta',
|
||||||
'Configure your database by filling out the following fields:' => 'Configura il database compilando i campi sottostanti:',
|
'Configure your database by filling out the following fields:' => 'Configura il database compilando i campi sottostanti:',
|
||||||
@@ -103,23 +104,23 @@ return array(
|
|||||||
'Database server address:' => 'Indirizzo server del database:',
|
'Database server address:' => 'Indirizzo server del database:',
|
||||||
'If you want to use a different port, add :XX after your server address where XX is your port number.' => 'Se vuoi utilizzare una porta differente aggiungi :XX dopo il tuo indirizzo dove XX è il numero della porta',
|
'If you want to use a different port, add :XX after your server address where XX is your port number.' => 'Se vuoi utilizzare una porta differente aggiungi :XX dopo il tuo indirizzo dove XX è il numero della porta',
|
||||||
'Database name:' => 'Nome del database:',
|
'Database name:' => 'Nome del database:',
|
||||||
'Database login:' => 'ID del database:',
|
'Database login:' => 'Nome di accesso database:',
|
||||||
'Database password:' => 'Password del database:',
|
'Database password:' => 'Password del database:',
|
||||||
'Database Engine:' => 'Motore del database:',
|
'Database Engine:' => 'Motore del database:',
|
||||||
'Tables prefix:' => 'Prefisso delle tabelle:',
|
'Tables prefix:' => 'Prefisso delle tabelle:',
|
||||||
'Drop existing tables (mode dev):' => 'Cancella le tabelle esistenti (modalità DEV):',
|
'Drop existing tables (mode dev):' => 'Cancella le tabelle esistenti (modalità dev):',
|
||||||
'Verify now!' => 'Controlla ora!',
|
'Verify now!' => 'Controlla ora!',
|
||||||
'E-mail delivery set-up' => 'Impostazioni invio e-mail',
|
'E-mail delivery set-up' => 'Impostazioni invio e-mail',
|
||||||
'Configure SMTP manually (advanced users only)' => 'Configura il server SMTP manualmente (solo per utenti esperti)',
|
'Configure SMTP manually (advanced users only)' => 'Configura il server SMTP manualmente (solo per utenti esperti)',
|
||||||
'By default, the PHP mail() function is used' => 'La funzione PHP mail() è utilizzata per default',
|
'By default, the PHP mail() function is used' => 'La funzione PHP mail() è utilizzata per default',
|
||||||
'SMTP server address:' => 'Indirizzo server SMTP:',
|
'SMTP server address:' => 'Indirizzo server SMTP:',
|
||||||
'Encryption:' => 'Criptaggio:',
|
'Encryption:' => 'Crittografia:',
|
||||||
'None' => 'Nessuno',
|
'None' => 'Nessuno',
|
||||||
'Port:' => 'Porta:',
|
'Port:' => 'Porta:',
|
||||||
'Login:' => 'ID:',
|
'Login:' => 'Nome:',
|
||||||
'Password:' => 'Password:',
|
'Password:' => 'Password:',
|
||||||
'enter@your.email' => 'inserisci@latua.email',
|
'enter@your.email' => 'inserisci@la.tua.email',
|
||||||
'Send me a test email!' => 'Inviami un\'e-mail di prova!',
|
'Send me a test email!' => 'Inviami un\'email di prova!',
|
||||||
'Next' => 'Avanti',
|
'Next' => 'Avanti',
|
||||||
'Back' => 'Indietro',
|
'Back' => 'Indietro',
|
||||||
'Official forum' => 'Forum ufficiale',
|
'Official forum' => 'Forum ufficiale',
|
||||||
@@ -129,17 +130,17 @@ return array(
|
|||||||
'Forum' => 'Forum',
|
'Forum' => 'Forum',
|
||||||
'Blog' => 'Blog',
|
'Blog' => 'Blog',
|
||||||
'Done!' => 'Fatto!',
|
'Done!' => 'Fatto!',
|
||||||
'An error occured during installation...' => 'Si è verificato un errore in fase di installazione…',
|
'An error occured during installation...' => 'Si è verificato un errore durane la fase di installazione…',
|
||||||
'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>.' => 'Puoi usare i link sulla colonna di sinistra per tornare indietro alle fasi precedenti, oppure puoi riavviare il processo di installazione <a href="%s">cliccando qui</a>.',
|
'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>.' => 'Puoi usare i link sulla colonna di sinistra per tornare indietro alle fasi precedenti, oppure puoi riavviare il processo di installazione <a href="%s">cliccando qui</a>.',
|
||||||
'Your installation is finished!' => 'Installazione conclusa!',
|
'Your installation is finished!' => 'Installazione conclusa!',
|
||||||
'You have just finished installing your shop. Thank you for using PrestaShop!' => 'Il tuo negozio è stato installato correttamente. Grazie di aver scelto PrestaShop!',
|
'You have just finished installing your shop. Thank you for using PrestaShop!' => 'Il tuo negozio è stato installato correttamente. Grazie per aver scelto PrestaShop!',
|
||||||
'Please remember your login information:' => 'Ricorda i dati per il login:',
|
'Please remember your login information:' => 'Ricorda le credenziali per il login:',
|
||||||
'WARNING: For security purposes, you must delete the "install" folder.' => 'ATTENZIONE: per motivi di sicurezza, devi cancellare la cartella \'install\'.',
|
'WARNING: For security purposes, you must delete the "install" folder.' => 'ATTENZIONE: per motivi di sicurezza, devi cancellare la cartella \'install\'.',
|
||||||
'Back Office' => 'Back Office',
|
'Back Office' => 'Back Office',
|
||||||
'Manage your store using your Back Office. Manage your orders and customers, add modules, change themes, etc.' => 'Gestisci il tuo negozio a partire dal Back Office. Gestisci ordini e clienti, aggiungi moduli, modifica i temi...',
|
'Manage your store using your Back Office. Manage your orders and customers, add modules, change themes, etc.' => 'Gestisci il tuo negozio tramite il Back Office. Gestisci ordini e clienti, aggiungi moduli, modifica i temi, ecc.',
|
||||||
'Manage your store' => 'Gestisci il negozio',
|
'Manage your store' => 'Gestisci il negozio',
|
||||||
'Front Office' => 'Front Office',
|
'Front Office' => 'Front Office',
|
||||||
'Discover your store as your future customers will see it!' => 'Scopri come vedranno il negozio i tuoi futuri clienti!',
|
'Discover your store as your future customers will see it!' => 'Scopri come i tuoi futuri clienti vedranno il negozio!',
|
||||||
'Discover your store' => 'Scopri il negozio',
|
'Discover your store' => 'Scopri il negozio',
|
||||||
'Required set-up. Please verify the following checklist items are true.' => 'Impostazioni obbligatorie. Per favore verifica che la lista sia ok',
|
'Required set-up. Please verify the following checklist items are true.' => 'Impostazioni obbligatorie. Per favore verifica che la lista sia ok',
|
||||||
'Your configuration is valid, click next to continue!' => 'La tua configurazione è valida, clicca su avanti per continuare',
|
'Your configuration is valid, click next to continue!' => 'La tua configurazione è valida, clicca su avanti per continuare',
|
||||||
@@ -148,62 +149,62 @@ return array(
|
|||||||
'Refresh these settings' => 'Aggiorna le impostazioni',
|
'Refresh these settings' => 'Aggiorna le impostazioni',
|
||||||
'Welcome to the PrestaShop %s Installer.' => 'Benvenuto nell\'Assistente di Installazione di PrestaShop %s .',
|
'Welcome to the PrestaShop %s Installer.' => 'Benvenuto nell\'Assistente di Installazione di PrestaShop %s .',
|
||||||
'The installation process should take only few minutes!' => 'Il processo di installazione dovrebbe durare solo pochi minuti!',
|
'The installation process should take only few minutes!' => 'Il processo di installazione dovrebbe durare solo pochi minuti!',
|
||||||
'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' => 'Se hai bisogno di aiuto, consulta <a href="%1$s" target="_blank">i nostri documenti</a> oppure contatta il nostro servizio di assistenza: %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' => 'Se hai bisogno di aiuto, consulta <a href="%1$s" target="_blank">la nostra documentazione</a> oppure contatta il nostro servizio di assistenza: %2$s',
|
||||||
'Did you know?' => 'Lo sapevi?',
|
'Did you know?' => 'Lo sapevi?',
|
||||||
'PrestaShop and its community offers over %d different languages for free, directly accessible from your Back Office on the Localization tab.' => 'PrestaShop e la sua comunità offre %d diverse lingue gratuite, direttamente accessibile nel tuo back office nel tab Traduzioni',
|
'PrestaShop and its community offers over %d different languages for free, directly accessible from your Back Office on the Localization tab.' => 'PrestaShop e la sua comunità offre %d diverse lingue gratuite, direttamente accessibile nel tuo back office nel tab Traduzioni',
|
||||||
'License Agreements' => 'Contratti di Licenza',
|
'License Agreements' => 'Accordi di licenza',
|
||||||
'PrestaShop core is released under the OSL 3.0 while PrestaShop modules and themes are released under the AFL 3.0.' => 'Il core di PrestaShop è rilasicata sollo licenza OSL 3.0 mentre i moduli e i temi prestashop sono rilasciati sotto licenza AFL 3.0',
|
'PrestaShop core is released under the OSL 3.0 while PrestaShop modules and themes are released under the AFL 3.0.' => 'Il core di PrestaShop è rilasicata sollo licenza OSL 3.0 mentre i moduli e i temi prestashop sono rilasciati sotto licenza AFL 3.0',
|
||||||
'I agree to the above terms and conditions.' => 'Accetto i termini e le condizioni dei presenti contratti.',
|
'I agree to the above terms and conditions.' => 'Accetto i termini e le condizioni dei presenti accordi.',
|
||||||
'I agree to participate in improving the solution by sending anonymous information about my configuration.' => 'Accetto di contribuire al miglioramento della soluzione inviando informazioni anonime sulla mia configurazione.',
|
'I agree to participate in improving the solution by sending anonymous information about my configuration.' => 'Accetto di contribuire al miglioramento della piattaforma mediante l\'invio di informazioni anonime sulla mia configurazione.',
|
||||||
'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>.' => 'Se hai domande o dubbi, visita i nostri <a href="%1$s" target="_blank">documenti</a> e <a href="%2$s" target="_blank">il forum dedicato alla nostra comunità</a>.',
|
'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>.' => 'Se hai domande o dubbi, visita la nostra <a href="%1$s" target="_blank">documentazione</a> e il <a href="%2$s" target="_blank">forum dedicato alla nostra comunità</a>.',
|
||||||
'Test message from PrestaShop' => 'Messaggio di prova da parte di Prestashop',
|
'Test message from PrestaShop' => 'Messaggio di prova da parte di Prestashop',
|
||||||
'This is a test message, your server is now available to send email' => 'Questo è un messaggio di prova, il tuo server può ora inviare e-mail',
|
'This is a test message, your server is now available to send email' => 'Questo è un messaggio di prova, il tuo server può ora inviare e-mail',
|
||||||
'%s - Login information' => '%s - credenziali per il login',
|
'%s - Login information' => '%s - credenziali per il login',
|
||||||
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'Si è verificato un errore SQL per l\'entità <i>%1$s</i>: <i>%2$s</i>',
|
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'Si è verificato un errore SQL per l\'entità <i>%1$s</i>: <i>%2$s</i>',
|
||||||
'Cannot create image "%1$s" for entity "%2$s"' => 'Impossibile creare l\'immagine "%1$s" per l\'entità "%2$s"',
|
'Cannot create image "%1$s" for entity "%2$s"' => 'Impossibile creare l\'immagine "%1$s" per l\'entità "%2$s"',
|
||||||
'Cannot create image "%1$s" (bad permissions on folder "%2$s")' => 'Impossibile creare l\'immagine "%1$s" (errore permessi cartella "%2$s")',
|
'Cannot create image "%1$s" (bad permissions on folder "%2$s")' => 'Impossibile creare l\'immagine "%1$s" (errore permessi nella cartella "%2$s")',
|
||||||
'Cannot create image "%s"' => 'Impossibile creare l\'immagine "%s"',
|
'Cannot create image "%s"' => 'Impossibile creare l\'immagine "%s"',
|
||||||
'SQL error on query <i>%s</i>' => 'Errore SQL nella ricerca <i>%s</i>',
|
'SQL error on query <i>%s</i>' => 'Errore SQL nella query <i>%s</i>',
|
||||||
'Server name is not valid' => 'Il nome del server non è valido',
|
'Server name is not valid' => 'Il nome del server non è valido',
|
||||||
'You must enter a database name' => 'Digita il nome del database',
|
'You must enter a database name' => 'Devi inserire il nome del database',
|
||||||
'You must enter a database login' => 'Digita i dati di accesso al database',
|
'You must enter a database login' => 'Devi inserire un nome di accesso al database',
|
||||||
'Tables prefix is invalid' => 'Prefisso tabelle non valido',
|
'Tables prefix is invalid' => 'Prefisso tabelle non valido',
|
||||||
'Wrong engine chosen for MySQL' => 'Il motore selezionato non è valido per MySQL',
|
'Wrong engine chosen for MySQL' => 'Il motore selezionato non è valido per MySQL',
|
||||||
'Cannot convert database data to utf-8' => 'Impossibile convertire i dati del database in utf-8',
|
'Cannot convert database data to utf-8' => 'Impossibile convertire i dati del database in utf-8',
|
||||||
'At least one table with same prefix was already found, please change your prefix or drop your database' => 'È stata trovata almeno un\'altra tabella con lo stesso prefisso. Cambia il prefisso o cancella le altre tabelle esistenti.',
|
'At least one table with same prefix was already found, please change your prefix or drop your database' => 'È stata trovata almeno un\'altra tabella con lo stesso prefisso. Cambia il prefisso o cancella le altre tabelle esistenti.',
|
||||||
'Database Server is not found. Please verify the login, password and server fields' => 'Impossibile connettersi al server del database. Verifica l\'ID, la password e i campi riservati al server',
|
'Database Server is not found. Please verify the login, password and server fields' => 'Impossibile connettersi al server del database. Verifica i campi con il nome di accesso, la password e il server',
|
||||||
'Connection to MySQL server succeeded, but database "%s" not found' => 'La connessione al server MySQL è avvenuta con successo, ma è impossibile trovare il database "%s"',
|
'Connection to MySQL server succeeded, but database "%s" not found' => 'La connessione al server MySQL è avvenuta con successo, ma è impossibile trovare il database "%s"',
|
||||||
'Engine innoDB is not supported by your MySQL server, please use MyISAM' => 'Il motore innoDB non è supportato dal tuo server MySQL. Adopera MyISAM',
|
'Engine innoDB is not supported by your MySQL server, please use MyISAM' => 'Il motore innoDB non è supportato dal tuo server MySQL. Adopera MyISAM',
|
||||||
'%s file is not writable (check permissions)' => 'Il file %s non è scrivibile (verifica i permessi)',
|
'%s file is not writable (check permissions)' => 'Il file %s non è scrivibile (verifica i permessi)',
|
||||||
'%s folder is not writable (check permissions)' => 'La cartella %s non è scrivibile (verifica i permessi)',
|
'%s folder is not writable (check permissions)' => 'La cartella %s non è scrivibile (verifica i permessi)',
|
||||||
'Cannot write settings file' => 'Impossibile generare il file settings',
|
'Cannot write settings file' => 'Impossibile generare il file di impostazioni (settings)',
|
||||||
'Database structure file not found' => 'Struttura del database non trovata',
|
'Database structure file not found' => 'Struttura del database non trovata',
|
||||||
'Cannot create group shop' => 'Impossibile accedere al gruppo del negozio',
|
'Cannot create group shop' => 'Impossibile creare il gruppo negozi',
|
||||||
'Cannot create shop' => 'Impossibile creare il negozio',
|
'Cannot create shop' => 'Impossibile creare il negozio',
|
||||||
'Cannot create shop URL' => 'Impossibile creare l\'URL del negozio',
|
'Cannot create shop URL' => 'Impossibile creare l\'URL del negozio',
|
||||||
'File "language.xml" not found for language iso "%s"' => 'File "language.xml" non trovato per l\'iso "%s"',
|
'File "language.xml" not found for language iso "%s"' => 'File "language.xml" non trovato per la lingua con iso "%s"',
|
||||||
'File "language.xml" not valid for language iso "%s"' => 'File "language.xml" non valido per l\'iso "%s"',
|
'File "language.xml" not valid for language iso "%s"' => 'File "language.xml" non valido per la lingua con iso "%s"',
|
||||||
'Cannot install language "%s"' => 'Impossibile installare la lingua "%s"',
|
'Cannot install language "%s"' => 'Impossibile installare la lingua "%s"',
|
||||||
'Cannot create admin account' => 'Impossibile creare l\'account admin',
|
'Cannot create admin account' => 'Impossibile creare l\'account admin',
|
||||||
'Cannot install module "%s"' => 'Impossibile installare il modulo "%s"',
|
'Cannot install module "%s"' => 'Impossibile installare il modulo "%s"',
|
||||||
'Fixtures class "%s" not found' => 'Classe "%s" per le fixture non trovata',
|
'Fixtures class "%s" not found' => 'Classe fixture "%s" non trovata',
|
||||||
'"%s" must be an instane of "InstallXmlLoader"' => '"%s" deve essere un\'istanza di "InstallXmlLoader"',
|
'"%s" must be an instane of "InstallXmlLoader"' => '"%s" deve essere un\'istanza di "InstallXmlLoader"',
|
||||||
'Information about your Store' => 'Informazioni relative al negozio',
|
'Information about your Store' => 'Informazioni relative al negozio',
|
||||||
'Help us learn more about your store so we can offer you optimal guidance and the best features for your business!' => 'Aiutaci a conoscerti per orientarti al meglio e proporti le funzioni più adatte alla tua attività!',
|
'Help us learn more about your store so we can offer you optimal guidance and the best features for your business!' => 'Aiutaci a conoscerti per orientarti al meglio e proporti le funzioni più adatte alla tua attività!',
|
||||||
'Optional - You can add you logo at a later time.' => 'Facoltativo – Potrai aggiungerlo in un secondo momento.',
|
'Optional - You can add you logo at a later time.' => 'Facoltativo – Potrai aggiungerlo in un secondo momento.',
|
||||||
'Your Account' => 'Il tuo account',
|
'Your Account' => 'Il tuo account',
|
||||||
'This email address will be your username to access your store\'s back office.' => 'Questo indirizzo e-mail sarà l\'ID con cui potrai accedere all’interfaccia di gestione del negozio.',
|
'This email address will be your username to access your store\'s back office.' => 'Questo indirizzo email sarà il tuo nome utente con cui potrai accedere all’interfaccia di gestione del negozio.',
|
||||||
'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 può assisterti regolarmente facendoti pervenire i suoi consigli per ottimizzare la gestione del negozio e sviluppare la tua attività online. Se non desideri ricevere i nostri consigli, ti invitiamo a deselezionare questa casella.',
|
'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 può assisterti regolarmente facendoti pervenire i suoi consigli per ottimizzare la gestione del negozio e sviluppare la tua attività online. Se non desideri ricevere i nostri consigli, deseleziona questa casella.',
|
||||||
'The field %s is limited to %d characters' => 'Il campo %s può comprendere fino a %d caratteri',
|
'The field %s is limited to %d characters' => 'Il campo %s può comprendere fino a %d caratteri',
|
||||||
'An error occurred during logo copy.' => 'Si è verificato un errore durante la copiatura del logo',
|
'An error occurred during logo copy.' => 'Si è verificato un errore durante la copiatura del logo.',
|
||||||
'An error occurred during logo upload.' => 'Si è verificato un errore durante il caricamento del logo',
|
'An error occurred during logo upload.' => 'Si è verificato un errore durante il caricamento del logo.',
|
||||||
'Create default shop and languages' => 'Creazione negozio e lingue per default',
|
'Create default shop and languages' => 'Creazione negozio e lingue di default',
|
||||||
'PHP 5.1.2 or later is not enabled' => 'PHP 5.1.2 o successivo non attivo',
|
'PHP 5.1.2 or later is not enabled' => 'PHP 5.1.2 o successivo non attivo',
|
||||||
'Cannot upload files' => 'Impossibile caricare i file',
|
'Cannot upload files' => 'Impossibile caricare i file',
|
||||||
'Cannot create new files and folders' => 'Impossibile creare nuovi file e cartelle',
|
'Cannot create new files and folders' => 'Impossibile creare nuovi file e cartelle',
|
||||||
'GD Library is not installed' => 'La GD Library non è installata',
|
'GD Library is not installed' => 'La libreria GD non è installata',
|
||||||
'MySQL support is not activated' => 'L\'assistenza di MySQL non è attiva',
|
'MySQL support is not activated' => 'Il supporto MySQL non è attivo',
|
||||||
'Recursive write permissions on files and folders:' => 'Permessi scrittura ricorsiva su file e cartelle:',
|
'Recursive write permissions on files and folders:' => 'Permessi di scrittura ricorsivi su file e cartelle:',
|
||||||
'Cannot open external URLs' => 'Impossibile aprire URL esterne',
|
'Cannot open external URLs' => 'Impossibile aprire URL esterne',
|
||||||
'PHP register global option is on' => 'L\'opzione PHP register global è attiva',
|
'PHP register global option is on' => 'L\'opzione PHP register global è attiva',
|
||||||
'GZIP compression is not activated' => 'La compressione GZIP non è attiva',
|
'GZIP compression is not activated' => 'La compressione GZIP non è attiva',
|
||||||
@@ -214,26 +215,35 @@ return array(
|
|||||||
'PDO MySQL extension is not loaded' => 'L\'estensione PDO MySQL non è caricata',
|
'PDO MySQL extension is not loaded' => 'L\'estensione PDO MySQL non è caricata',
|
||||||
'Cannot copy flag language "%s"' => 'Impossibile copiare la bandiera per la lingua "%s"',
|
'Cannot copy flag language "%s"' => 'Impossibile copiare la bandiera per la lingua "%s"',
|
||||||
'Must be alphanumeric string with at least 8 characters' => 'Deve essere una stringa alfanumerica di almeno 8 caratteri',
|
'Must be alphanumeric string with at least 8 characters' => 'Deve essere una stringa alfanumerica di almeno 8 caratteri',
|
||||||
'Sign-up to the newsletter' => 'Mi abbono alla newsletter',
|
'Sign-up to the newsletter' => 'Abbonamento alla newsletter',
|
||||||
'To use PrestaShop, you must <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Creatingadatabaseforyourshop" target="_blank">create a database</a> to collect all of your store’s data-related activities.' => 'Per usare PrestaShop, devi <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Creatingadatabaseforyourshop" target="_blank">creare un database</a> per riunire tutti i dati inerenti alle attività del tuo negozio.',
|
'To use PrestaShop, you must <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Creatingadatabaseforyourshop" target="_blank">create a database</a> to collect all of your store’s data-related activities.' => 'Per usare PrestaShop, devi <a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Creatingadatabaseforyourshop" target="_blank">creare un database</a> per riunire tutti i dati inerenti alle attività del tuo negozio.',
|
||||||
'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Compila i campi sottostanti per far sì che PrestaShop possa connettersi al tuo database.',
|
'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Compila i campi sottostanti per far sì che PrestaShop possa connettersi al tuo database.',
|
||||||
'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'La porta di default è 3306. Per usare un\'altra porta, digita il numero della porta alla fine del tuo indirizzo di server. Per esempio: "4242".',
|
'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'La porta di default è 3306. Per usare un\'altra porta, digita il numero della porta alla fine dell\'indirizzo server. Ad esempio ":4242".',
|
||||||
'Test your database connection now!' => 'Verifica subito la connessione al tuo database!',
|
'Test your database connection now!' => 'Verifica adesso la connessione al tuo database!',
|
||||||
'If you need some assistance during the installation process, please call our team at %s and one of our experts will be happy to help.' => 'Se si verificano problemi durante il processo di installazione, chiamaci allo %s. Uno dei nostri esperti sarà felice di aiutarti.',
|
'If you need some assistance during the installation process, please call our team at %s and one of our experts will be happy to help.' => 'Se si verificano problemi durante il processo di installazione, chiamaci: %s. Uno dei nostri esperti sarà felice di aiutarti.',
|
||||||
'PrestaShop Installation Assistant' => 'Assistente di Installazione PrestaShop',
|
'PrestaShop Installation Assistant' => 'Assistente di Installazione PrestaShop',
|
||||||
'Contact us!' => 'Contattaci!',
|
'Contact us!' => 'Contattaci!',
|
||||||
'Installation Assistant' => 'Assistente di Installazione',
|
'Installation Assistant' => 'Assistente di Installazione',
|
||||||
'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.' => 'Per usufruire delle numerose funzioni offerte da PrestaShop, leggi i termini e le condizioni dei contratti di licenza. Il core di PrestaShop è pubblicato sotto licenza OSL 3.0, mentre i moduli e i temi sotto licenza AFL 3.0. ',
|
'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.' => 'Per usufruire delle numerose funzioni offerte da PrestaShop, leggi i termini e le condizioni dei contratti di licenza. Il core di PrestaShop è pubblicato sotto licenza OSL 3.0, mentre i moduli e i temi sotto licenza AFL 3.0. ',
|
||||||
'E-mail:' => 'E-mail:',
|
'E-mail:' => 'Email:',
|
||||||
'Print my login information' => 'Stampa delle credenziali per il login',
|
'Print my login information' => 'Stampa le credenziali per il login',
|
||||||
'Display' => 'Visualizza',
|
'Display' => 'Visualizza',
|
||||||
'We are currently checking PrestaShop compatibility with your system environment' => 'Stiamo verificando la compatibilità di PrestaShop con il tuo sistema',
|
'We are currently checking PrestaShop compatibility with your system environment' => 'Stiamo verificando la compatibilità di PrestaShop con il tuo sistema',
|
||||||
'PrestaShop compatibility with your system environment has been verified!' => 'Abbiamo verificato la compatibilità del tuo sistema con PrestaShop!',
|
'PrestaShop compatibility with your system environment has been verified!' => 'La compatibilità del tuo sistema con PrestaShop è stata verificata!',
|
||||||
'Oops! Please correct the item(s) below, and then click "Refresh information" to test the compatibility of your new system.' => 'Correggi i punti seguenti, quindi clicca sul pulsante "Aggiorna" per verificare la compatibilità di PrestaShop con il nuovo sistema.',
|
'Oops! Please correct the item(s) below, and then click "Refresh information" to test the compatibility of your new system.' => 'Ops! Correggi i seguenti punti, quindi clicca sul pulsante "Aggiorna" per verificare la compatibilità di PrestaShop del tuo nuovo sistema.',
|
||||||
'PrestaShop requires at least 32M of memory to run, please check the memory_limit directive in php.ini or contact your host provider' => 'L\'esecuzione di PrestaShop necessita di almeno 32M di memoria. Controlla i limiti della tua memoria in php.ini o contatta il tuo fornitore di hosting',
|
'PrestaShop requires at least 32M of memory to run, please check the memory_limit directive in php.ini or contact your host provider' => 'L\'esecuzione di PrestaShop necessita di almeno 32M di memoria. Controlla la voce memory_limit nel file php.ini o contatta il tuo fornitore di hosting',
|
||||||
'The installation of PrestaShop is quick and easy. In just a few moments, you will become part of a community consisting of more than 150,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 150.000 commercianti. Potrai creare un negozio a tua immagina e facile da gestire giorno dopo giorno.',
|
'The installation of PrestaShop is quick and easy. In just a few moments, you will become part of a community consisting of more than 150,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. In pochi minuti, farai parte di una comunità di oltre 150.000 commercianti. Potrai creare un negozio unico a tuo piacere, facile da gestire giorno dopo giorno.',
|
||||||
'Continue the installation in:' => 'Continua l\'installazione in:',
|
'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!',
|
'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 qui sopra è valida solamente nell\'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',
|
'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',
|
||||||
|
'Database is created' => 'Il database è creato',
|
||||||
|
'Cannot create the database automatically' => 'Non è possibile creare il database automaticamente',
|
||||||
|
'Install modules Addons' => 'Installazione moduli Addons',
|
||||||
|
'Attempt to create the database automatically' => 'Tentativo di creare il database automaticamente',
|
||||||
|
'Country:' => 'Paese:',
|
||||||
|
'Must be letters and numbers with at least 8 characters' => 'Deve contenere lettere e numeri ed essere composta da almeno 8 caratteri',
|
||||||
|
'To install PrestaShop, you need to have JavaScript enabled in your browser.' => 'Per installare PrestaShop, devi avere JavaScript abilitato nel tuo browser.',
|
||||||
|
'To enjoy the many features that are offered for free 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.' => 'Per godere delle svariate funzioni che PrestaShop offre gratuitamente, si prega di leggere le condizioni di licenza qui di seguito. Il nucleo di PrestaShop è rilasciato sotto licenza OSL 3.0, mentre i moduli e i temi sono rilasciati sotto licenza AFL 3.0.',
|
||||||
|
'For security purposes, you must delete the "install" folder.' => 'Per motivi di sicurezza, devi cancellare la cartella "install".',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<tab id="Orders" name="Orders"/>
|
<tab id="Orders" name="Orders"/>
|
||||||
<tab id="Customers" name="Customers"/>
|
<tab id="Customers" name="Customers"/>
|
||||||
<tab id="Price_Rules" name="Price Rules"/>
|
<tab id="Price_Rules" name="Price Rules"/>
|
||||||
<tab id="Shipping" name="Shipping"/>
|
<tab id="Shipping" name="Preferences"/>
|
||||||
<tab id="Localization" name="Localization"/>
|
<tab id="Localization" name="Localization"/>
|
||||||
<tab id="Modules" name="Modules"/>
|
<tab id="Modules" name="Modules"/>
|
||||||
<tab id="Preferences" name="Preferences"/>
|
<tab id="Preferences" name="Preferences"/>
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<tab id="Search" name="Wyszukaj"/>
|
<tab id="Search" name="Wyszukaj"/>
|
||||||
<tab id="Search_Engines" name="Wyszukiwarki"/>
|
<tab id="Search_Engines" name="Wyszukiwarki"/>
|
||||||
<tab id="SEO_URLs" name="Dane URL i SEO"/>
|
<tab id="SEO_URLs" name="Dane URL i SEO"/>
|
||||||
<tab id="Shipping" name="Wysyłka"/>
|
<tab id="Shipping" name="Preferencje"/>
|
||||||
<tab id="Shipping_1" name="Wysyłka"/>
|
<tab id="Shipping_1" name="Wysyłka"/>
|
||||||
<tab id="Shop_URLs" name="Adres URL sklepu"/>
|
<tab id="Shop_URLs" name="Adres URL sklepu"/>
|
||||||
<tab id="Shopping_Carts" name="Koszyk zakupów"/>
|
<tab id="Shopping_Carts" name="Koszyk zakupów"/>
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
return array(
|
return array(
|
||||||
'informations' => array(
|
'informations' => array(
|
||||||
'phone' => '+33 (0)1.40.18.30.04',
|
'phone' => '+33 (0)1.40.18.30.04',
|
||||||
'support' => 'https://www.prestashop.com/pl/wsparcie-techniczne',
|
'support' => 'https://www.prestashop.com/pl/wsparcie-techniczne',
|
||||||
|
'blog' => 'http://www.prestashop.com/blog/pl/'
|
||||||
),
|
),
|
||||||
'translations' => array(
|
'translations' => array(
|
||||||
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'Wystąpił błąd SQL w rekordzie <i>%1$s</i>: <i>%2$s</i>',
|
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'Wystąpił błąd SQL w rekordzie <i>%1$s</i>: <i>%2$s</i>',
|
||||||
@@ -194,5 +195,16 @@ return array(
|
|||||||
'menu_configure' => 'Informacje o sklepie',
|
'menu_configure' => 'Informacje o sklepie',
|
||||||
'menu_process' => 'Instalacja sklepu',
|
'menu_process' => 'Instalacja sklepu',
|
||||||
'Your PHP sessions path is not writable - check with your hosting provider:' => 'Twoja ścieżka sesji PHP jest niezapisywalna - skontaktuj się z dostawcą usług hostingowych:',
|
'Your PHP sessions path is not writable - check with your hosting provider:' => 'Twoja ścieżka sesji PHP jest niezapisywalna - skontaktuj się z dostawcą usług hostingowych:',
|
||||||
|
'To install PrestaShop, you need to have JavaScript enabled in your browser.' => 'Aby zainstalować PrestaShop, musisz mieć włączoną obsługę JavaScript w przeglądarce.',
|
||||||
|
'http://doc.prestashop.com/display/PS15/What+you+need+to+get+started#HowtoenableJavaScript-HowtoenableJavaScript' => 'http://doc.prestashop.com/display/PS15/What+you+need+to+get+started#HowtoenableJavaScript-HowtoenableJavaScript ',
|
||||||
|
'To enjoy the many features that are offered for free 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.' => 'Przed skorzystaniem z darmowych funkcji oferowanych przez PrestaShop zapoznaj się z warunkami licencji. PrestaShop funkcjonuje na licencji OSL 3,0 zaś moduły i szablony na AFL 3,0.',
|
||||||
|
'For security purposes, you must delete the "install" folder.' => 'Ze względów bezpieczeństwa należy usunąć folder \'\'install\'\'.',
|
||||||
|
'http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Completingtheinstallation' => 'http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Completingtheinstallation ',
|
||||||
|
'Database is created' => 'Baza danych jest tworzona ',
|
||||||
|
'Cannot create the database automatically' => 'Nie można automatycznie utworzyć bazy danych',
|
||||||
|
'Install modules Addons' => 'Instalacja modułów Addons',
|
||||||
|
'Attempt to create the database automatically' => 'Próba utworzenia automatycznie bazy danych',
|
||||||
|
'Country:' => 'Kraj',
|
||||||
|
'Must be letters and numbers with at least 8 characters' => 'Minimum 8 znaków z użyciem liter i cyfr',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<tab id="Search" name="Поиск"/>
|
<tab id="Search" name="Поиск"/>
|
||||||
<tab id="Search_Engines" name="Поисковые с-мы"/>
|
<tab id="Search_Engines" name="Поисковые с-мы"/>
|
||||||
<tab id="SEO_URLs" name="SEO и URLs"/>
|
<tab id="SEO_URLs" name="SEO и URLs"/>
|
||||||
<tab id="Shipping" name="Доставка"/>
|
<tab id="Shipping" name="Настройки"/>
|
||||||
<tab id="Shipping_1" name="Доставка"/>
|
<tab id="Shipping_1" name="Доставка"/>
|
||||||
<tab id="Shop_URLs" name="URL магазина"/>
|
<tab id="Shop_URLs" name="URL магазина"/>
|
||||||
<tab id="Shopping_Carts" name="Корзины"/>
|
<tab id="Shopping_Carts" name="Корзины"/>
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
return array(
|
return array(
|
||||||
'informations' => array(
|
'informations' => array(
|
||||||
'phone' => '+33 (0)1.40.18.30.04',
|
'phone' => '+33 (0)1.40.18.30.04',
|
||||||
'support' => 'https://www.prestashop.com/en/support',
|
'support' => 'https://www.prestashop.com/ru/support',
|
||||||
|
'blog' => 'http://www.prestashop.com/blog/ru/'
|
||||||
),
|
),
|
||||||
'translations' => array(
|
'translations' => array(
|
||||||
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'В SQL произошла ошибка для значения <i>%1$s</i>: <i>%2$s</i>',
|
'An SQL error occured for entity <i>%1$s</i>: <i>%2$s</i>' => 'В SQL произошла ошибка для значения <i>%1$s</i>: <i>%2$s</i>',
|
||||||
@@ -231,5 +232,15 @@ return array(
|
|||||||
'menu_welcome' => 'Выберите язык',
|
'menu_welcome' => 'Выберите язык',
|
||||||
'Your PHP sessions path is not writable - check with your hosting provider:' => 'Дисковая память недоступна в письменном виде - обратитесь к Вашему хостинг-провайдеру',
|
'Your PHP sessions path is not writable - check with your hosting provider:' => 'Дисковая память недоступна в письменном виде - обратитесь к Вашему хостинг-провайдеру',
|
||||||
'Install modules Addons' => 'Установка модулей Addons',
|
'Install modules Addons' => 'Установка модулей Addons',
|
||||||
|
'Database is created' => 'База данных создана',
|
||||||
|
'Cannot create the database automatically' => 'Невозможно автоматически создать базу данных',
|
||||||
|
'Attempt to create the database automatically' => 'Попытка автоматического создания базы данных',
|
||||||
|
'Country:' => 'Страна:',
|
||||||
|
'Must be letters and numbers with at least 8 characters' => 'Должен состоять из букв и цифр и содержать минимум 8 символов',
|
||||||
|
'To install PrestaShop, you need to have JavaScript enabled in your browser.' => 'Чтобы установить PrestaShop, Вам нужно включить JavaScript в Вашем браузере.',
|
||||||
|
'http://doc.prestashop.com/display/PS15/What+you+need+to+get+started#HowtoenableJavaScript-HowtoenableJavaScript' => 'http://doc.prestashop.com/display/PS15/What+you+need+to+get+started#HowtoenableJavaScript-HowtoenableJavaScript',
|
||||||
|
'To enjoy the many features that are offered for free 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.' => 'Чтобы пользоваться всем функционалом PrestaShop, прочтите лицензионное соглашение. Ядро PrestaShop разработано на OSL 3.0, модули и темы - на AFL 3.0.',
|
||||||
|
'For security purposes, you must delete the "install" folder.' => 'В целях безопасности, удалите папку "install\'.',
|
||||||
|
'http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Completingtheinstallation' => 'http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Completingtheinstallation',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class InstallModelDatabase extends InstallAbstractModel
|
|||||||
public function createDatabase($server, $database, $login, $password, $dropit = false)
|
public function createDatabase($server, $database, $login, $password, $dropit = false)
|
||||||
{
|
{
|
||||||
$class = Db::getClass();
|
$class = Db::getClass();
|
||||||
return $class::createDatabase($server, $login, $password, $database, $dropit);
|
return call_user_func(array($class, 'createDatabase'), $server, $login, $password, $database, $dropit);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBestEngine($server, $database, $login, $password)
|
public function getBestEngine($server, $database, $login, $password)
|
||||||
|
|||||||
@@ -368,11 +368,14 @@ class InstallModelInstall extends InstallAbstractModel
|
|||||||
public function configureShop(array $data = array())
|
public function configureShop(array $data = array())
|
||||||
{
|
{
|
||||||
// Clear smarty cache
|
// Clear smarty cache
|
||||||
$this->clearSmartyCache();
|
Tools::clearSmartyCache();
|
||||||
|
|
||||||
//clear image cache in tmp folder
|
//clear image cache in tmp folder
|
||||||
Tools::deleteDirectory(_PS_TMP_IMG_DIR_, false);
|
if (file_exists(_PS_TMP_IMG_DIR_))
|
||||||
|
foreach (scandir(_PS_TMP_IMG_DIR_) as $file)
|
||||||
|
if ($file[0] != '.' && $file != 'index.php')
|
||||||
|
Tools::deleteDirectory(_PS_TMP_IMG_DIR_.DIRECTORY_SEPARATOR.$file);
|
||||||
|
|
||||||
$default_data = array(
|
$default_data = array(
|
||||||
'shop_name' => 'My Shop',
|
'shop_name' => 'My Shop',
|
||||||
'shop_activity' => '',
|
'shop_activity' => '',
|
||||||
@@ -395,7 +398,7 @@ class InstallModelInstall extends InstallAbstractModel
|
|||||||
|
|
||||||
// use the old image system if the safe_mod is enabled otherwise the installer will fail with the fixtures installation
|
// use the old image system if the safe_mod is enabled otherwise the installer will fail with the fixtures installation
|
||||||
if (InstallSession::getInstance()->safe_mode)
|
if (InstallSession::getInstance()->safe_mode)
|
||||||
Configuration::updateGlobalValue('PS_LEGACY_IMAGES', 1);
|
Configuration::updateGlobalValue('PS_LEGACY_IMAGES', 1);
|
||||||
|
|
||||||
$id_country = Country::getByIso($data['shop_country']);
|
$id_country = Country::getByIso($data['shop_country']);
|
||||||
|
|
||||||
@@ -494,18 +497,6 @@ class InstallModelInstall extends InstallAbstractModel
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Clear smarty cache folders
|
|
||||||
*/
|
|
||||||
public function clearSmartyCache()
|
|
||||||
{
|
|
||||||
foreach (array(_PS_CACHE_DIR_.'smarty/cache', _PS_CACHE_DIR_.'smarty/compile') as $dir)
|
|
||||||
if (file_exists($dir))
|
|
||||||
foreach (scandir($dir) as $file)
|
|
||||||
if ($file[0] != '.' && $file != 'index.php')
|
|
||||||
@unlink($dir.$file);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getModulesList()
|
public function getModulesList()
|
||||||
{
|
{
|
||||||
// @todo REMOVE DEV MODE
|
// @todo REMOVE DEV MODE
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ CHANGE `module_name` `module_name` VARCHAR(64) NULL DEFAULT NULL;
|
|||||||
/* PHP:remove_tab(AdminRangePrice); */;
|
/* PHP:remove_tab(AdminRangePrice); */;
|
||||||
/* PHP:remove_tab(AdminRangeWeight); */;
|
/* PHP:remove_tab(AdminRangeWeight); */;
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE `PREFIX_log` ADD `id_employee` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `object_id`;
|
ALTER TABLE `PREFIX_log` ADD `id_employee` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `object_id`;
|
||||||
|
|
||||||
SET @id_parent = (SELECT IFNULL(id_tab, 1) FROM `PREFIX_tab` WHERE `class_name` = 'AdminPriceRule' LIMIT 1);
|
SET @id_parent = (SELECT IFNULL(id_tab, 1) FROM `PREFIX_tab` WHERE `class_name` = 'AdminPriceRule' LIMIT 1);
|
||||||
|
|||||||
@@ -1296,13 +1296,10 @@ product_tabs['Suppliers'] = new function(){
|
|||||||
|
|
||||||
// @TODO: a better way to fix the accordion wrong size bug when the selected page is this page
|
// @TODO: a better way to fix the accordion wrong size bug when the selected page is this page
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
$('#suppliers_accordion').accordion();
|
$('#suppliers_accordion').accordion({
|
||||||
// If one second was not enough to display page, another resize is needed
|
collapsible: true,
|
||||||
setTimeout(function() {
|
autoHeight: true,
|
||||||
$('#suppliers_accordion').accordion({
|
heightStyle: "content"});
|
||||||
collapsible: true,
|
|
||||||
autoHeight: true});
|
|
||||||
}, 3000);
|
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
|
||||||
// Resize the accordion once the page is visible because of the bug with accordions initialized
|
// Resize the accordion once the page is visible because of the bug with accordions initialized
|
||||||
@@ -1310,7 +1307,8 @@ product_tabs['Suppliers'] = new function(){
|
|||||||
$('#suppliers_accordion').parents('.product-tab-content').bind('displayed', function(){
|
$('#suppliers_accordion').parents('.product-tab-content').bind('displayed', function(){
|
||||||
$('#suppliers_accordion').accordion({
|
$('#suppliers_accordion').accordion({
|
||||||
collapsible: true,
|
collapsible: true,
|
||||||
autoHeight: true});
|
autoHeight: true,
|
||||||
|
heightStyle: "content"});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1412,13 +1410,19 @@ product_tabs['Warehouses'] = new function(){
|
|||||||
|
|
||||||
// @TODO: a better way to fix the accordion wrong size bug when the selected page is this page
|
// @TODO: a better way to fix the accordion wrong size bug when the selected page is this page
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
$('#warehouse_accordion').accordion();
|
$('#warehouse_accordion').accordion({
|
||||||
}, 500);
|
collapsible: true,
|
||||||
|
autoHeight: true,
|
||||||
|
heightStyle: "content"});
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
// Resize the accordion once the page is visible because of the bug with accordions initialized
|
// Resize the accordion once the page is visible because of the bug with accordions initialized
|
||||||
// inside a display:none block not having the correct size.
|
// inside a display:none block not having the correct size.
|
||||||
$('#warehouse_accordion').parents('.product-tab-content').bind('displayed', function(){
|
$('#warehouse_accordion').parents('.product-tab-content').bind('displayed', function(){
|
||||||
$('#warehouse_accordion').accordion("refresh");
|
$('#warehouse_accordion').accordion({
|
||||||
|
collapsible: true,
|
||||||
|
autoHeight: true,
|
||||||
|
heightStyle: "content"});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
validateAndAddRangeButtonDisplay();
|
|
||||||
bind_inputs();
|
bind_inputs();
|
||||||
initCarrierWizard();
|
initCarrierWizard();
|
||||||
if (parseInt($('input[name="is_free"]:checked').val()))
|
if (parseInt($('input[name="is_free"]:checked').val()))
|
||||||
@@ -45,7 +44,8 @@ function initCarrierWizard()
|
|||||||
'onLeaveStep' : onLeaveStepCallback,
|
'onLeaveStep' : onLeaveStepCallback,
|
||||||
'onFinish' : onFinishCallback,
|
'onFinish' : onFinishCallback,
|
||||||
'transitionEffect' : 'slideleft',
|
'transitionEffect' : 'slideleft',
|
||||||
'enableAllSteps' : enableAllSteps
|
'enableAllSteps' : enableAllSteps,
|
||||||
|
'keyNavigation' : false
|
||||||
});
|
});
|
||||||
displayRangeType();
|
displayRangeType();
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,7 @@ function displayRangeType()
|
|||||||
$('.price_unit').show();
|
$('.price_unit').show();
|
||||||
$('.weight_unit').hide();
|
$('.weight_unit').hide();
|
||||||
}
|
}
|
||||||
|
is_freeClick($('input[name="is_free"]:checked'));
|
||||||
$('.range_type').html(string);
|
$('.range_type').html(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,8 +105,8 @@ function onLeaveStepCallback(obj, context)
|
|||||||
{
|
{
|
||||||
if (context.toStep == nbr_steps)
|
if (context.toStep == nbr_steps)
|
||||||
displaySummary();
|
displaySummary();
|
||||||
|
|
||||||
return validateSteps(context.fromStep); // return false to stay on step and true to continue navigation
|
return validateSteps(context.fromStep, context.toStep); // return false to stay on step and true to continue navigation
|
||||||
}
|
}
|
||||||
|
|
||||||
function displaySummary()
|
function displaySummary()
|
||||||
@@ -127,39 +127,49 @@ function displaySummary()
|
|||||||
|
|
||||||
// Tax and calculation mode for the shipping cost
|
// Tax and calculation mode for the shipping cost
|
||||||
tmp = summary_translation_shipping_cost.replace('@s2', '<strong>' + $('#id_tax_rules_group option:selected').text() + '</strong>');
|
tmp = summary_translation_shipping_cost.replace('@s2', '<strong>' + $('#id_tax_rules_group option:selected').text() + '</strong>');
|
||||||
if ($('#billing_price').attr('checked'))
|
|
||||||
tmp = tmp.replace('@s1', summary_translation_price);
|
if ($('#billing_price').attr('checked'))
|
||||||
else if ($('#billing_weight').attr('checked'))
|
tmp = tmp.replace('@s1', summary_translation_price);
|
||||||
tmp = tmp.replace('@s1', summary_translation_weight);
|
else if ($('#billing_weight').attr('checked'))
|
||||||
else
|
tmp = tmp.replace('@s1', summary_translation_weight);
|
||||||
tmp = tmp.replace('@s1', '<strong>' + summary_translation_undefined + '</strong>');
|
else
|
||||||
|
tmp = tmp.replace('@s1', '<strong>' + summary_translation_undefined + '</strong>');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$('#summary_shipping_cost').html(tmp);
|
$('#summary_shipping_cost').html(tmp);
|
||||||
|
|
||||||
// Weight or price ranges
|
// Weight or price ranges
|
||||||
$('#summary_range').html(summary_translation_range);
|
$('#summary_range').html(summary_translation_range+' '+summary_translation_range_limit);
|
||||||
|
|
||||||
|
|
||||||
|
if ($('input[name="shipping_method"]:checked').val() == 1)
|
||||||
|
unit = PS_WEIGHT_UNIT;
|
||||||
|
else
|
||||||
|
unit = currency_sign;
|
||||||
|
|
||||||
var range_inf = summary_translation_undefined;
|
var range_inf = summary_translation_undefined;
|
||||||
var range_sup = summary_translation_undefined;
|
var range_sup = summary_translation_undefined;
|
||||||
|
|
||||||
/*
|
$('tr.range_inf td input').each( function()
|
||||||
$('input[name$="range_inf[]"]').each(function(){
|
{
|
||||||
if (!isNaN(parseFloat($(this).val())) && (range_inf == summary_translation_undefined || range_inf < $(this).val()))
|
if (!isNaN(parseFloat($(this).val())) && (range_inf == summary_translation_undefined || range_inf > $(this).val()))
|
||||||
range_inf = $(this).val();
|
range_inf = $(this).val();
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
range_inf = $('tr.range_inf td input:first').val();
|
|
||||||
range_sup = $('tr.range_sup td input:last').val();
|
|
||||||
|
|
||||||
$('input[name$="range_sup[]"]').each(function(){
|
$('tr.range_sup td input').each( function(){
|
||||||
if (!isNaN(parseFloat($(this).val())) && (range_sup == summary_translation_undefined || range_sup > $(this).val()))
|
if (!isNaN(parseFloat($(this).val())) && (range_sup == summary_translation_undefined || range_sup < $(this).val()))
|
||||||
range_sup = $(this).val();
|
range_sup = $(this).val();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#summary_range').html(
|
$('#summary_range').html(
|
||||||
$('#summary_range').html()
|
$('#summary_range').html()
|
||||||
.replace('@s1', '<strong>' + range_inf + '</strong>')
|
.replace('@s1', '<strong>' + range_inf +' '+ unit + '</strong>')
|
||||||
.replace('@s2', '<strong>' + range_sup + '</strong>')
|
.replace('@s2', '<strong>' + range_sup +' '+ unit + '</strong>')
|
||||||
.replace('@s3', '<strong>' + $('#range_behavior option:selected').text().toLowerCase() + '</strong>')
|
.replace('@s3', '<strong>' + $('#range_behavior option:selected').text().toLowerCase() + '</strong>')
|
||||||
);
|
);
|
||||||
|
if ($('#is_free_on').attr('checked'))
|
||||||
|
$('span.is_free').hide();
|
||||||
// Delivery zones
|
// Delivery zones
|
||||||
$('#summary_zones').html('');
|
$('#summary_zones').html('');
|
||||||
$('.input_zone').each(function(){
|
$('.input_zone').each(function(){
|
||||||
@@ -182,34 +192,43 @@ $('input[name$="range_inf[]"]').each(function(){
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateSteps(step_number)
|
function validateSteps(fromStep, toStep)
|
||||||
{
|
{
|
||||||
$('.wizard_error').remove();
|
|
||||||
var is_ok = true;
|
var is_ok = true;
|
||||||
form = $('#carrier_wizard #step-'+step_number+' form');
|
if ((multistore_enable && fromStep == 3) || (!multistore_enable && fromStep == 2))
|
||||||
$.ajax({
|
{
|
||||||
type:"POST",
|
if (toStep > fromStep && !$('#is_free_on').attr('checked') && !validateRange(2))
|
||||||
url : validate_url,
|
is_ok = false;
|
||||||
async: false,
|
}
|
||||||
dataType: 'json',
|
|
||||||
data : form.serialize()+'&step_number='+step_number+'&action=validate_step&ajax=1',
|
$('.wizard_error').remove();
|
||||||
success : function(datas)
|
if (is_ok)
|
||||||
{
|
{
|
||||||
if (datas.has_error)
|
form = $('#carrier_wizard #step-'+fromStep+' form');
|
||||||
|
$.ajax({
|
||||||
|
type:"POST",
|
||||||
|
url : validate_url,
|
||||||
|
async: false,
|
||||||
|
dataType: 'json',
|
||||||
|
data : form.serialize()+'&step_number='+fromStep+'&action=validate_step&ajax=1',
|
||||||
|
success : function(datas)
|
||||||
{
|
{
|
||||||
is_ok = false;
|
if (datas.has_error)
|
||||||
|
{
|
||||||
$('input').focus( function () {
|
is_ok = false;
|
||||||
$(this).removeClass('field_error');
|
|
||||||
});
|
$('input').focus( function () {
|
||||||
displayError(datas.errors, step_number);
|
$(this).removeClass('field_error');
|
||||||
resizeWizard();
|
});
|
||||||
|
displayError(datas.errors, fromStep);
|
||||||
|
resizeWizard();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
||||||
|
jAlert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
|
||||||
}
|
}
|
||||||
},
|
});
|
||||||
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
}
|
||||||
jAlert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return is_ok;
|
return is_ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,21 +271,6 @@ function bind_inputs()
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
|
||||||
$('#validate_range_button').off('click').on('click', function () {
|
|
||||||
index = $('tr.fees_all td:last').index();
|
|
||||||
if (validateRange(index))
|
|
||||||
{
|
|
||||||
enableRange(index);
|
|
||||||
$('.currency_sign').show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
disableRange(index);
|
|
||||||
validateAndAddRangeButtonDisplay();
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
|
|
||||||
$('tr.fees td input:checkbox').off('change').on('change', function () {
|
$('tr.fees td input:checkbox').off('change').on('change', function () {
|
||||||
|
|
||||||
if($(this).is(':checked'))
|
if($(this).is(':checked'))
|
||||||
@@ -294,11 +298,16 @@ $('#validate_range_button').off('click').on('click', function () {
|
|||||||
enableRange(index);
|
enableRange(index);
|
||||||
else
|
else
|
||||||
disableRange(index);
|
disableRange(index);
|
||||||
validateAndAddRangeButtonDisplay();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('tr.fees_all td input:text').keypress( function (evn) {
|
||||||
|
index = $(this).parent('td').index();
|
||||||
|
if (evn.keyCode == 13)
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
$('tr.range_sup td input:text, tr.range_inf td input:text').typeWatch({
|
$('tr.range_sup td input:text, tr.range_inf td input:text').typeWatch({
|
||||||
captureLength: 0,
|
captureLength: 0,
|
||||||
highlight: false,
|
highlight: false,
|
||||||
@@ -306,10 +315,15 @@ $('#validate_range_button').off('click').on('click', function () {
|
|||||||
callback: function() {
|
callback: function() {
|
||||||
|
|
||||||
index = $(this.el).parent('td').index();
|
index = $(this.el).parent('td').index();
|
||||||
if (validateRange(index))
|
range_sup = $('tr.range_sup td:eq('+index+')').children('input:text').val().trim();
|
||||||
enableRange(index);
|
range_inf = $('tr.range_inf td:eq('+index+')').children('input:text').val().trim();
|
||||||
else
|
if (range_sup != '' && range_inf != '')
|
||||||
disableRange(index);
|
{
|
||||||
|
if (validateRange(index))
|
||||||
|
enableRange(index);
|
||||||
|
else
|
||||||
|
disableRange(index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -379,8 +393,9 @@ function showFees()
|
|||||||
{
|
{
|
||||||
//enable only if zone is active
|
//enable only if zone is active
|
||||||
tr = $(this).parent('tr');
|
tr = $(this).parent('tr');
|
||||||
if ($(tr).index() > 2 && $(tr).find('td:eq(1) input').attr('checked') && $('tr.fees_all td:eq('+$(this).index()+')').hasClass('validated') || $(tr).hasClass('range_sup') || $(tr).hasClass('range_inf'))
|
validate = $('tr.fees_all td:eq('+$(this).index()+')').hasClass('validated');
|
||||||
$(this).find('input:text').val('').removeAttr('disabled');
|
if ($(tr).index() > 2 && $(tr).find('td:eq(1) input').attr('checked') && validate || !$(tr).hasClass('range_sup') || !$(tr).hasClass('range_inf'))
|
||||||
|
$(this).find('input:text').removeAttr('disabled');
|
||||||
|
|
||||||
$(this).find('input:text, button').css('background-color', '').css('border-color', '');
|
$(this).find('input:text, button').css('background-color', '').css('border-color', '');
|
||||||
$(this).find('button').css('background-color', '').css('border-color', '').removeAttr('disabled');
|
$(this).find('button').css('background-color', '').css('border-color', '').removeAttr('disabled');
|
||||||
@@ -456,12 +471,26 @@ function validateRange(index)
|
|||||||
return is_ok;
|
return is_ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function enableZone(index)
|
||||||
|
{
|
||||||
|
$('tr.fees').each( function () {
|
||||||
|
$(this).find('td:eq('+index+')').children('input').removeAttr('disabled');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function disableZone(index)
|
||||||
|
{
|
||||||
|
$('tr.fees').each( function () {
|
||||||
|
$(this).find('td:eq('+index+')').children('input').attr('disabled', 'disabled');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function enableRange(index)
|
function enableRange(index)
|
||||||
{
|
{
|
||||||
$('tr.fees').each( function () {
|
$('tr.fees').each( function () {
|
||||||
//only enable fees for enabled zones
|
//only enable fees for enabled zones
|
||||||
if ($(this).children('td').children('input:checkbox').attr('checked') == 'checked')
|
if ($(this).children('td').children('input:checkbox').attr('checked') == 'checked')
|
||||||
$(this).children('td:eq('+index+')').children('input').removeAttr('disabled');
|
enableZone(index);
|
||||||
});
|
});
|
||||||
$('span.fees_all').show();
|
$('span.fees_all').show();
|
||||||
$('tr.fees_all td:eq('+index+')').children('input').show().removeAttr('disabled');
|
$('tr.fees_all td:eq('+index+')').children('input').show().removeAttr('disabled');
|
||||||
@@ -476,7 +505,7 @@ function disableRange(index)
|
|||||||
$('tr.fees').each( function () {
|
$('tr.fees').each( function () {
|
||||||
//only enable fees for enabled zones
|
//only enable fees for enabled zones
|
||||||
if ($(this).children('td').children('input:checkbox').attr('checked') == 'checked')
|
if ($(this).children('td').children('input:checkbox').attr('checked') == 'checked')
|
||||||
$(this).children('td:eq('+index+')').children('input').attr('disabled', 'disabled');
|
disableZone(index);
|
||||||
});
|
});
|
||||||
$('tr.fees_all td:eq('+index+')').children('input').attr('disabled', 'disabled');
|
$('tr.fees_all td:eq('+index+')').children('input').attr('disabled', 'disabled');
|
||||||
$('tr.fees_all td:eq('+index+')').removeClass('validated').addClass('not_validated');
|
$('tr.fees_all td:eq('+index+')').removeClass('validated').addClass('not_validated');
|
||||||
@@ -503,7 +532,6 @@ function add_new_range()
|
|||||||
});
|
});
|
||||||
$('tr.delete_range td:last').after('<td class="center"><button class="button">'+labelDelete+'</button</td>');
|
$('tr.delete_range td:last').after('<td class="center"><button class="button">'+labelDelete+'</button</td>');
|
||||||
|
|
||||||
validateAndAddRangeButtonDisplay();
|
|
||||||
bind_inputs();
|
bind_inputs();
|
||||||
rebuildTabindex();
|
rebuildTabindex();
|
||||||
displayRangeType();
|
displayRangeType();
|
||||||
@@ -541,22 +569,7 @@ function rebuildTabindex()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateAndAddRangeButtonDisplay()
|
function repositionRange(current_index, new_index)
|
||||||
{
|
|
||||||
return;
|
|
||||||
if ($('tr.fees_all td:last').hasClass('validated'))
|
|
||||||
{
|
|
||||||
$('.validate_range').hide();
|
|
||||||
$('.new_range').show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$('.validate_range').show();
|
|
||||||
$('.new_range').hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function reorderRange(current_index, new_index)
|
|
||||||
{
|
{
|
||||||
$('tr.range_sup, tr.range_inf, tr.fees_all, tr.fees, tr.delete_range ').each(function () {
|
$('tr.range_sup, tr.range_inf, tr.fees_all, tr.fees, tr.delete_range ').each(function () {
|
||||||
$(this).find('td:eq('+current_index+')').each( function () {
|
$(this).find('td:eq('+current_index+')').each( function () {
|
||||||
@@ -566,11 +579,13 @@ function reorderRange(current_index, new_index)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkRangeContinuity()
|
function checkRangeContinuity(reordering)
|
||||||
{
|
{
|
||||||
|
return true;
|
||||||
|
reordering = typeof reordering !== 'undefined' ? reordering : false;
|
||||||
res = true;
|
res = true;
|
||||||
return true;//TODO
|
|
||||||
$('tr.range_sup td').not('.range_type, .range_sign, tr.range_sup').each( function ()
|
$('tr.range_sup td').not('.range_type, .range_sign').each( function ()
|
||||||
{
|
{
|
||||||
index = $(this).index();
|
index = $(this).index();
|
||||||
if (index > 2)
|
if (index > 2)
|
||||||
@@ -581,11 +596,58 @@ function checkRangeContinuity()
|
|||||||
prev_range_sup = parseFloat($('tr.range_sup td:eq('+prev_index+')').children('input:text').val().trim());
|
prev_range_sup = parseFloat($('tr.range_sup td:eq('+prev_index+')').children('input:text').val().trim());
|
||||||
prev_range_inf = parseFloat($('tr.range_inf td:eq('+prev_index+')').children('input:text').val().trim());
|
prev_range_inf = parseFloat($('tr.range_inf td:eq('+prev_index+')').children('input:text').val().trim());
|
||||||
if (range_inf < prev_range_inf || range_sup < prev_range_sup)
|
if (range_inf < prev_range_inf || range_sup < prev_range_sup)
|
||||||
|
{
|
||||||
res = false;
|
res = false;
|
||||||
|
if (reordering)
|
||||||
|
{
|
||||||
|
new_position = getCorrectRangePosistion(range_inf, range_sup);
|
||||||
|
if (new_position)
|
||||||
|
repositionRange(index, new_position);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (res)
|
if (res)
|
||||||
$('.ranges_not_follow').fadeOut();
|
$('.ranges_not_follow').fadeOut();
|
||||||
else
|
else
|
||||||
$('.ranges_not_follow').fadeIn();
|
$('.ranges_not_follow').fadeIn();
|
||||||
|
resizeWizard();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCorrectRangePosistion(current_inf, current_sup)
|
||||||
|
{
|
||||||
|
new_position = false;
|
||||||
|
$('tr.range_sup td').not('.range_type, .range_sign').each( function ()
|
||||||
|
{
|
||||||
|
index = $(this).index();
|
||||||
|
range_sup = parseFloat($('tr.range_sup td:eq('+index+')').children('input:text').val().trim());
|
||||||
|
next_range_inf = 0
|
||||||
|
if ($('tr.range_inf td:eq('+index+1+')').length)
|
||||||
|
next_range_inf = parseFloat($('tr.range_inf td:eq('+index+1+')').children('input:text').val().trim());
|
||||||
|
if (current_inf >= range_sup && current_sup < next_range_inf)
|
||||||
|
new_position = index;
|
||||||
|
});
|
||||||
|
return new_position;
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkAllZones(elt)
|
||||||
|
{
|
||||||
|
if($(elt).is(':checked'))
|
||||||
|
{
|
||||||
|
$('.input_zone').attr('checked', 'checked');
|
||||||
|
$('.fees input:text').each( function () {
|
||||||
|
index = $(this).parent().index();
|
||||||
|
if ($('tr.fees_all td:eq('+index+')').hasClass('validated'))
|
||||||
|
{
|
||||||
|
$(this).removeAttr('disabled');
|
||||||
|
$('.fees_all td:eq('+index+') input:text').removeAttr('disabled');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('.input_zone').removeAttr('checked');
|
||||||
|
$('.fees input:text, .fees_all input:text').attr('disabled', 'disabled').val('');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -26,38 +26,35 @@
|
|||||||
|
|
||||||
global $_LANGMAIL;
|
global $_LANGMAIL;
|
||||||
$_LANGMAIL = array();
|
$_LANGMAIL = array();
|
||||||
$_LANGMAIL['Welcome!'] = 'Welcome!';
|
|
||||||
$_LANGMAIL['Message from contact form'] = 'Customer message from contact form';
|
|
||||||
$_LANGMAIL['Your message has been correctly sent'] = 'Your message has been sent successfully';
|
|
||||||
$_LANGMAIL['New credit slip regarding your order'] = 'New credit slip regarding your order';
|
|
||||||
$_LANGMAIL['Virtual product to download'] = 'Virtual product(s) available for download';
|
$_LANGMAIL['Virtual product to download'] = 'Virtual product(s) available for download';
|
||||||
$_LANGMAIL['Fwd: Customer message'] = 'Fwd: Customer message';
|
|
||||||
$_LANGMAIL['Your guest account has been transformed to customer account'] = 'Your guest account has been transformed to a customer account';
|
$_LANGMAIL['Your guest account has been transformed to customer account'] = 'Your guest account has been transformed to a customer account';
|
||||||
$_LANGMAIL['Package in transit'] = 'Package in transit';
|
|
||||||
$_LANGMAIL['[Log'] = '[Log';
|
|
||||||
$_LANGMAIL['Order confirmation'] = 'Order confirmation';
|
|
||||||
$_LANGMAIL['Message from a customer'] = 'Message from a customer';
|
|
||||||
$_LANGMAIL['New message regarding your order'] = 'New message regarding your order';
|
|
||||||
$_LANGMAIL['Your order return state has changed'] = 'Your order return status has changed';
|
$_LANGMAIL['Your order return state has changed'] = 'Your order return status has changed';
|
||||||
$_LANGMAIL['Your password'] = 'Your password has been reset';
|
|
||||||
$_LANGMAIL['Password query confirmation'] = 'Forgot password';
|
$_LANGMAIL['Password query confirmation'] = 'Forgot password';
|
||||||
$_LANGMAIL['An answer to your message is available'] = 'New response to your inquiry';
|
|
||||||
$_LANGMAIL['New voucher regarding your order %s'] = 'New voucher for your order %s';
|
$_LANGMAIL['New voucher regarding your order %s'] = 'New voucher for your order %s';
|
||||||
$_LANGMAIL['Happy birthday!'] = 'Happy birthday!';
|
|
||||||
$_LANGMAIL['Newsletter confirmation'] = 'Newsletter subscription confirmation';
|
$_LANGMAIL['Newsletter confirmation'] = 'Newsletter subscription confirmation';
|
||||||
$_LANGMAIL['Newsletter voucher'] = 'Newsletter voucher';
|
|
||||||
$_LANGMAIL['Your wishlist\\\'s link'] = 'Your wishlist\'s link';
|
|
||||||
$_LANGMAIL['Message from '] = 'Message from ';
|
|
||||||
$_LANGMAIL['$subject'] = '';
|
|
||||||
$_LANGMAIL['Your cart and your discount'] = 'Discount offer for items in your cart';
|
$_LANGMAIL['Your cart and your discount'] = 'Discount offer for items in your cart';
|
||||||
$_LANGMAIL['Thanks for your order'] = 'Thanks for your order!';
|
$_LANGMAIL['Thanks for your order'] = 'Thanks for your order!';
|
||||||
$_LANGMAIL['You are one of our best customers'] = 'Thank you for being one of our best customers';
|
$_LANGMAIL['You are one of our best customers'] = 'Thank you for being one of our best customers';
|
||||||
$_LANGMAIL['We miss you'] = 'We miss you';
|
|
||||||
$_LANGMAIL['Product available'] = 'Your watched product is now available';
|
$_LANGMAIL['Product available'] = 'Your watched product is now available';
|
||||||
$_LANGMAIL['Product out of stock'] = 'One or more products are almost out of stock';
|
$_LANGMAIL['Product out of stock'] = 'One or more products are almost out of stock';
|
||||||
$_LANGMAIL['Error reporting from your PayPal module'] = 'Error reporting from your PayPal module';
|
$_LANGMAIL['We miss you'] = 'We miss you';
|
||||||
|
$_LANGMAIL['Email verification'] = 'Email verification';
|
||||||
|
$_LANGMAIL['Newsletter voucher'] = 'Newsletter voucher';
|
||||||
|
$_LANGMAIL['Stock coverage'] = 'Stock coverage';
|
||||||
$_LANGMAIL['Congratulations!'] = 'Congratulations!';
|
$_LANGMAIL['Congratulations!'] = 'Congratulations!';
|
||||||
$_LANGMAIL['Referral Program'] = 'Referral program';
|
$_LANGMAIL['Your wishlist\\\'s link'] = 'Your wishlist\'s link';
|
||||||
$_LANGMAIL['A friend sent you a link to'] = 'A friend sent you a link to';
|
$_LANGMAIL['Message from %1$s %2$s'] = 'Message from %1$s %2$s';
|
||||||
|
$_LANGMAIL['Your order has been changed'] = 'Your order has been changed';
|
||||||
?>
|
$_LANGMAIL['Welcome!'] = 'Welcome!';
|
||||||
|
$_LANGMAIL['New credit slip regarding your order'] = 'New credit slip regarding your order';
|
||||||
|
$_LANGMAIL['Fwd: Customer message'] = 'Fwd: Customer message';
|
||||||
|
$_LANGMAIL['Package in transit'] = 'Package in transit';
|
||||||
|
$_LANGMAIL['Order confirmation'] = 'Order confirmation';
|
||||||
|
$_LANGMAIL['Message from a customer'] = 'Message from a customer';
|
||||||
|
$_LANGMAIL['New message regarding your order'] = 'New message regarding your order';
|
||||||
|
$_LANGMAIL['Process the payment of your order'] = 'Process the payment of your order';
|
||||||
|
$_LANGMAIL['Log: You have a new alert from your shop'] = 'Log: You have a new alert from your shop';
|
||||||
|
$_LANGMAIL['Your new password'] = 'Your new password';
|
||||||
|
$_LANGMAIL['An answer to your message is available #ct%1$s #tc%2$s'] = 'An answer to your message is available #ct%1$s #tc%2$s';
|
||||||
|
$_LANGMAIL['%1$s sent you a link to %2$s'] = '%1$s sent you a link to %2$s';
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<module>
|
<module>
|
||||||
<name>blockadvertising</name>
|
<name>blockadvertising</name>
|
||||||
<displayName><![CDATA[Bloc publicité]]></displayName>
|
<displayName><![CDATA[Block advertising]]></displayName>
|
||||||
<version><![CDATA[0.5]]></version>
|
<version><![CDATA[0.5]]></version>
|
||||||
<description><![CDATA[Ajoute un bloc affichant une publicité]]></description>
|
<description><![CDATA[Adds an advertisement block to selected sections of your e-commerce webiste.]]></description>
|
||||||
<author><![CDATA[PrestaShop]]></author>
|
<author><![CDATA[PrestaShop]]></author>
|
||||||
<tab><![CDATA[advertising_marketing]]></tab>
|
<tab><![CDATA[advertising_marketing]]></tab>
|
||||||
<is_configurable>1</is_configurable>
|
<is_configurable>1</is_configurable>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<module>
|
<module>
|
||||||
<name>blockcart</name>
|
<name>blockcart</name>
|
||||||
<displayName><![CDATA[Bloc panier]]></displayName>
|
<displayName><![CDATA[Cart block]]></displayName>
|
||||||
<version><![CDATA[1.2]]></version>
|
<version><![CDATA[1.2]]></version>
|
||||||
<description><![CDATA[Ajoute un bloc avec le contenu du panier du client]]></description>
|
<description><![CDATA[Adds a block containing the customer's shopping cart.]]></description>
|
||||||
<author><![CDATA[PrestaShop]]></author>
|
<author><![CDATA[PrestaShop]]></author>
|
||||||
<tab><![CDATA[front_office_features]]></tab>
|
<tab><![CDATA[front_office_features]]></tab>
|
||||||
<is_configurable>1</is_configurable>
|
<is_configurable>1</is_configurable>
|
||||||
|
|||||||
@@ -24,7 +24,8 @@
|
|||||||
*}
|
*}
|
||||||
|
|
||||||
<li {if isset($last) && $last == 'true'}class="last"{/if}>
|
<li {if isset($last) && $last == 'true'}class="last"{/if}>
|
||||||
<a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|strip_tags|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a>
|
<a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if}
|
||||||
|
title="{$node.desc|strip_tags|trim|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a>
|
||||||
{if $node.children|@count > 0}
|
{if $node.children|@count > 0}
|
||||||
<ul>
|
<ul>
|
||||||
{foreach from=$node.children item=child name=categoryTreeBranch}
|
{foreach from=$node.children item=child name=categoryTreeBranch}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user