fix conflict
This commit is contained in:
commit
7065edffe4
@ -3,32 +3,56 @@ require_once(dirname(__FILE__).'/../config/config.inc.php');
|
|||||||
require_once(dirname(__FILE__).'/init.php');
|
require_once(dirname(__FILE__).'/init.php');
|
||||||
|
|
||||||
if($cookie->isLoggedBack() && $cart = Tools::getValue('id_cart')) {
|
if($cookie->isLoggedBack() && $cart = Tools::getValue('id_cart')) {
|
||||||
$address = Db::getInstance()->ExecuteS('SELECT * FROM ps_socolissimo_delivery_info WHERE id_cart = '.pSQL(intval(Tools::getValue('id_cart'))));
|
$address = Db::getInstance()->getRow('
|
||||||
if(count($address) > 0) {
|
SELECT *
|
||||||
$address = $address[0];
|
FROM `'._DB_PREFIX_.'socolissimo_delivery_info`
|
||||||
|
WHERE id_cart = '.pSQL(intval(Tools::getValue('id_cart'))).'
|
||||||
|
');
|
||||||
|
if($address) {
|
||||||
|
if(Tools::getValue('getPR')
|
||||||
|
&& ($h_xcoords = (float) Tools::getValue('h_xcoords'))
|
||||||
|
&& ($h_ycoords = (float) Tools::getValue('h_ycoords'))) {
|
||||||
|
$pr_list = array();
|
||||||
|
// ± 10km radius
|
||||||
|
header('Content-Type: text/json');
|
||||||
|
echo json_encode(Db::getInstance()->ExecuteS('
|
||||||
|
SELECT *
|
||||||
|
FROM `'._DB_PREFIX_.'lapostews_pr`
|
||||||
|
WHERE `ycoords` >= '.(float) $h_ycoords.' - 0.02
|
||||||
|
AND `ycoords` <= '.(float) $h_ycoords.' + 0.02
|
||||||
|
AND `xcoords` >= '.(float) $h_xcoords.' - 0.01
|
||||||
|
AND `xcoords` <= '.(float) $h_xcoords.' + 0.01
|
||||||
|
'));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
if(isset($_POST['submitSC'])) {
|
if(isset($_POST['submitSC'])) {
|
||||||
Db::getInstance()->Execute('UPDATE ps_socolissimo_delivery_info SET
|
Db::getInstance()->Execute('UPDATE ps_socolissimo_delivery_info SET
|
||||||
delivery_mode = "'.pSQL(Tools::getValue('delivery_mode', '')).'",
|
delivery_mode = "'.pSQL(Tools::getValue('delivery_mode', '')).'",
|
||||||
prname = "'.pSQL(Tools::getValue('prname', '')).'",
|
prname = "'.pSQL(Tools::getValue('prname', '')).'",
|
||||||
prfirstname = "'.pSQL(Tools::getValue('prfirstname', '')).'",
|
prfirstname = "'.pSQL(Tools::getValue('prfirstname', '')).'",
|
||||||
cecompanyname = "'.pSQL(Tools::getValue('cecompanyname', '')).'",
|
cecompanyname = "'.pSQL(Tools::getValue('cecompanyname', '')).'",
|
||||||
prcompladress = "'.pSQL(Tools::getValue('prcompladress', '')).'",
|
cename = "'.pSQL(Tools::getValue('cename', '')).'",
|
||||||
pradress1 = "'.pSQL(Tools::getValue('pradress1', '')).'",
|
cefirstname = "'.pSQL(Tools::getValue('cefirstname', '')).'",
|
||||||
pradress2 = "'.pSQL(Tools::getValue('pradress2', '')).'",
|
prcompladress = "'.pSQL(Tools::getValue('prcompladress', '')).'",
|
||||||
pradress3 = "'.pSQL(Tools::getValue('pradress3', '')).'",
|
pradress1 = "'.pSQL(Tools::getValue('pradress1', '')).'",
|
||||||
pradress4 = "'.pSQL(Tools::getValue('pradress4', '')).'",
|
pradress2 = "'.pSQL(Tools::getValue('pradress2', '')).'",
|
||||||
przipcode = "'.pSQL(Tools::getValue('przipcode', '')).'",
|
pradress3 = "'.pSQL(Tools::getValue('pradress3', '')).'",
|
||||||
prtown = "'.pSQL(Tools::getValue('prtown', '')).'",
|
pradress4 = "'.pSQL(Tools::getValue('pradress4', '')).'",
|
||||||
cephonenumber = "'.pSQL(Tools::getValue('cephonenumber', '')).'",
|
przipcode = "'.pSQL(Tools::getValue('przipcode', '')).'",
|
||||||
ceemail = "'.pSQL(Tools::getValue('ceemail', '')).'",
|
prtown = "'.pSQL(Tools::getValue('prtown', '')).'",
|
||||||
cedeliveryinformation = "'.pSQL(Tools::getValue('cedeliveryinformation', '')).'",
|
cephonenumber = "'.pSQL(Tools::getValue('cephonenumber', '')).'",
|
||||||
cedoorcode1 = "'.pSQL(Tools::getValue('cedoorcode1', '')).'",
|
ceemail = "'.pSQL(Tools::getValue('ceemail', '')).'",
|
||||||
cedoorcode2 = "'.pSQL(Tools::getValue('cedoorcode2', '')).'",
|
cedeliveryinformation = "'.pSQL(Tools::getValue('cedeliveryinformation', '')).'",
|
||||||
prid = "'.pSQL(Tools::getValue('prid', '')).'"
|
cedoorcode1 = "'.pSQL(Tools::getValue('cedoorcode1', '')).'",
|
||||||
WHERE id_cart = '.pSQL(intval(Tools::getValue('id_cart'))));
|
cedoorcode2 = "'.pSQL(Tools::getValue('cedoorcode2', '')).'",
|
||||||
}
|
prid = "'.pSQL(Tools::getValue('prid', '')).'"
|
||||||
|
WHERE id_cart = '.pSQL(intval(Tools::getValue('id_cart'))));
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
<!doctype html>
|
||||||
<html><head>
|
<html><head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {
|
body {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
@ -46,15 +70,60 @@ fieldset {
|
|||||||
width: 200px;
|
width: 200px;
|
||||||
}
|
}
|
||||||
p {
|
p {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
}
|
||||||
|
#map_canvas {
|
||||||
|
width: 470px;
|
||||||
|
height: 300px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
clear: both;
|
||||||
|
font-size: 16px;
|
||||||
|
padding-top: 20px;
|
||||||
|
}
|
||||||
|
#pr_list {
|
||||||
|
width: 200px;
|
||||||
|
height: 300px;
|
||||||
|
overflow-y: auto;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
#pr_chooser {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
#pr_chooser ul {
|
||||||
|
list-style: outside none;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
#pr_chooser li {
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 12px;
|
||||||
|
margin: 10px 10px 10px 0px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
#pr_chooser li:hover {
|
||||||
|
background: #ccddee;
|
||||||
|
}
|
||||||
|
.maplink {
|
||||||
|
color: #1122ff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.maplink:hover {
|
||||||
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head><body onunload="window.opener.location.reload(true);" onload="<?php if(isset($_POST['submitSC'])) { ?>window.close();<?php } ?>">
|
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
|
||||||
|
<script type="text/javascript" src="/js/jquery/jquery-1.4.4.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/jquery/jquery.ui.map.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/jquery/jquery.ui.map.services.js"></script>
|
||||||
|
</head><body onunload="<?php if(isset($_POST['submitSC'])) {?>window.opener.location.reload(true);<?php } ?>" onload="<?php if(isset($_POST['submitSC'])) { ?>window.close();<?php } ?>">
|
||||||
<form action="" method="post">
|
<form action="" method="post">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<p>
|
<p>
|
||||||
<label>Mode de livraison</label>
|
<label>Mode de livraison</label>
|
||||||
<select name="delivery_mode" style="width: 177px;">
|
<select autocomplete="off" name="delivery_mode" style="width: 177px;">
|
||||||
<?php
|
<?php
|
||||||
$modes = array('DOM' => 'Livraison à domicile (DOM)', 'BPR' => 'Livraison en Bureau de Poste (BPR)',
|
$modes = array('DOM' => 'Livraison à domicile (DOM)', 'BPR' => 'Livraison en Bureau de Poste (BPR)',
|
||||||
'A2P' => 'Livraison Commerce de proximité (A2P)', 'MRL' => 'Livraison Commerce de proximité (MRL)', 'CMT' => 'Livraison Commerce (CMT)',
|
'A2P' => 'Livraison Commerce de proximité (A2P)', 'MRL' => 'Livraison Commerce de proximité (MRL)', 'CMT' => 'Livraison Commerce (CMT)',
|
||||||
@ -67,77 +136,336 @@ p {
|
|||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Nom</label>
|
<label>Nom</label>
|
||||||
<input type="text" name="prname" value="<?php echo $address['prname']; ?>" />
|
<input autocomplete="off" type="text" name="prname" value="<?php echo addslashes($address['prname']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Prénom</label>
|
<label>Prénom</label>
|
||||||
<input type="text" name="prfirstname" value="<?php echo $address['prfirstname']; ?>" />
|
<input autocomplete="off" type="text" name="prfirstname" value="<?php echo addslashes($address['prfirstname']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Téléphone</label>
|
<label>Téléphone</label>
|
||||||
<input type="text" name="cephonenumber" value="<?php echo $address['cephonenumber']; ?>" />
|
<input autocomplete="off" type="text" name="cephonenumber" value="<?php echo addslashes($address['cephonenumber']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Email</label>
|
<label>Email</label>
|
||||||
<input type="text" name="ceemail" value="<?php echo $address['ceemail']; ?>" />
|
<input autocomplete="off" type="text" name="ceemail" value="<?php echo addslashes($address['ceemail']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Entreprise</label>
|
<label>Nom destinataire</label>
|
||||||
<input type="text" name="cecompanyname" value="<?php echo $address['cecompanyname']; ?>" />
|
<input autocomplete="off" type="text" name="cename" value="<?php echo addslashes($address['cename']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<label>Prénom destinataire</label>
|
||||||
|
<input autocomplete="off" type="text" name="cefirstname" value="<?php echo addslashes($address['cefirstname']); ?>" />
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label>Entreprise</label>
|
||||||
|
<input autocomplete="off" type="text" name="cecompanyname" value="<?php echo addslashes($address['cecompanyname']); ?>" />
|
||||||
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<p>
|
<p>
|
||||||
<label>Adresse 1</label>
|
<label>Adresse 1</label>
|
||||||
<input type="text" name="pradress1" value="<?php echo $address['pradress1']; ?>" />
|
<input autocomplete="off" type="text" name="pradress1" value="<?php echo addslashes($address['pradress1']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Adresse 2</label>
|
<label>Adresse 2</label>
|
||||||
<input type="text" name="pradress2" value="<?php echo $address['pradress2']; ?>" />
|
<input autocomplete="off" type="text" name="pradress2" value="<?php echo addslashes($address['pradress2']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Adresse 3</label>
|
<label>Adresse 3</label>
|
||||||
<input type="text" name="pradress3" value="<?php echo $address['pradress3']; ?>" />
|
<input autocomplete="off" type="text" name="pradress3" value="<?php echo addslashes($address['pradress3']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Adresse 4</label>
|
<label>Adresse 4</label>
|
||||||
<input type="text" name="pradress4" value="<?php echo $address['pradress4']; ?>" />
|
<input autocomplete="off" type="text" name="pradress4" value="<?php echo addslashes($address['pradress4']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Code postal</label>
|
<label>Code postal</label>
|
||||||
<input type="text" name="przipcode" value="<?php echo $address['przipcode']; ?>" />
|
<input autocomplete="off" type="text" name="przipcode" value="<?php echo addslashes($address['przipcode']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Ville</label>
|
<label>Ville</label>
|
||||||
<input type="text" name="prtown" value="<?php echo $address['prtown']; ?>" />
|
<input autocomplete="off" type="text" name="prtown" value="<?php echo addslashes($address['prtown']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<p>
|
<p>
|
||||||
<label>Complément d'adresse</label>
|
<label>Complément d'adresse</label>
|
||||||
<input type="text" name="prcompladress" value="<?php echo $address['prcompladress']; ?>" />
|
<input autocomplete="off" type="text" name="prcompladress" value="<?php echo addslashes($address['prcompladress']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Informations sur la livraison</label>
|
<label>Informations sur la livraison</label>
|
||||||
<textarea><?php echo $address['cedeliveryinformation']; ?></textarea>
|
<textarea><?php echo $address['cedeliveryinformation']; ?></textarea>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Code porte 1</label>
|
<label>Code porte 1</label>
|
||||||
<input type="text" name="cedoorcode1" value="<?php echo $address['cedoorcode1']; ?>" />
|
<input autocomplete="off" type="text" name="cedoorcode1" value="<?php echo addslashes($address['cedoorcode1']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Code porte 2</label>
|
<label>Code porte 2</label>
|
||||||
<input type="text" name="cedoorcode2" value="<?php echo $address['cedoorcode2']; ?>" />
|
<input autocomplete="off" type="text" name="cedoorcode2" value="<?php echo addslashes($address['cedoorcode2']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>ID point retrait</label>
|
<label>ID point retrait</label>
|
||||||
<input type="text" name="prid" value="<?php echo $address['prid']; ?>" />
|
<input autocomplete="off" type="text" name="prid" value="<?php echo addslashes($address['prid']); ?>" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p><input type="submit" value="Envoyer" name="submitSC" /></p>
|
<p><input type="submit" value="Envoyer" name="submitSC" /></p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
<?php
|
||||||
|
echo '
|
||||||
|
<script type="text/javascript">
|
||||||
|
<!--
|
||||||
|
markers = [];
|
||||||
|
-->
|
||||||
|
</script>
|
||||||
|
<div id="pr_chooser"><h1>Livraison hors domicile - Recherche d\'un point de retrait</h1>
|
||||||
|
<div id="map_canvas"></div><div id="pr_list"><ul></ul></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
<!--
|
||||||
|
function updateForm(delivery_mode, name, address1, address2, address3, address4, postcode, city, prid) {
|
||||||
|
$("select[name=delivery_mode]").val("");
|
||||||
|
$("input[name=prname]").val("");
|
||||||
|
$("input[name=prfirstname]").val("");
|
||||||
|
$("input[name=pradress1]").val("");
|
||||||
|
$("input[name=pradress2]").val("");
|
||||||
|
$("input[name=pradress3]").val("");
|
||||||
|
$("input[name=pradress4]").val("");
|
||||||
|
$("input[name=przipcode]").val("");
|
||||||
|
$("input[name=prtown]").val("");
|
||||||
|
$("input[name=prid]").val("");
|
||||||
|
$("input[name=prcompladress]").val("");
|
||||||
|
$("input[name=cedoorcode1]").val("");
|
||||||
|
$("input[name=cedoorcode2]").val("");
|
||||||
|
|
||||||
|
$("select[name=delivery_mode]").val(delivery_mode);
|
||||||
|
$("input[name=prname]").val(name);
|
||||||
|
$("input[name=pradress1]").val(address3);
|
||||||
|
$("input[name=pradress2]").val(address4);
|
||||||
|
$("input[name=pradress3]").val(address1);
|
||||||
|
$("input[name=pradress4]").val(address2);
|
||||||
|
$("input[name=przipcode]").val(postcode);
|
||||||
|
$("input[name=prtown]").val(city);
|
||||||
|
$("input[name=prid]").val(prid);
|
||||||
|
}
|
||||||
|
|
||||||
|
$.deparam = jq_deparam = function( params, coerce ) {
|
||||||
|
var obj = {},
|
||||||
|
coerce_types = { "true": !0, "false": !1, "null": null };
|
||||||
|
|
||||||
|
// Iterate over all name=value pairs.
|
||||||
|
$.each( params.replace( /\+/g, " " ).split( "&" ), function(j,v){
|
||||||
|
var param = v.split( "=" ),
|
||||||
|
key = decodeURIComponent( param[0] ),
|
||||||
|
val,
|
||||||
|
cur = obj,
|
||||||
|
i = 0,
|
||||||
|
|
||||||
|
// If key is more complex than "foo", like "a[]" or "a[b][c]", split it
|
||||||
|
// into its component parts.
|
||||||
|
keys = key.split( "][" ),
|
||||||
|
keys_last = keys.length - 1;
|
||||||
|
|
||||||
|
// If the first keys part contains [ and the last ends with ], then []
|
||||||
|
// are correctly balanced.
|
||||||
|
if ( /\[/.test( keys[0] ) && /\]$/.test( keys[ keys_last ] ) ) {
|
||||||
|
// Remove the trailing ] from the last keys part.
|
||||||
|
keys[ keys_last ] = keys[ keys_last ].replace( /\]$/, "" );
|
||||||
|
|
||||||
|
// Split first keys part into two parts on the [ and add them back onto
|
||||||
|
// the beginning of the keys array.
|
||||||
|
keys = keys.shift().split("[").concat( keys );
|
||||||
|
|
||||||
|
keys_last = keys.length - 1;
|
||||||
|
} else {
|
||||||
|
// Basic "foo" style key.
|
||||||
|
keys_last = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Are we dealing with a name=value pair, or just a name?
|
||||||
|
if ( param.length === 2 ) {
|
||||||
|
val = decodeURIComponent( param[1] );
|
||||||
|
|
||||||
|
// Coerce values.
|
||||||
|
if ( coerce ) {
|
||||||
|
val = val && !isNaN(val) ? +val // number
|
||||||
|
: val === "undefined" ? undefined // undefined
|
||||||
|
: coerce_types[val] !== undefined ? coerce_types[val] // true, false, null
|
||||||
|
: val; // string
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( keys_last ) {
|
||||||
|
// Complex key, build deep object structure based on a few rules:
|
||||||
|
// * The "cur" pointer starts at the object top-level.
|
||||||
|
// * [] = array push (n is set to array length), [n] = array if n is
|
||||||
|
// numeric, otherwise object.
|
||||||
|
// * If at the last keys part, set the value.
|
||||||
|
// * For each keys part, if the current level is undefined create an
|
||||||
|
// object or array based on the type of the next keys part.
|
||||||
|
// * Move the "cur" pointer to the next level.
|
||||||
|
// * Rinse & repeat.
|
||||||
|
for ( ; i <= keys_last; i++ ) {
|
||||||
|
key = keys[i] === "" ? cur.length : keys[i];
|
||||||
|
cur = cur[key] = i < keys_last
|
||||||
|
? cur[key] || ( keys[i+1] && isNaN( keys[i+1] ) ? {} : [] )
|
||||||
|
: val;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Simple key, even simpler rules, since only scalars and shallow
|
||||||
|
// arrays are allowed.
|
||||||
|
|
||||||
|
if ( $.isArray( obj[key] ) ) {
|
||||||
|
// val is already an array, so push on the next value.
|
||||||
|
obj[key].push( val );
|
||||||
|
|
||||||
|
} else if ( obj[key] !== undefined ) {
|
||||||
|
// val isn"t an array, but since a second value has been specified,
|
||||||
|
// convert val into an array.
|
||||||
|
obj[key] = [ obj[key], val ];
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// val is a scalar.
|
||||||
|
obj[key] = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ( key ) {
|
||||||
|
// No value was defined, so set something meaningful.
|
||||||
|
obj[key] = coerce
|
||||||
|
? undefined
|
||||||
|
: "";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Method: jQuery.deparam.querystring
|
||||||
|
//
|
||||||
|
// Parse the query string from a URL or the current window.location,
|
||||||
|
// deserializing it into an object, optionally coercing numbers, booleans,
|
||||||
|
// null and undefined values.
|
||||||
|
//
|
||||||
|
// Usage:
|
||||||
|
//
|
||||||
|
// > jQuery.deparam.querystring( [ url ] [, coerce ] );
|
||||||
|
//
|
||||||
|
// Arguments:
|
||||||
|
//
|
||||||
|
// url - (String) An optional params string or URL containing query string
|
||||||
|
// params to be parsed. If url is omitted, the current window.location
|
||||||
|
// is used.
|
||||||
|
// coerce - (Boolean) If true, coerces any numbers or true, false, null, and
|
||||||
|
// undefined to their actual value. Defaults to false if omitted.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
//
|
||||||
|
// (Object) An object representing the deserialized params string.
|
||||||
|
|
||||||
|
// Method: jQuery.deparam.fragment
|
||||||
|
//
|
||||||
|
// Parse the fragment (hash) from a URL or the current window.location,
|
||||||
|
// deserializing it into an object, optionally coercing numbers, booleans,
|
||||||
|
// null and undefined values.
|
||||||
|
//
|
||||||
|
// Usage:
|
||||||
|
//
|
||||||
|
// > jQuery.deparam.fragment( [ url ] [, coerce ] );
|
||||||
|
//
|
||||||
|
// Arguments:
|
||||||
|
//
|
||||||
|
// url - (String) An optional params string or URL containing fragment (hash)
|
||||||
|
// params to be parsed. If url is omitted, the current window.location
|
||||||
|
// is used.
|
||||||
|
// coerce - (Boolean) If true, coerces any numbers or true, false, null, and
|
||||||
|
// undefined to their actual value. Defaults to false if omitted.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
//
|
||||||
|
// (Object) An object representing the deserialized params string.
|
||||||
|
|
||||||
|
function jq_deparam_sub( is_fragment, url_or_params, coerce ) {
|
||||||
|
if ( url_or_params === undefined || typeof url_or_params === "boolean" ) {
|
||||||
|
// url_or_params not specified.
|
||||||
|
coerce = url_or_params;
|
||||||
|
url_or_params = jq_param[ is_fragment ? str_fragment : str_querystring ]();
|
||||||
|
} else {
|
||||||
|
url_or_params = is_string( url_or_params )
|
||||||
|
? url_or_params.replace( is_fragment ? re_trim_fragment : re_trim_querystring, "" )
|
||||||
|
: url_or_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
return jq_deparam( url_or_params, coerce );
|
||||||
|
};
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
delivery_modes = {};
|
||||||
|
$("select[name=delivery_mode] option").each(function(id, el) {
|
||||||
|
delivery_modes[$(el).attr("value")] = $(el).text();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#map_canvas").gmap('.($pr_coords? '{ "center": "'.(float) $pr_coords['xcoords'].','.(float) $pr_coords['ycoords'].'" }': '').').bind("init", function(ev, map) {';
|
||||||
|
$current_address = htmlentities(preg_replace('/(, ){2,}/', ', ', preg_replace('/(, ){2,}/', ', ', implode(', ', array($address['pradress3'], $address['pradress4'], $address['pradress1'], $address['pradress2']))).', '.$address['przipcode'].' '.$address['prtown'].', FRANCE'));
|
||||||
|
echo '
|
||||||
|
$("#map_canvas").gmap("search", {"address": "'.$current_address.'"}, function(results, status) {
|
||||||
|
if ( status === "OK" ) {
|
||||||
|
var lat = null;
|
||||||
|
var lng = null;
|
||||||
|
|
||||||
|
if(results[0].geometry.location.H) {
|
||||||
|
lat = results[0].geometry.location.H;
|
||||||
|
lng = results[0].geometry.location.L;
|
||||||
|
} else if(results[0].geometry.location.G) {
|
||||||
|
lat = results[0].geometry.location.G;
|
||||||
|
lng = results[0].geometry.location.K;
|
||||||
|
} else {
|
||||||
|
var loc = results[0].geometry.location.toString().replace("(", "").replace(")", "").replace(" ", "").split(",");
|
||||||
|
lat = loc[0];
|
||||||
|
lng = loc[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#map_canvas").gmap("addMarker", {"icon": "http://static.privatesportshop.com/img/admin/marker_home.png", "idpr": "pr_home", "position": lat + "," + lng, "bounds": true}).click(function() {
|
||||||
|
$("#map_canvas").gmap("openInfoWindow", {"content": "Adresse actuelle"}, this);
|
||||||
|
});
|
||||||
|
|
||||||
|
$.getJSON("scaddressedit.php?id_cart='.(int) Tools::getValue('id_cart').'&getPR=1&h_xcoords=" + lat + "&h_ycoords=" + lng, function(data) {
|
||||||
|
if(data) {
|
||||||
|
for(var i=0; i < data.length; i++) {
|
||||||
|
var prtext = [delivery_modes[data[i].type], data[i].name, data[i].address1, data[i].address2, data[i].address3, data[i].address4, data[i].postcode + " " + data[i].city].filter(function(x) { return x != ""; }).join("<br />");
|
||||||
|
var prtext_action = "<br /><a class=\"maplink\" onclick=\"$(\'#pr_list li[data-index=" + i + "]\').trigger(\'click\'); return false;\">Sélectionner</a>";
|
||||||
|
|
||||||
|
markers.push($("#map_canvas").gmap("addMarker", { "id": "pr_" + data[i].id_pr, "position": data[i].xcoords + "," + data[i].ycoords, "bounds": true, "content": prtext + prtext_action }));
|
||||||
|
markers[markers.length - 1].click(function() {
|
||||||
|
$("#map_canvas").gmap("openInfoWindow", {"content": $(this).attr("content")}, this);
|
||||||
|
});
|
||||||
|
|
||||||
|
var litem = $("<li />").attr("data-index", i).attr("data-content", $.param(data[i])).html(prtext).click(function() {
|
||||||
|
var data = $.deparam($(this).attr("data-content"));
|
||||||
|
$.each(markers, function(id, el) {
|
||||||
|
if(el[0].id == "pr_" + data.id_pr) {
|
||||||
|
google.maps.event.trigger(el[0], "click");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("#map_canvas").gmap("option", "center", markers[parseInt($(this).attr("data-index"))][0].getPosition());
|
||||||
|
updateForm(data.type, data.name, data.address1, data.address2, data.address3, data.address4, data.postcode, data.city, data.id_pr);
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#pr_list ul").append(litem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
-->
|
||||||
|
</script>
|
||||||
|
</div>';
|
||||||
|
?>
|
||||||
</body></html>
|
</body></html>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -226,27 +226,55 @@ class ImageCore extends ObjectModel
|
|||||||
$imageOld = new Image($row['id_image']);
|
$imageOld = new Image($row['id_image']);
|
||||||
$imageNew = clone $imageOld;
|
$imageNew = clone $imageOld;
|
||||||
$imageNew->id_product = (int)($id_product_new);
|
$imageNew->id_product = (int)($id_product_new);
|
||||||
// A new id is generated for the cloned image when calling add()
|
|
||||||
if ($imageNew->add())
|
if($imageNew->add()) {
|
||||||
{
|
$new_path = $imageNew->getPathForCreation();
|
||||||
$new_path = $imageNew->getPathForCreation();
|
|
||||||
foreach ($imagesTypes AS $imageType)
|
|
||||||
{
|
|
||||||
if (file_exists(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'-'.$imageType['name'].'.jpg'))
|
|
||||||
{
|
|
||||||
if (!Configuration::get('PS_LEGACY_IMAGES'))
|
|
||||||
$imageNew->createImgFolder();
|
|
||||||
copy(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'-'.$imageType['name'].'.jpg',
|
|
||||||
$new_path.'-'.$imageType['name'].'.jpg');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (file_exists(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'.jpg'))
|
|
||||||
copy(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'.jpg', $new_path.'.jpg');
|
|
||||||
|
|
||||||
self::replaceAttributeImageAssociationId($combinationImages, (int)($imageOld->id), (int)($imageNew->id));
|
if(file_exists(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'.jpg')) {
|
||||||
|
copy(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'.jpg', $new_path.'.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($imagesTypes AS $imageType) {
|
||||||
|
if(file_exists(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'-'.$imageType['name'].'.jpg')) {
|
||||||
|
if(!Configuration::get('PS_LEGACY_IMAGES')) {
|
||||||
|
$imageNew->createImgFolder();
|
||||||
|
}
|
||||||
|
copy(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'-'.$imageType['name'].'.jpg', $new_path.'-'.$imageType['name'].'.jpg');
|
||||||
|
} else {
|
||||||
|
if(!Configuration::get('PS_LEGACY_IMAGES')) {
|
||||||
|
$imageNew->createImgFolder();
|
||||||
|
}
|
||||||
|
imageResize($new_path.'.jpg', _PS_PROD_IMG_DIR_.$imageNew->getExistingImgPath().'-'.$imageType['name'].'.jpg', (int) $imageType['width'], (int) $imageType['height']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self::replaceAttributeImageAssociationId($combinationImages, (int)($imageOld->id), (int)($imageNew->id));
|
||||||
|
} else {
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return false;
|
// // A new id is generated for the cloned image when calling add()
|
||||||
|
// if ($imageNew->add())
|
||||||
|
// {
|
||||||
|
// $new_path = $imageNew->getPathForCreation();
|
||||||
|
// foreach ($imagesTypes AS $imageType)
|
||||||
|
// {
|
||||||
|
// if (file_exists(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'-'.$imageType['name'].'.jpg'))
|
||||||
|
// {
|
||||||
|
// if (!Configuration::get('PS_LEGACY_IMAGES'))
|
||||||
|
// $imageNew->createImgFolder();
|
||||||
|
// copy(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'-'.$imageType['name'].'.jpg',
|
||||||
|
// $new_path.'-'.$imageType['name'].'.jpg');
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if (file_exists(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'.jpg'))
|
||||||
|
// copy(_PS_PROD_IMG_DIR_.$imageOld->getExistingImgPath().'.jpg', $new_path.'.jpg');
|
||||||
|
|
||||||
|
// self::replaceAttributeImageAssociationId($combinationImages, (int)($imageOld->id), (int)($imageNew->id));
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
return self::duplicateAttributeImageAssociations($combinationImages);
|
return self::duplicateAttributeImageAssociations($combinationImages);
|
||||||
}
|
}
|
||||||
|
371
js/jquery/jquery.ui.map.js
vendored
Normal file
371
js/jquery/jquery.ui.map.js
vendored
Normal file
@ -0,0 +1,371 @@
|
|||||||
|
/*!
|
||||||
|
* jQuery FN Google Map 3.0-rc
|
||||||
|
* http://code.google.com/p/jquery-ui-map/
|
||||||
|
* Copyright (c) 2010 - 2012 Johan Säll Larsson
|
||||||
|
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
||||||
|
*/
|
||||||
|
( function($) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param name:string
|
||||||
|
* @param prototype:object
|
||||||
|
*/
|
||||||
|
$.a = function(name, prototype) {
|
||||||
|
|
||||||
|
var namespace = name.split('.')[0];
|
||||||
|
name = name.split('.')[1];
|
||||||
|
|
||||||
|
$[namespace] = $[namespace] || {};
|
||||||
|
$[namespace][name] = function(options, element) {
|
||||||
|
if ( arguments.length ) {
|
||||||
|
this._setup(options, element);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$[namespace][name].prototype = $.extend({
|
||||||
|
'namespace': namespace,
|
||||||
|
'pluginName': name
|
||||||
|
}, prototype);
|
||||||
|
|
||||||
|
$.fn[name] = function(options) {
|
||||||
|
|
||||||
|
var isMethodCall = typeof options === "string",
|
||||||
|
args = Array.prototype.slice.call(arguments, 1),
|
||||||
|
returnValue = this;
|
||||||
|
|
||||||
|
if ( isMethodCall && options.substring(0, 1) === '_' ) {
|
||||||
|
return returnValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.each(function() {
|
||||||
|
var instance = $.data(this, name);
|
||||||
|
if (!instance) {
|
||||||
|
instance = $.data(this, name, new $[namespace][name](options, this));
|
||||||
|
}
|
||||||
|
if (isMethodCall) {
|
||||||
|
var value = instance[options].apply(instance, args);
|
||||||
|
if ( options === 'get' || value != null ) {
|
||||||
|
returnValue = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return returnValue;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
$.a('ui.gmap', {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map options
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#MapOptions
|
||||||
|
*/
|
||||||
|
options: {
|
||||||
|
mapTypeId: 'roadmap',
|
||||||
|
zoom: 5
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get or set options
|
||||||
|
* @param key:string
|
||||||
|
* @param options:object
|
||||||
|
* @return object
|
||||||
|
*/
|
||||||
|
option: function(key, options) {
|
||||||
|
if (options) {
|
||||||
|
this.options[key] = options;
|
||||||
|
this.get('map').set(key, options);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return this.options[key];
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setup plugin basics,
|
||||||
|
* @param options:object
|
||||||
|
* @param element:node
|
||||||
|
*/
|
||||||
|
_setup: function(options, element) {
|
||||||
|
this.el = element;
|
||||||
|
options = options || {};
|
||||||
|
jQuery.extend(this.options, options, { 'center': this._latLng(options.center) });
|
||||||
|
this._create();
|
||||||
|
if ( this._init ) { this._init(); }
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instanciate the Google Maps object
|
||||||
|
*/
|
||||||
|
_create: function() {
|
||||||
|
var self = this;
|
||||||
|
this.instance = { 'map': new google.maps.Map(self.el, self.options), 'markers': [], 'overlays': [], 'services': [] };
|
||||||
|
google.maps.event.addListenerOnce(self.instance.map, 'bounds_changed', function() { $(self.el).trigger('init', self.instance.map); });
|
||||||
|
self._call(self.options.callback, self.instance.map);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a latitude longitude pair to the bounds.
|
||||||
|
* @param position:google.maps.LatLng/string
|
||||||
|
*/
|
||||||
|
addBounds: function(position) {
|
||||||
|
var bounds = this.get('bounds', new google.maps.LatLngBounds());
|
||||||
|
bounds.extend(this._latLng(position));
|
||||||
|
this.get('map').fitBounds(bounds);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper function to check if a LatLng is within the viewport
|
||||||
|
* @param marker:google.maps.Marker
|
||||||
|
*/
|
||||||
|
inViewport: function(marker) {
|
||||||
|
var bounds = this.get('map').getBounds();
|
||||||
|
return (bounds) ? bounds.contains(marker.getPosition()) : false;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a custom control to the map
|
||||||
|
* @param panel:jquery/node/string
|
||||||
|
* @param position:google.maps.ControlPosition
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#ControlPosition
|
||||||
|
*/
|
||||||
|
addControl: function(panel, position) {
|
||||||
|
this.get('map').controls[position].push(this._unwrap(panel));
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a Marker to the map
|
||||||
|
* @param markerOptions:google.maps.MarkerOptions
|
||||||
|
* @param callback:function(map:google.maps.Map, marker:google.maps.Marker) (optional)
|
||||||
|
* @return $(google.maps.Marker)
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#MarkerOptions
|
||||||
|
*/
|
||||||
|
addMarker: function(markerOptions, callback) {
|
||||||
|
markerOptions.map = this.get('map');
|
||||||
|
markerOptions.position = this._latLng(markerOptions.position);
|
||||||
|
var marker = new (markerOptions.marker || google.maps.Marker)(markerOptions);
|
||||||
|
var markers = this.get('markers');
|
||||||
|
if ( marker.id ) {
|
||||||
|
markers[marker.id] = marker;
|
||||||
|
} else {
|
||||||
|
markers.push(marker);
|
||||||
|
}
|
||||||
|
if ( marker.bounds ) {
|
||||||
|
this.addBounds(marker.getPosition());
|
||||||
|
}
|
||||||
|
this._call(callback, markerOptions.map, marker);
|
||||||
|
return $(marker);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears by type
|
||||||
|
* @param ctx:string e.g. 'markers', 'overlays', 'services'
|
||||||
|
*/
|
||||||
|
clear: function(ctx) {
|
||||||
|
this._c(this.get(ctx));
|
||||||
|
this.set(ctx, []);
|
||||||
|
},
|
||||||
|
|
||||||
|
_c: function(obj) {
|
||||||
|
for ( var property in obj ) {
|
||||||
|
if ( obj.hasOwnProperty(property) ) {
|
||||||
|
if ( obj[property] instanceof google.maps.MVCObject ) {
|
||||||
|
google.maps.event.clearInstanceListeners(obj[property]);
|
||||||
|
if ( obj[property].setMap ) {
|
||||||
|
obj[property].setMap(null);
|
||||||
|
}
|
||||||
|
} else if ( obj[property] instanceof Array ) {
|
||||||
|
this._c(obj[property]);
|
||||||
|
}
|
||||||
|
obj[property] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the objects with a specific property and value, e.g. 'category', 'tags'
|
||||||
|
* @param ctx:string in what context, e.g. 'markers'
|
||||||
|
* @param options:object property:string the property to search within, value:string, operator:string (optional) (AND/OR)
|
||||||
|
* @param callback:function(marker:google.maps.Marker, isFound:boolean)
|
||||||
|
*/
|
||||||
|
find: function(ctx, options, callback) {
|
||||||
|
var obj = this.get(ctx);
|
||||||
|
options.value = $.isArray(options.value) ? options.value : [options.value];
|
||||||
|
for ( var property in obj ) {
|
||||||
|
if ( obj.hasOwnProperty(property) ) {
|
||||||
|
var isFound = false;
|
||||||
|
for ( var value in options.value ) {
|
||||||
|
if ( $.inArray(options.value[value], obj[property][options.property]) > -1 ) {
|
||||||
|
isFound = true;
|
||||||
|
} else {
|
||||||
|
if ( options.operator && options.operator === 'AND' ) {
|
||||||
|
isFound = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
callback(obj[property], isFound);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an instance property by key. Has the ability to set an object if the property does not exist
|
||||||
|
* @param key:string
|
||||||
|
* @param value:object(optional)
|
||||||
|
*/
|
||||||
|
get: function(key, value) {
|
||||||
|
var instance = this.instance;
|
||||||
|
if ( !instance[key] ) {
|
||||||
|
if ( key.indexOf('>') > -1 ) {
|
||||||
|
var e = key.replace(/ /g, '').split('>');
|
||||||
|
for ( var i = 0; i < e.length; i++ ) {
|
||||||
|
if ( !instance[e[i]] ) {
|
||||||
|
if (value) {
|
||||||
|
instance[e[i]] = ( (i + 1) < e.length ) ? [] : value;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
instance = instance[e[i]];
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
} else if ( value && !instance[key] ) {
|
||||||
|
this.set(key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return instance[key];
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggers an InfoWindow to open
|
||||||
|
* @param infoWindowOptions:google.maps.InfoWindowOptions
|
||||||
|
* @param marker:google.maps.Marker (optional)
|
||||||
|
* @param callback:function (optional)
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#InfoWindowOptions
|
||||||
|
*/
|
||||||
|
openInfoWindow: function(infoWindowOptions, marker, callback) {
|
||||||
|
var iw = this.get('iw', infoWindowOptions.infoWindow || new google.maps.InfoWindow);
|
||||||
|
iw.setOptions(infoWindowOptions);
|
||||||
|
iw.open(this.get('map'), this._unwrap(marker));
|
||||||
|
this._call(callback, iw);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggers an InfoWindow to close
|
||||||
|
*/
|
||||||
|
closeInfoWindow: function() {
|
||||||
|
if ( this.get('iw') != null ) {
|
||||||
|
this.get('iw').close();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets an instance property
|
||||||
|
* @param key:string
|
||||||
|
* @param value:object
|
||||||
|
*/
|
||||||
|
set: function(key, value) {
|
||||||
|
this.instance[key] = value;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refreshes the map
|
||||||
|
*/
|
||||||
|
refresh: function() {
|
||||||
|
var map = this.get('map');
|
||||||
|
var latLng = map.getCenter();
|
||||||
|
$(map).triggerEvent('resize');
|
||||||
|
map.setCenter(latLng);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Destroys the plugin.
|
||||||
|
*/
|
||||||
|
destroy: function() {
|
||||||
|
this.clear('markers');
|
||||||
|
this.clear('services')
|
||||||
|
this.clear('overlays')
|
||||||
|
this._c(this.instance);
|
||||||
|
jQuery.removeData(this.el, this.name);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method for calling a function
|
||||||
|
* @param callback
|
||||||
|
*/
|
||||||
|
_call: function(callback) {
|
||||||
|
if ( callback && $.isFunction(callback) ) {
|
||||||
|
callback.apply(this, Array.prototype.slice.call(arguments, 1));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method for google.maps.Latlng
|
||||||
|
* @param latLng:string/google.maps.LatLng
|
||||||
|
*/
|
||||||
|
_latLng: function(latLng) {
|
||||||
|
if ( !latLng ) {
|
||||||
|
return new google.maps.LatLng(0.0, 0.0);
|
||||||
|
}
|
||||||
|
if ( latLng instanceof google.maps.LatLng ) {
|
||||||
|
return latLng;
|
||||||
|
} else {
|
||||||
|
latLng = latLng.replace(/ /g,'').split(',');
|
||||||
|
return new google.maps.LatLng(latLng[0], latLng[1]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method for unwrapping jQuery/DOM/string elements
|
||||||
|
* @param obj:string/node/jQuery
|
||||||
|
*/
|
||||||
|
_unwrap: function(obj) {
|
||||||
|
return (!obj) ? null : ( (obj instanceof jQuery) ? obj[0] : ((obj instanceof Object) ? obj : $('#'+obj)[0]) )
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
jQuery.fn.extend( {
|
||||||
|
|
||||||
|
triggerEvent: function(eventType) {
|
||||||
|
google.maps.event.trigger(this[0], eventType);
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
addEventListener: function(eventType, eventDataOrCallback, eventCallback) {
|
||||||
|
if ( google.maps && this[0] instanceof google.maps.MVCObject ) {
|
||||||
|
google.maps.event.addListener(this[0], eventType, eventDataOrCallback);
|
||||||
|
} else {
|
||||||
|
if (eventCallback) {
|
||||||
|
this.bind(eventType, eventDataOrCallback, eventCallback);
|
||||||
|
} else {
|
||||||
|
this.bind(eventType, eventDataOrCallback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
removeEventListener: function(eventType) {
|
||||||
|
if ( google.maps && this[0] instanceof google.maps.MVCObject ) {
|
||||||
|
if (eventType) {
|
||||||
|
google.maps.event.clearListeners(this[0], eventType);
|
||||||
|
} else {
|
||||||
|
google.maps.event.clearInstanceListeners(this[0]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.unbind(eventType);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
jQuery.each(('click rightclick dblclick mouseover mouseout drag dragend').split(' '), function(i, name) {
|
||||||
|
jQuery.fn[name] = function(a, b) {
|
||||||
|
return this.addEventListener(name, a, b);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} (jQuery) );
|
63
js/jquery/jquery.ui.map.services.js
Normal file
63
js/jquery/jquery.ui.map.services.js
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/*!
|
||||||
|
* jQuery UI Google Map 3.0-rc
|
||||||
|
* http://code.google.com/p/jquery-ui-map/
|
||||||
|
* Copyright (c) 2010 - 2012 Johan Säll Larsson
|
||||||
|
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.map.js
|
||||||
|
*/
|
||||||
|
( function($) {
|
||||||
|
|
||||||
|
$.extend($.ui.gmap.prototype, {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computes directions between two or more places.
|
||||||
|
* @param directionsRequest:google.maps.DirectionsRequest
|
||||||
|
* @param directionsRendererOptions:google.maps.DirectionsRendererOptions (optional)
|
||||||
|
* @param callback:function(result:google.maps.DirectionsResult, status:google.maps.DirectionsStatus)
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsRequest
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsRendererOptions
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsResult
|
||||||
|
*/
|
||||||
|
displayDirections: function(directionsRequest, directionsRendererOptions, callback) {
|
||||||
|
var self = this;
|
||||||
|
var directionService = this.get('services > DirectionsService', new google.maps.DirectionsService());
|
||||||
|
var directionRenderer = this.get('services > DirectionsRenderer', new google.maps.DirectionsRenderer());
|
||||||
|
if ( directionsRendererOptions ) {
|
||||||
|
directionRenderer.setOptions(directionsRendererOptions);
|
||||||
|
}
|
||||||
|
directionService.route(directionsRequest, function(results, status) {
|
||||||
|
if ( status === 'OK' ) {
|
||||||
|
directionRenderer.setDirections(results);
|
||||||
|
directionRenderer.setMap(self.get('map'));
|
||||||
|
} else {
|
||||||
|
directionRenderer.setMap(null);
|
||||||
|
}
|
||||||
|
callback(results, status);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Displays the panorama for a given LatLng or panorama ID.
|
||||||
|
* @param panel:jQuery/String/Node
|
||||||
|
* @param streetViewPanoramaOptions:google.maps.StreetViewPanoramaOptions (optional)
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#StreetViewPanoramaOptions
|
||||||
|
*/
|
||||||
|
displayStreetView: function(panel, streetViewPanoramaOptions) {
|
||||||
|
this.get('map').setStreetView(this.get('services > StreetViewPanorama', new google.maps.StreetViewPanorama(this._unwrap(panel), streetViewPanoramaOptions)));
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A service for converting between an address and a LatLng.
|
||||||
|
* @param geocoderRequest:google.maps.GeocoderRequest
|
||||||
|
* @param callback:function(result:google.maps.GeocoderResult, status:google.maps.GeocoderStatus),
|
||||||
|
* @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#GeocoderResult
|
||||||
|
*/
|
||||||
|
search: function(geocoderRequest, callback) {
|
||||||
|
this.get('services > Geocoder', new google.maps.Geocoder()).geocode(geocoderRequest, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
} (jQuery) );
|
@ -111,7 +111,7 @@ class BlockBestSellers extends Module
|
|||||||
|
|
||||||
if(!$this->isCached('blockbestsellers_'.(int) $cookie->id_lang.'.tpl', $cache_id)) {
|
if(!$this->isCached('blockbestsellers_'.(int) $cookie->id_lang.'.tpl', $cache_id)) {
|
||||||
$currency = new Currency((int)($params['cookie']->id_currency));
|
$currency = new Currency((int)($params['cookie']->id_currency));
|
||||||
$bestsellers = ProductSale::getBestSalesVp((int)($params['cookie']->id_lang), 0, 5);
|
$bestsellers = ProductSale::getBestSalesVp((int)($params['cookie']->id_lang), 0, 5, NULL, NULL, 10);
|
||||||
if (!$bestsellers AND !Configuration::get('PS_BLOCK_BESTSELLERS_DISPLAY'))
|
if (!$bestsellers AND !Configuration::get('PS_BLOCK_BESTSELLERS_DISPLAY'))
|
||||||
return;
|
return;
|
||||||
$best_sellers = array();
|
$best_sellers = array();
|
||||||
@ -152,7 +152,7 @@ class BlockBestSellers extends Module
|
|||||||
|
|
||||||
if(!$this->isCached('blockbestsellers_cart_'.(int) $id_lang.'.tpl', $cache_id)) {
|
if(!$this->isCached('blockbestsellers_cart_'.(int) $id_lang.'.tpl', $cache_id)) {
|
||||||
$currency = new Currency((int)($params['cookie']->id_currency));
|
$currency = new Currency((int)($params['cookie']->id_currency));
|
||||||
$bestsellers = ProductSale::getBestSalesVp((int)($params['cookie']->id_lang), 0, 3);
|
$bestsellers = ProductSale::getBestSalesVp((int)($params['cookie']->id_lang), 0, 3, NULL, NULL, 10);
|
||||||
|
|
||||||
if (!$bestsellers AND !Configuration::get('PS_BLOCK_BESTSELLERS_DISPLAY'))
|
if (!$bestsellers AND !Configuration::get('PS_BLOCK_BESTSELLERS_DISPLAY'))
|
||||||
return;
|
return;
|
||||||
@ -195,7 +195,7 @@ class BlockBestSellers extends Module
|
|||||||
|
|
||||||
if(!$this->isCached('blockbestsellers_home_'.(int) $cookie->id_lang.'.tpl', $cache_id)) {
|
if(!$this->isCached('blockbestsellers_home_'.(int) $cookie->id_lang.'.tpl', $cache_id)) {
|
||||||
$currency = new Currency((int)($params['cookie']->id_currency));
|
$currency = new Currency((int)($params['cookie']->id_currency));
|
||||||
$bestsellers = ProductSale::getBestSalesVp((int)($params['cookie']->id_lang), 0, 5);
|
$bestsellers = ProductSale::getBestSalesVp((int)($params['cookie']->id_lang), 0, 5, NULL, NULL, 10);
|
||||||
if (!$bestsellers AND !Configuration::get('PS_BLOCK_BESTSELLERS_DISPLAY'))
|
if (!$bestsellers AND !Configuration::get('PS_BLOCK_BESTSELLERS_DISPLAY'))
|
||||||
return;
|
return;
|
||||||
$best_sellers = array();
|
$best_sellers = array();
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
include_once(_PS_ROOT_DIR_.'/modules/privatesales/Sale.php');
|
include_once(_PS_ROOT_DIR_.'/modules/privatesales/Sale.php');
|
||||||
|
|
||||||
class AdminPrivateSalesSales extends AdminTab {
|
class AdminPrivateSalesSales extends AdminTab {
|
||||||
|
|
||||||
private $imagelist;
|
private $imagelist;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
|
@ -1306,14 +1306,6 @@ class soflexibilite extends CarrierModule
|
|||||||
$soDelivery->city = $address_invoice->city;
|
$soDelivery->city = $address_invoice->city;
|
||||||
$soDelivery->country = Country::getIsoById((int)$address_invoice->id_country);
|
$soDelivery->country = Country::getIsoById((int)$address_invoice->id_country);
|
||||||
}*/
|
}*/
|
||||||
$address_delivery = new Address((int)$params['cart']->id_address_delivery);
|
|
||||||
if (Validate::isLoadedObject($address_delivery)) {
|
|
||||||
$soDelivery->address1 = $address_delivery->address1;
|
|
||||||
$soDelivery->address2 = $address_delivery->address2;
|
|
||||||
$soDelivery->postcode = $address_delivery->postcode;
|
|
||||||
$soDelivery->city = $address_delivery->city;
|
|
||||||
$soDelivery->country = Country::getIsoById((int)$address_delivery->id_country);
|
|
||||||
}
|
|
||||||
|
|
||||||
// OCARAT modif update for customizations
|
// OCARAT modif update for customizations
|
||||||
if ($this->ps15x) {
|
if ($this->ps15x) {
|
||||||
@ -1430,13 +1422,15 @@ class soflexibilite extends CarrierModule
|
|||||||
require_once dirname(__FILE__).'/classes/SoFlexibiliteWebService.php';
|
require_once dirname(__FILE__).'/classes/SoFlexibiliteWebService.php';
|
||||||
|
|
||||||
// Customer Name
|
// Customer Name
|
||||||
$address = Db::getInstance()->ExecuteS('SELECT * FROM ps_socolissimo_delivery_info WHERE id_cart = '.pSQL((int)$order->id_cart));
|
/*$address = Db::getInstance()->ExecuteS('SELECT * FROM ps_socolissimo_delivery_info WHERE id_cart = '.pSQL((int)$order->id_cart));
|
||||||
if(count($address) > 0) {
|
if(count($address) > 0) {
|
||||||
$address = $address[0];
|
$address = $address[0];
|
||||||
}
|
}
|
||||||
if (!empty($address['prname']) && !empty($address['prname'])) {
|
if (!empty($address['prname']) && !empty($address['prname'])) {
|
||||||
$fullname = sprintf('%s %s', $address['prfirstname'], $address['prname']);
|
$fullname = sprintf('%s %s', $address['prfirstname'], $address['prname']);
|
||||||
} elseif (!empty($soDelivery->firstname) && !empty($soDelivery->lastname)) {
|
} else*/
|
||||||
|
|
||||||
|
if (!empty($soDelivery->firstname) && !empty($soDelivery->lastname)) {
|
||||||
$fullname = sprintf('%s %s', $soDelivery->firstname, $soDelivery->lastname);
|
$fullname = sprintf('%s %s', $soDelivery->firstname, $soDelivery->lastname);
|
||||||
} else {
|
} else {
|
||||||
$fullname = sprintf('%s %s', $customer_address->firstname, $customer_address->lastname);
|
$fullname = sprintf('%s %s', $customer_address->firstname, $customer_address->lastname);
|
||||||
@ -1482,7 +1476,8 @@ class soflexibilite extends CarrierModule
|
|||||||
'name' => $fullname,
|
'name' => $fullname,
|
||||||
'libelle' => in_array($soDelivery->type, array('DOM', 'DOS', 'BOM', 'BOS')) ? '' : $soDelivery->libelle,
|
'libelle' => in_array($soDelivery->type, array('DOM', 'DOS', 'BOM', 'BOS')) ? '' : $soDelivery->libelle,
|
||||||
'prid' => $soDelivery->id_point ? sprintf('%06s', $soDelivery->id_point) : null,
|
'prid' => $soDelivery->id_point ? sprintf('%06s', $soDelivery->id_point) : null,
|
||||||
'company' => $soDelivery->company ? $soDelivery->company : $customer_address->company,
|
/*'company' => $soDelivery->company ? $soDelivery->company : $customer_address->company,*/
|
||||||
|
'company' => $soDelivery->company,
|
||||||
'prname' => isset($relay_informations->nom) ? $relay_informations->nom : '',
|
'prname' => isset($relay_informations->nom) ? $relay_informations->nom : '',
|
||||||
'address1' => isset($relay_informations->adresse1) ? $relay_informations->adresse1 : (
|
'address1' => isset($relay_informations->adresse1) ? $relay_informations->adresse1 : (
|
||||||
in_array($soDelivery->type, array('DOM', 'DOS', 'BOM', 'BOS')) ?
|
in_array($soDelivery->type, array('DOM', 'DOS', 'BOM', 'BOS')) ?
|
||||||
@ -1498,7 +1493,7 @@ class soflexibilite extends CarrierModule
|
|||||||
'city' => isset($relay_informations->localite) ? $relay_informations->localite : $soDelivery->city,
|
'city' => isset($relay_informations->localite) ? $relay_informations->localite : $soDelivery->city,
|
||||||
'country' => isset($relay_informations->libellePays) ? $relay_informations->libellePays : (
|
'country' => isset($relay_informations->libellePays) ? $relay_informations->libellePays : (
|
||||||
Tools::strlen($soDelivery->country) == 2 ?
|
Tools::strlen($soDelivery->country) == 2 ?
|
||||||
Country::getNameById($this->context->employee->id_lang, Country::getByIso($soDelivery->country)) :
|
Country::getNameById($this->context->employee->id_lang, strtolower($soDelivery->country) == 'fr'? 8: Country::getByIso($soDelivery->country)) :
|
||||||
$soDelivery->country
|
$soDelivery->country
|
||||||
),
|
),
|
||||||
'iso_country' => isset($relay_informations->codePays) ? $relay_informations->codePays : $soDelivery->country,
|
'iso_country' => isset($relay_informations->codePays) ? $relay_informations->codePays : $soDelivery->country,
|
||||||
|
@ -5,10 +5,15 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
$this->table = 'stats_logistic';
|
$this->table = 'stats_logistic';
|
||||||
$this->lang = false;
|
$this->lang = false;
|
||||||
$this->date_begin = date('Y-m-d');
|
$this->date_begin = date('Y-m-d');
|
||||||
|
|
||||||
$this->date_end = date('Y-m-d');
|
$this->date_end = date('Y-m-d');
|
||||||
$this->date_stock = date('Y-m-d');
|
$this->date_stock = date('Y-m-d');
|
||||||
|
|
||||||
$this->date_export_begin = date('Y-m-d');
|
$this->date_export_begin = date('Y-m-d');
|
||||||
$this->date_export_end = date('Y-m-d');
|
$this->date_export_end = date('Y-m-d');
|
||||||
|
|
||||||
|
$this->date_expe_begin = date('Y-m-d');
|
||||||
|
$this->date_expe_end = date('Y-m-d');
|
||||||
|
|
||||||
if (!empty($_GET['date_begin'])) {
|
if (!empty($_GET['date_begin'])) {
|
||||||
$this->date_begin = $_GET['date_begin'];
|
$this->date_begin = $_GET['date_begin'];
|
||||||
@ -193,7 +198,6 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($result) {
|
if ($result) {
|
||||||
//echo "<pre>";var_dump($result);echo "</pre>";die();
|
|
||||||
$fname = 'export-remb-'.$this->date_export_begin.'-'.$this->date_export_end.'.csv';
|
$fname = 'export-remb-'.$this->date_export_begin.'-'.$this->date_export_end.'.csv';
|
||||||
foreach(glob(dirname(__FILE__).'/*.csv') as $filename) {
|
foreach(glob(dirname(__FILE__).'/*.csv') as $filename) {
|
||||||
if ($fname == $filename) {
|
if ($fname == $filename) {
|
||||||
@ -208,6 +212,28 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
} else {
|
} else {
|
||||||
echo '<p class="conf">'.$this->l('No sale found.').'</p>';
|
echo '<p class="conf">'.$this->l('No sale found.').'</p>';
|
||||||
}
|
}
|
||||||
|
} elseif (Tools::getValue('submitExportExp')) {
|
||||||
|
$this->date_expe_begin = Tools::getValue('date_expe_begin', $this->date_expe_begin);
|
||||||
|
$this->date_expe_end = Tools::getValue('date_expe_end', $this->date_expe_end);
|
||||||
|
|
||||||
|
$details = $this->getShippingDetails();
|
||||||
|
if ($details) {
|
||||||
|
foreach ($details as $key => &$row) {
|
||||||
|
$sale_info = $this->getSaleInfo((int)$row['id_sale']);
|
||||||
|
$row['sale_title'] = $sale_info['title'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$fname = 'export-expe-'.$this->date_expe_begin.'-'.$this->date_expe_end.'.csv';
|
||||||
|
foreach(glob(dirname(__FILE__).'/*.csv') as $filename) {
|
||||||
|
if ($fname == $filename) {
|
||||||
|
unlink($filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->exportExpeCSV($details, $fname);
|
||||||
|
echo '<p class="conf">'.$this->l('Export complete.').' <a onclick="window.open(this.href); return false;" href="http://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/stats_logistic/'.$fname.'">'.$this->l('Click here to download the file').'</a></p>';
|
||||||
|
} else {
|
||||||
|
echo '<p class="conf">'.$this->l('No result for these dates.').'</p>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,6 +331,7 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
$poles[3]['name'] = 'Pôle 4 : Postes complementaires';
|
$poles[3]['name'] = 'Pôle 4 : Postes complementaires';
|
||||||
$poles[4]['name'] = 'Pôle 5 : Multi';
|
$poles[4]['name'] = 'Pôle 5 : Multi';
|
||||||
$poles[5]['name'] = 'Pôle 6 : Autre';
|
$poles[5]['name'] = 'Pôle 6 : Autre';
|
||||||
|
$total_quantity = 0;
|
||||||
foreach ($stats as $key => $stat) {
|
foreach ($stats as $key => $stat) {
|
||||||
if (!isset($stat['id_employee'])) {
|
if (!isset($stat['id_employee'])) {
|
||||||
continue;
|
continue;
|
||||||
@ -349,7 +376,7 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
$total_quantity += $stat['quantity'];
|
$total_quantity += $stat['quantity'];
|
||||||
}
|
}
|
||||||
$total_colis = $this->getTotalColis();
|
$total_colis = $this->getTotalColis();
|
||||||
$total_quantity = 0;
|
|
||||||
echo '
|
echo '
|
||||||
<h2 style="margin-top:15px">Stats de la logistique</h2>
|
<h2 style="margin-top:15px">Stats de la logistique</h2>
|
||||||
<table class="table" style="width:100%; margin-top:15px">
|
<table class="table" style="width:100%; margin-top:15px">
|
||||||
@ -453,21 +480,41 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
}
|
}
|
||||||
echo '<tbody>
|
echo '<tbody>
|
||||||
</table>';
|
</table>';
|
||||||
if( $cookie->id_employee == 1) {
|
|
||||||
echo '<br><br><h2 style="margin-top:15px">Export Remboursemments</h2>
|
echo '<br><br><h2 style="margin-top:15px">Export Remboursements</h2>
|
||||||
|
<fieldset>
|
||||||
|
<p>Exporter le détail des ventes dont la date de début est comprise entre : </p>
|
||||||
|
<form method="POST" action="'.$currentIndex.'" >'
|
||||||
|
.'<span class="form-group">'
|
||||||
|
.'<label style="float: none;" class="control-label" for="date_export_begin">Date de début :</label>'
|
||||||
|
.'<input type="date" name="date_export_begin" value="'.pSQl($this->date_export_begin).'" id="date_export_begin" class="form-control" />'
|
||||||
|
.'</span>'
|
||||||
|
.'<span class="form-group">'
|
||||||
|
.'<label style="float: none;" class="control-label" for="date_export_end">Date de fin :</label>'
|
||||||
|
.'<input type="date" name="date_export_end" value="'.pSQl($this->date_export_end).'" id="date_export_end" class="form-control" />'
|
||||||
|
.'</span>'
|
||||||
|
.'<input type="hidden" name="token" value="'.Tools::getAdminTokenLite(__CLASS__).'" />'
|
||||||
|
.'<input type="hidden" name="tab" value="'.__CLASS__.'" />'
|
||||||
|
.'<input type="submit" class="button" name="submitExport" value="Exporter les Remboursements" />'
|
||||||
|
.'</form>
|
||||||
|
</fieldset>';
|
||||||
|
|
||||||
|
if ($cookie->id_employee == 1 || $cookie->id_employee == 2 || $cookie->id_employee == 7) {
|
||||||
|
echo '<br><br><h2 style="margin-top:15px">Export Expeditions La Poste</h2>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
<p>Exporter le détail des expeditions dont la date est comprise entre : </p>
|
||||||
<form method="POST" action="'.$currentIndex.'" >'
|
<form method="POST" action="'.$currentIndex.'" >'
|
||||||
.'<span class="form-group">'
|
.'<span class="form-group">'
|
||||||
.'<label style="float: none;" class="control-label" for="date_export_begin">Date de début :</label>'
|
.'<label style="float: none;" class="control-label" for="date_export_begin">Date de début :</label>'
|
||||||
.'<input type="date" name="date_export_begin" value="'.pSQl($this->date_export_begin).'" id="date_export_begin" class="form-control" />'
|
.'<input type="date" name="date_expe_begin" value="'.pSQl($this->date_expe_begin).'" id="date_expe_begin" class="form-control" />'
|
||||||
.'</span>'
|
.'</span>'
|
||||||
.'<span class="form-group">'
|
.'<span class="form-group">'
|
||||||
.'<label style="float: none;" class="control-label" for="date_export_end">Date de fin :</label>'
|
.'<label style="float: none;" class="control-label" for="date_export_end">Date de fin :</label>'
|
||||||
.'<input type="date" name="date_export_end" value="'.pSQl($this->date_export_end).'" id="date_export_end" class="form-control" />'
|
.'<input type="date" name="date_expe_end" value="'.pSQl($this->date_expe_end).'" id="date_expe_end" class="form-control" />'
|
||||||
.'</span>'
|
.'</span>'
|
||||||
.'<input type="hidden" name="token" value="'.Tools::getAdminTokenLite(__CLASS__).'" />'
|
.'<input type="hidden" name="token" value="'.Tools::getAdminTokenLite(__CLASS__).'" />'
|
||||||
.'<input type="hidden" name="tab" value="'.__CLASS__.'" />'
|
.'<input type="hidden" name="tab" value="'.__CLASS__.'" />'
|
||||||
.'<input type="submit" class="button" name="submitExport" value="Exporter les Remboursemments" />'
|
.'<input type="submit" class="button" name="submitExportExp" value="Exporter les Expéditions" />'
|
||||||
.'</form>
|
.'</form>
|
||||||
</fieldset>'
|
</fieldset>'
|
||||||
;
|
;
|
||||||
@ -544,6 +591,19 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
');
|
');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getShippingDetails() {
|
||||||
|
return Db::getInstance()->ExecuteS('
|
||||||
|
SELECT pws.`id_order_detail`, pws.`shipping_number`, pws.`date_add`, pws.`quantity`, e.`email` AS `poste`, od.`id_order`, od.`product_id`, od.`product_attribute_id`, od.`product_name`, psc.`id_sale`, od.`product_quantity`,
|
||||||
|
ROUND(((od.`product_price` * (1 - od.`reduction_percent` / 100) - od.`reduction_amount`) * (1 - od.`group_reduction` / 100) * (1 + od.`tax_rate` / 100)), 6) AS `price`
|
||||||
|
FROM `'._DB_PREFIX_.'lapostews` pws
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'order_detail` od ON (od.`id_order_detail` = pws.`id_order_detail`)
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'employee` e ON (e.`id_employee` = pws.`id_employee`)
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'product_ps_cache` psc ON (psc.`id_product` = od.`product_id`)
|
||||||
|
WHERE pws.`date_add` BETWEEN "'.pSQL($this->date_expe_begin).'" AND "'.pSQL($this->date_expe_end).'"
|
||||||
|
ORDER BY pws.`date_add` ASC
|
||||||
|
');
|
||||||
|
}
|
||||||
|
|
||||||
public function getSales() {
|
public function getSales() {
|
||||||
return Db::getInstance()->ExecuteS('
|
return Db::getInstance()->ExecuteS('
|
||||||
SELECT p.`id_sale`, p.`date_start`, l.`name` as title
|
SELECT p.`id_sale`, p.`date_start`, l.`name` as title
|
||||||
@ -555,6 +615,17 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
');
|
');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getSaleInfo($id_sale) {
|
||||||
|
return Db::getInstance()->getRow('
|
||||||
|
SELECT p.`date_start`, l.`name` as title
|
||||||
|
FROM `'._DB_PREFIX_.'privatesale` p
|
||||||
|
LEFT JOIN `ps_privatesale_category` c ON (c.`id_sale` = p.`id_sale`)
|
||||||
|
LEFT JOIN `ps_category_lang` l ON (l.`id_category` = p.`id_category`)
|
||||||
|
WHERE p.`id_sale` = '.(int)$id_sale.'
|
||||||
|
AND l.`id_lang` = '. (int) Context::getContext()->language->id.'
|
||||||
|
');
|
||||||
|
}
|
||||||
|
|
||||||
public function getProducts($id_sale) {
|
public function getProducts($id_sale) {
|
||||||
$product_ids = array();
|
$product_ids = array();
|
||||||
foreach(Db::getInstance()->ExecuteS('
|
foreach(Db::getInstance()->ExecuteS('
|
||||||
@ -567,6 +638,38 @@ class AdminStatsLogistic extends AdminTab {
|
|||||||
return $product_ids;
|
return $product_ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function exportExpeCSV ($items, $filename) {
|
||||||
|
$fp = fopen(dirname(__FILE__).'/'.$filename, 'w');
|
||||||
|
$delim = ';';
|
||||||
|
|
||||||
|
$row_definition = array(
|
||||||
|
'shipping_number' => 'N. de suivi',
|
||||||
|
'date_add' => 'date d\'expe',
|
||||||
|
'poste' => 'Poste d\'expe',
|
||||||
|
'id_order' => 'id_order',
|
||||||
|
'id_sale' => 'id_sale',
|
||||||
|
'sale_title' => 'sale_title',
|
||||||
|
'product_id' => 'id_product',
|
||||||
|
'product_name' => 'product_name',
|
||||||
|
'price' => 'product_price',
|
||||||
|
'product_quantity' => 'Quantite envoyee',
|
||||||
|
);
|
||||||
|
|
||||||
|
$data=array();
|
||||||
|
foreach ($row_definition as $col) {
|
||||||
|
$data[] = $col;
|
||||||
|
}
|
||||||
|
fputcsv ($fp,$data,$delim);
|
||||||
|
foreach ($items as $item) {
|
||||||
|
$data = array();
|
||||||
|
foreach ($row_definition as $key => $col) {
|
||||||
|
$data[] = (isset($item[$key]) ? $item[$key] : '');
|
||||||
|
}
|
||||||
|
fputcsv ($fp,array_map('utf8_decode',array_values($data)),$delim);
|
||||||
|
}
|
||||||
|
fclose($fp);
|
||||||
|
}
|
||||||
|
|
||||||
public function exportCSV ($result, $filename) {
|
public function exportCSV ($result, $filename) {
|
||||||
//$fp = fopen("php://output", 'w');
|
//$fp = fopen("php://output", 'w');
|
||||||
$fp = fopen(dirname(__FILE__).'/'.$filename, 'w');
|
$fp = fopen(dirname(__FILE__).'/'.$filename, 'w');
|
||||||
|
47
override/classes/AttributeGroup.php
Normal file
47
override/classes/AttributeGroup.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
class AttributeGroup extends AttributeGroupCore
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @Override
|
||||||
|
* On vient directement recup que les attributeCombinaisons avec l'id_attribute = 0
|
||||||
|
*/
|
||||||
|
public static function cleanDeadCombinations()
|
||||||
|
{
|
||||||
|
$attributeCombinations = Db::getInstance()->ExecuteS('
|
||||||
|
SELECT pac.`id_attribute`, pa.`id_product_attribute`
|
||||||
|
FROM `'._DB_PREFIX_.'product_attribute` pa LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON (pa.`id_product_attribute` = pac.`id_product_attribute`)
|
||||||
|
WHERE pac.`id_attribute`=0
|
||||||
|
');
|
||||||
|
$toRemove = array();
|
||||||
|
foreach ($attributeCombinations AS $attributeCombination)
|
||||||
|
if ((int)($attributeCombination['id_attribute']) == 0)
|
||||||
|
$toRemove[] = (int)($attributeCombination['id_product_attribute']);
|
||||||
|
if (!empty($toRemove) AND Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'product_attribute` WHERE `id_product_attribute` IN ('.implode(', ', $toRemove).')') === false)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete()
|
||||||
|
{
|
||||||
|
/* Select children in order to find linked combinations */
|
||||||
|
$attributeIds = Db::getInstance()->ExecuteS('SELECT `id_attribute` FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)($this->id));
|
||||||
|
if ($attributeIds === false)
|
||||||
|
return false;
|
||||||
|
/* Removing attributes to the found combinations */
|
||||||
|
$toRemove = array();
|
||||||
|
foreach ($attributeIds AS $attribute)
|
||||||
|
$toRemove[] = (int)($attribute['id_attribute']);
|
||||||
|
if (!empty($toRemove) AND Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'product_attribute_combination` WHERE `id_attribute` IN ('.implode(', ', $toRemove).')') === false)
|
||||||
|
return false;
|
||||||
|
/* Remove combinations if they do not possess attributes anymore */
|
||||||
|
if (!self::cleanDeadCombinations())
|
||||||
|
return false;
|
||||||
|
/* Also delete related attributes */
|
||||||
|
if (Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'attribute_lang` WHERE `id_attribute` IN (SELECT id_attribute FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)($this->id).')') === false OR Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)($this->id)) === false)
|
||||||
|
return false;
|
||||||
|
$return = parent::delete();
|
||||||
|
if($return)
|
||||||
|
Module::hookExec('afterDeleteAttributeGroup', array('id_attribute_group' => $this->id));
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
}
|
@ -445,7 +445,7 @@ class FrontController extends FrontControllerCore {
|
|||||||
public function setMedia() {
|
public function setMedia() {
|
||||||
global $cookie;
|
global $cookie;
|
||||||
|
|
||||||
Tools::addCSS(_THEME_CSS_DIR_.'style.css?v=30');
|
Tools::addCSS(_THEME_CSS_DIR_.'style.css?v=31');
|
||||||
|
|
||||||
Tools::addJS(array(_PS_JS_DIR_.'scripts.js'));
|
Tools::addJS(array(_PS_JS_DIR_.'scripts.js'));
|
||||||
if(Tools::isSubmit('live_edit') AND Tools::getValue('ad') AND (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))) {
|
if(Tools::isSubmit('live_edit') AND Tools::getValue('ad') AND (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))) {
|
||||||
|
@ -2,69 +2,69 @@
|
|||||||
class Product extends ProductCore
|
class Product extends ProductCore
|
||||||
{
|
{
|
||||||
public $description_more;
|
public $description_more;
|
||||||
public $description_delivery;
|
public $description_delivery;
|
||||||
public $videos;
|
public $videos;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Override
|
* @Override
|
||||||
*/
|
*/
|
||||||
protected $fieldsValidateLang = array(
|
protected $fieldsValidateLang = array(
|
||||||
'meta_description' => 'isGenericName', 'meta_keywords' => 'isGenericName',
|
'meta_description' => 'isGenericName', 'meta_keywords' => 'isGenericName',
|
||||||
'meta_title' => 'isGenericName', 'link_rewrite' => 'isLinkRewrite', 'name' => 'isCatalogName',
|
'meta_title' => 'isGenericName', 'link_rewrite' => 'isLinkRewrite', 'name' => 'isCatalogName',
|
||||||
'description' => 'isString', 'description_short' => 'isString', 'available_now' => 'isGenericName', 'available_later' => 'IsGenericName',
|
'description' => 'isString', 'description_short' => 'isString', 'available_now' => 'isGenericName', 'available_later' => 'IsGenericName',
|
||||||
'description_more' => 'isString','videos' => 'isString', 'description_delivery' => 'isString');
|
'description_more' => 'isString','videos' => 'isString', 'description_delivery' => 'isString');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Override
|
* @Override
|
||||||
* Check then return multilingual fields for database interaction
|
* Check then return multilingual fields for database interaction
|
||||||
*
|
*
|
||||||
* @return array Multilingual fields
|
* @return array Multilingual fields
|
||||||
*/
|
*/
|
||||||
public function getTranslationsFieldsChild()
|
public function getTranslationsFieldsChild()
|
||||||
{
|
{
|
||||||
self::validateFieldsLang();
|
self::validateFieldsLang();
|
||||||
|
|
||||||
$fieldsArray = array('meta_description', 'meta_keywords', 'meta_title', 'link_rewrite', 'name', 'available_now', 'available_later');
|
$fieldsArray = array('meta_description', 'meta_keywords', 'meta_title', 'link_rewrite', 'name', 'available_now', 'available_later');
|
||||||
$fields = array();
|
$fields = array();
|
||||||
$languages = Language::getLanguages(false);
|
$languages = Language::getLanguages(false);
|
||||||
$defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
|
$defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
|
||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
{
|
{
|
||||||
$fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
|
$fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
|
||||||
$fields[$language['id_lang']][$this->identifier] = (int)($this->id);
|
$fields[$language['id_lang']][$this->identifier] = (int)($this->id);
|
||||||
$fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? pSQL($this->description[$language['id_lang']], true) : '';
|
$fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? pSQL($this->description[$language['id_lang']], true) : '';
|
||||||
$fields[$language['id_lang']]['description_short'] = (isset($this->description_short[$language['id_lang']])) ? pSQL($this->description_short[$language['id_lang']], true) : '';
|
$fields[$language['id_lang']]['description_short'] = (isset($this->description_short[$language['id_lang']])) ? pSQL($this->description_short[$language['id_lang']], true) : '';
|
||||||
$fields[$language['id_lang']]['description_more'] = (isset($this->description_more[$language['id_lang']])) ? pSQL($this->description_more[$language['id_lang']], true) : '';
|
$fields[$language['id_lang']]['description_more'] = (isset($this->description_more[$language['id_lang']])) ? pSQL($this->description_more[$language['id_lang']], true) : '';
|
||||||
$fields[$language['id_lang']]['videos'] = (isset($this->videos[$language['id_lang']])) ? pSQL($this->videos[$language['id_lang']], true) : '';
|
$fields[$language['id_lang']]['videos'] = (isset($this->videos[$language['id_lang']])) ? pSQL($this->videos[$language['id_lang']], true) : '';
|
||||||
$fields[$language['id_lang']]['description_delivery'] = (isset($this->description_delivery[$language['id_lang']])) ? pSQL($this->description_delivery[$language['id_lang']], true) : '';
|
$fields[$language['id_lang']]['description_delivery'] = (isset($this->description_delivery[$language['id_lang']])) ? pSQL($this->description_delivery[$language['id_lang']], true) : '';
|
||||||
foreach ($fieldsArray as $field)
|
foreach ($fieldsArray as $field)
|
||||||
{
|
{
|
||||||
if (!Validate::isTableOrIdentifier($field))
|
if (!Validate::isTableOrIdentifier($field))
|
||||||
die(Tools::displayError());
|
die(Tools::displayError());
|
||||||
|
|
||||||
/* Check fields validity */
|
/* Check fields validity */
|
||||||
if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
|
if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
|
||||||
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
|
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
|
||||||
elseif (in_array($field, $this->fieldsRequiredLang))
|
elseif (in_array($field, $this->fieldsRequiredLang))
|
||||||
{
|
{
|
||||||
if ($this->{$field} != '')
|
if ($this->{$field} != '')
|
||||||
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
|
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$fields[$language['id_lang']][$field] = '';
|
$fields[$language['id_lang']][$field] = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $fields;
|
return $fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCustomFields() {
|
public function getCustomFields() {
|
||||||
$customs_data = Db::getInstance()->getRow('
|
$customs_data = Db::getInstance()->getRow('
|
||||||
SELECT `nc8`, `id_country`
|
SELECT `nc8`, `id_country`
|
||||||
FROM `'._DB_PREFIX_.'product_customs`
|
FROM `'._DB_PREFIX_.'product_customs`
|
||||||
WHERE id_product = '.(int)$this->id
|
WHERE id_product = '.(int)$this->id
|
||||||
);
|
);
|
||||||
return $customs_data;
|
return $customs_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Override
|
* @Override
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
class ProductSale extends ProductSaleCore
|
class ProductSale extends ProductSaleCore
|
||||||
{
|
{
|
||||||
public static function getBestSalesVp($id_lang, $pageNumber = 0, $nbProducts = 10, $orderBy=NULL, $orderWay=NULL)
|
public static function getBestSalesVp($id_lang, $pageNumber = 0, $nbProducts = 10, $orderBy=NULL, $orderWay=NULL, $filterPrice=NULL)
|
||||||
{
|
{
|
||||||
$id_category_vp = self::_getIdCategoryPrivateSales();
|
$id_category_vp = self::_getIdCategoryPrivateSales();
|
||||||
// $id_category_vp = array_unique($id_category_vp);
|
// $id_category_vp = array_unique($id_category_vp);
|
||||||
@ -60,6 +60,9 @@ class ProductSale extends ProductSaleCore
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
$data = Product::getProductsProperties($id_lang, $sale_product, false);
|
$data = Product::getProductsProperties($id_lang, $sale_product, false);
|
||||||
|
if (isset($filterPrice) && is_int($filterPrice) && $data[0]['price']<$filterPrice) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$result[] = $data[0];
|
$result[] = $data[0];
|
||||||
unset($categories);
|
unset($categories);
|
||||||
}
|
}
|
||||||
|
@ -168,12 +168,12 @@ class ParentOrderController extends ParentOrderControllerCore {
|
|||||||
// distinction "at home" et "out of home"
|
// distinction "at home" et "out of home"
|
||||||
$carriers_ah = array();
|
$carriers_ah = array();
|
||||||
$carriers_ooh = array();
|
$carriers_ooh = array();
|
||||||
// $config_carrier_ooh = array(88,89); // prod
|
$config_carrier_ooh = array(88,89); // prod
|
||||||
$config_carrier_ooh = array(47,48); // dev
|
// $config_carrier_ooh = array(47,48); // dev
|
||||||
// $config_carrier_ooh = array(40,45); // local
|
// $config_carrier_ooh = array(40,45); // local
|
||||||
foreach ($carriers as $carrier) {
|
foreach ($carriers as $carrier) {
|
||||||
// if($shipping_only_athome && $carrier['id_carrier'] != 87) { // prod
|
if($shipping_only_athome && $carrier['id_carrier'] != 87) { // prod
|
||||||
if($shipping_only_athome && $carrier['id_carrier'] != 45) { // dev
|
// if($shipping_only_athome && $carrier['id_carrier'] != 45) { // dev
|
||||||
// if($shipping_only_athome && $carrier['id_carrier'] != 38) { // local
|
// if($shipping_only_athome && $carrier['id_carrier'] != 38) { // local
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -6415,6 +6415,22 @@ table#carrierTable tbody td {
|
|||||||
padding: 0px 1px;
|
padding: 0px 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.paypal_account {
|
||||||
|
background: #fff none repeat scroll 0 0;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
margin: 10px 0 5px;
|
||||||
|
padding: 15px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.paypal_account input[type="radio"] {
|
||||||
|
float: left;
|
||||||
|
margin-right: 7px;
|
||||||
|
position: relative;
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
.paypal_account label {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes slideInDown {
|
@keyframes slideInDown {
|
||||||
0% {
|
0% {
|
||||||
|
@ -282,6 +282,9 @@ $_LANG['order-address_da9d6ec2998a07c31ec9eb93c9f254ed'] = 'Votre adresse de fac
|
|||||||
$_LANG['order-address_8a8c9edb5531fa2f822295d1830d090f'] = 'Votre adresse de livraison';
|
$_LANG['order-address_8a8c9edb5531fa2f822295d1830d090f'] = 'Votre adresse de livraison';
|
||||||
$_LANG['order-address_06933067aafd48425d67bcb01bba5cb6'] = 'Mettre à jour';
|
$_LANG['order-address_06933067aafd48425d67bcb01bba5cb6'] = 'Mettre à jour';
|
||||||
$_LANG['order-address_284b47b0bb63ae2df3b29f0e691d6fcf'] = 'Adresses';
|
$_LANG['order-address_284b47b0bb63ae2df3b29f0e691d6fcf'] = 'Adresses';
|
||||||
|
$_LANG['order-address_4ce81305b7edb043d0a7a5c75cab17d0'] = 'Il y a';
|
||||||
|
$_LANG['order-address_cb5e100e5a9a3e7f6d1fd97512215282'] = 'une erreur';
|
||||||
|
$_LANG['order-address_61a328f9db2de8db14231b3259a65b37'] = 'La livraison dans les DOM-TOM n\'est pas disponible, nous vous prions de nous en excuser';
|
||||||
$_LANG['order-address_d0748d2df4aed77bd7591b3ac6c52c83'] = 'Choisissez une adresse de livraison :';
|
$_LANG['order-address_d0748d2df4aed77bd7591b3ac6c52c83'] = 'Choisissez une adresse de livraison :';
|
||||||
$_LANG['order-address_ec211f7c20af43e742bf2570c3cb84f9'] = 'Ajouter';
|
$_LANG['order-address_ec211f7c20af43e742bf2570c3cb84f9'] = 'Ajouter';
|
||||||
$_LANG['order-address_b15e1100a6196acba01ef7aaa5b2a9e5'] = 'Ajoutez une nouvelle adresse';
|
$_LANG['order-address_b15e1100a6196acba01ef7aaa5b2a9e5'] = 'Ajoutez une nouvelle adresse';
|
||||||
@ -303,12 +306,14 @@ $_LANG['order-carrier_e085dcd05d73bdd5afe338e5b6e42a18'] = 'Choisissez votre mod
|
|||||||
$_LANG['order-carrier_c8c4080207cd4f02548c8cb6285bd16b'] = 'Aucun transporteur nécessaire pour cette commande';
|
$_LANG['order-carrier_c8c4080207cd4f02548c8cb6285bd16b'] = 'Aucun transporteur nécessaire pour cette commande';
|
||||||
$_LANG['order-carrier_0fce1189b263c211a8239fb0e9df004d'] = 'J\'accepte de recevoir ma commande dans un emballage recyclé';
|
$_LANG['order-carrier_0fce1189b263c211a8239fb0e9df004d'] = 'J\'accepte de recevoir ma commande dans un emballage recyclé';
|
||||||
$_LANG['order-carrier_8f90815af11493295587f91f571c2f95'] = 'Il n\'y a pas de transporteur disponible qui délivre à cette adresse.';
|
$_LANG['order-carrier_8f90815af11493295587f91f571c2f95'] = 'Il n\'y a pas de transporteur disponible qui délivre à cette adresse.';
|
||||||
|
$_LANG['order-carrier_b744007f56f155926b4584feb2570e14'] = 'À domicile';
|
||||||
$_LANG['order-carrier_914419aa32f04011357d3b604a86d7eb'] = 'Transporteur';
|
$_LANG['order-carrier_914419aa32f04011357d3b604a86d7eb'] = 'Transporteur';
|
||||||
$_LANG['order-carrier_a82be0f551b8708bc08eb33cd9ded0cf'] = 'Informations';
|
$_LANG['order-carrier_a82be0f551b8708bc08eb33cd9ded0cf'] = 'Informations';
|
||||||
$_LANG['order-carrier_3601146c4e948c32b6424d2c0a7f0118'] = 'Prix';
|
$_LANG['order-carrier_3601146c4e948c32b6424d2c0a7f0118'] = 'Prix';
|
||||||
$_LANG['order-carrier_4cd4c5ff8d8913c314f7c26f32f6cf96'] = 'Délai de livraison affiché durant la commande';
|
$_LANG['order-carrier_4cd4c5ff8d8913c314f7c26f32f6cf96'] = 'Délai de livraison affiché durant la commande';
|
||||||
$_LANG['order-carrier_21034ae6d01a83e702839a72ba8a77b0'] = 'HT';
|
$_LANG['order-carrier_21034ae6d01a83e702839a72ba8a77b0'] = 'HT';
|
||||||
$_LANG['order-carrier_1f87346a16cf80c372065de3c54c86d9'] = 'TTC';
|
$_LANG['order-carrier_1f87346a16cf80c372065de3c54c86d9'] = 'TTC';
|
||||||
|
$_LANG['order-carrier_c5a800585db893dfa5e05bfd4f328243'] = 'En point relais';
|
||||||
$_LANG['order-carrier_0d9175fe89fb80d815e7d03698b6e83a'] = 'Cadeau';
|
$_LANG['order-carrier_0d9175fe89fb80d815e7d03698b6e83a'] = 'Cadeau';
|
||||||
$_LANG['order-carrier_ea3bd794dfeb4537c194ee43899516ed'] = 'Je souhaite que ma commande soit emballée dans un papier-cadeau.';
|
$_LANG['order-carrier_ea3bd794dfeb4537c194ee43899516ed'] = 'Je souhaite que ma commande soit emballée dans un papier-cadeau.';
|
||||||
$_LANG['order-carrier_5c2dfd55fea1f5c6adef500fcb6403b4'] = 'Supp. de';
|
$_LANG['order-carrier_5c2dfd55fea1f5c6adef500fcb6403b4'] = 'Supp. de';
|
||||||
|
@ -4753,6 +4753,7 @@ body#addresses #center_column p.footer_links a.button.back_account {
|
|||||||
#address_ac strong {
|
#address_ac strong {
|
||||||
padding: 0px 1px;
|
padding: 0px 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body#product #primary_block #more_info_block .sheets ul li,
|
body#product #primary_block #more_info_block .sheets ul li,
|
||||||
body#product #primary_block #more_info_block .sheets p {
|
body#product #primary_block #more_info_block .sheets p {
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
@ -4766,3 +4767,14 @@ body#product .flex-control-nav.flex-control-paging{
|
|||||||
body#product #best-sellers_block_product{
|
body#product #best-sellers_block_product{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#cookiescontent { padding: 10px; font-size: 12px; }
|
||||||
|
|
||||||
|
h4.subtitle {
|
||||||
|
color: #e36ea2;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
.table_skin {}
|
||||||
|
.table_skin td { font-size: 12px; }
|
||||||
|
.table_skin a { color: #666666 }
|
||||||
|
@ -41,6 +41,7 @@ $_LANG['addresses_06933067aafd48425d67bcb01bba5cb6'] = 'Mettre à jour';
|
|||||||
$_LANG['addresses_729a51874fe901b092899e9e8b31c97a'] = 'Êtes-vous sûr ?';
|
$_LANG['addresses_729a51874fe901b092899e9e8b31c97a'] = 'Êtes-vous sûr ?';
|
||||||
$_LANG['addresses_f2a6c498fb90ee345d997f888fce3b18'] = 'Supprimer';
|
$_LANG['addresses_f2a6c498fb90ee345d997f888fce3b18'] = 'Supprimer';
|
||||||
$_LANG['addresses_b32dd33df738183cb85ab8ea714f8026'] = 'Aucune adresse disponible.';
|
$_LANG['addresses_b32dd33df738183cb85ab8ea714f8026'] = 'Aucune adresse disponible.';
|
||||||
|
$_LANG['addresses_3c7d34ae915c6664189dab2aebb02307'] = 'Ajouter une adresse';
|
||||||
$_LANG['addresses_122e15ccab4135a2786937a24b11e5e9'] = 'Retour à mon compte';
|
$_LANG['addresses_122e15ccab4135a2786937a24b11e5e9'] = 'Retour à mon compte';
|
||||||
$_LANG['authentication_99dea78007133396a7b8ed70578ac6ae'] = 'Identifiant';
|
$_LANG['authentication_99dea78007133396a7b8ed70578ac6ae'] = 'Identifiant';
|
||||||
$_LANG['authentication_bffe9a3c9a7e00ba00a11749e022d911'] = 'Entrez';
|
$_LANG['authentication_bffe9a3c9a7e00ba00a11749e022d911'] = 'Entrez';
|
||||||
@ -299,6 +300,8 @@ $_LANG['order-carrier_b4e59f3a4554655a099738382ebedbff'] = 'Vous pouvez ajouter
|
|||||||
$_LANG['order-carrier_dd1f775e443ff3b9a89270713580a51b'] = 'Précédent';
|
$_LANG['order-carrier_dd1f775e443ff3b9a89270713580a51b'] = 'Précédent';
|
||||||
$_LANG['order-carrier_10ac3d04253ef7e1ddc73e6091c0cd55'] = 'Suivant';
|
$_LANG['order-carrier_10ac3d04253ef7e1ddc73e6091c0cd55'] = 'Suivant';
|
||||||
$_LANG['order-carrier_bd5b551d1757a856d9f2d01dc7850080'] = 'Laissez un message';
|
$_LANG['order-carrier_bd5b551d1757a856d9f2d01dc7850080'] = 'Laissez un message';
|
||||||
|
$_LANG['order-carrier_b744007f56f155926b4584feb2570e14'] = 'À domicile';
|
||||||
|
$_LANG['order-carrier_c5a800585db893dfa5e05bfd4f328243'] = 'En point relais';
|
||||||
$_LANG['order-carrier_617096c86d35478132502be00e12e016'] = 'Si vous souhaitez ajouter un commentaire sur votre commande, merci d\'écrire ci-dessous.';
|
$_LANG['order-carrier_617096c86d35478132502be00e12e016'] = 'Si vous souhaitez ajouter un commentaire sur votre commande, merci d\'écrire ci-dessous.';
|
||||||
$_LANG['order-confirmation_fb077ecba55e5552916bde26d8b9e794'] = 'Confirmation de commande';
|
$_LANG['order-confirmation_fb077ecba55e5552916bde26d8b9e794'] = 'Confirmation de commande';
|
||||||
$_LANG['order-confirmation_8b1a9953c4611296a827abf8c47804d7'] = 'Bonjour';
|
$_LANG['order-confirmation_8b1a9953c4611296a827abf8c47804d7'] = 'Bonjour';
|
||||||
|
Loading…
Reference in New Issue
Block a user