// Merge -> revision 8952
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@8957 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
+5
-2
@@ -535,8 +535,11 @@ if (Tools::isSubmit('loadImportMatchs'))
|
|||||||
|
|
||||||
if (Tools::isSubmit('toggleScreencast'))
|
if (Tools::isSubmit('toggleScreencast'))
|
||||||
{
|
{
|
||||||
$context->employee->show_screencast = (int)(!(bool)$context->employee->show_screencast);
|
if (Validate::isLoadedObject($context->employee))
|
||||||
$context->employee->save();
|
{
|
||||||
|
$context->employee->bo_show_screencast = !$context->employee->bo_show_screencast;
|
||||||
|
$context->employee->update();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Tools::isSubmit('helpAccess'))
|
if (Tools::isSubmit('helpAccess'))
|
||||||
|
|||||||
@@ -43,5 +43,5 @@ $smtpPort = $_GET['smtpPort'];
|
|||||||
$smtpEncryption = $_GET['smtpEnc'];
|
$smtpEncryption = $_GET['smtpEnc'];
|
||||||
|
|
||||||
$result = Mail::sendMailTest(Tools::htmlentitiesUTF8($smtpChecked), Tools::htmlentitiesUTF8($smtpServer), Tools::htmlentitiesUTF8($content), Tools::htmlentitiesUTF8($subject), Tools::htmlentitiesUTF8($type), Tools::htmlentitiesUTF8($to), Tools::htmlentitiesUTF8($from), Tools::htmlentitiesUTF8($smtpLogin), Tools::htmlentitiesUTF8($smtpPassword), Tools::htmlentitiesUTF8($smtpPort), Tools::htmlentitiesUTF8($smtpEncryption));
|
$result = Mail::sendMailTest(Tools::htmlentitiesUTF8($smtpChecked), Tools::htmlentitiesUTF8($smtpServer), Tools::htmlentitiesUTF8($content), Tools::htmlentitiesUTF8($subject), Tools::htmlentitiesUTF8($type), Tools::htmlentitiesUTF8($to), Tools::htmlentitiesUTF8($from), Tools::htmlentitiesUTF8($smtpLogin), Tools::htmlentitiesUTF8($smtpPassword), Tools::htmlentitiesUTF8($smtpPort), Tools::htmlentitiesUTF8($smtpEncryption));
|
||||||
die($result ? 'ok' : 'fail');
|
die($result === true ? 'ok' : $result);
|
||||||
|
|
||||||
|
|||||||
@@ -257,10 +257,7 @@ class AdminCarts extends AdminTab
|
|||||||
|
|
||||||
if (is_array($customizedDatas) AND isset($customizedDatas[(int)($product['id_product'])][(int)($product['id_product_attribute'])]))
|
if (is_array($customizedDatas) AND isset($customizedDatas[(int)($product['id_product'])][(int)($product['id_product_attribute'])]))
|
||||||
{
|
{
|
||||||
if (isset($image['id_image']))
|
if ($image = new Image($image['id_image']))
|
||||||
$image = new Image($image['id_image']);
|
|
||||||
else
|
|
||||||
$image = new Image();
|
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center">'.($image->id ? cacheImage(_PS_IMG_DIR_.'p/'.$image->getExistingImgPath().'.jpg',
|
<td align="center">'.($image->id ? cacheImage(_PS_IMG_DIR_.'p/'.$image->getExistingImgPath().'.jpg',
|
||||||
|
|||||||
@@ -152,6 +152,14 @@ class AdminEmployees extends AdminTab
|
|||||||
<input type="radio" name="bo_uimode" id="uimode_off" value="click" '.($this->getFieldValue($obj, 'bo_uimode') == 'click' ? 'checked="checked" ' : '').'/>
|
<input type="radio" name="bo_uimode" id="uimode_off" value="click" '.($this->getFieldValue($obj, 'bo_uimode') == 'click' ? 'checked="checked" ' : '').'/>
|
||||||
<label class="t" for="uimode_off">'.$this->l('Click on tabs').'</label>
|
<label class="t" for="uimode_off">'.$this->l('Click on tabs').'</label>
|
||||||
</div><div class="clear"> </div>
|
</div><div class="clear"> </div>
|
||||||
|
<label>'.$this->l('Show screencast:').' </label>
|
||||||
|
<div class="margin-form">
|
||||||
|
<input type="radio" name="bo_show_screencast" id="bo_show_screencast_on" value="1" '.($this->getFieldValue($obj, 'bo_show_screencast') ? 'checked="checked" ' : '').'/>
|
||||||
|
<label class="t" for="active_on"> <img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" /></label>
|
||||||
|
<input type="radio" name="bo_show_screencast" id="bo_show_screencast_off" value="0" '.(!$this->getFieldValue($obj, 'bo_show_screencast') ? 'checked="checked" ' : '').'/>
|
||||||
|
<label class="t" for="active_off"> <img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" /></label>
|
||||||
|
<p>'.$this->l('Show the welcome video on the dashbord of the back office').'</p>
|
||||||
|
</div>
|
||||||
<label>'.$this->l('Status:').' </label>
|
<label>'.$this->l('Status:').' </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="radio" name="active" id="active_on" value="1" '.($this->getFieldValue($obj, 'active') ? 'checked="checked" ' : '').'/>
|
<input type="radio" name="active" id="active_on" value="1" '.($this->getFieldValue($obj, 'active') ? 'checked="checked" ' : '').'/>
|
||||||
|
|||||||
@@ -101,6 +101,9 @@ class AdminImport extends AdminTab
|
|||||||
'image_position' => array('label' => $this->l('Image position'),
|
'image_position' => array('label' => $this->l('Image position'),
|
||||||
'help' => $this->l('Position of the product image to use for this combination. If you use this field, leave image URL empty.')),
|
'help' => $this->l('Position of the product image to use for this combination. If you use this field, leave image URL empty.')),
|
||||||
'image_url' => array('label' => $this->l('Image URL')),
|
'image_url' => array('label' => $this->l('Image URL')),
|
||||||
|
'delete_existing_images' => array(
|
||||||
|
'label' => $this->l('Delete existing images (0 = no, 1 = yes)'),
|
||||||
|
'help' => $this->l('If you do not specify this column and you specify the column images, all images of the product will be replaced by those specified in the import file')),
|
||||||
);
|
);
|
||||||
|
|
||||||
self::$default_values = array(
|
self::$default_values = array(
|
||||||
@@ -475,8 +478,7 @@ class AdminImport extends AdminTab
|
|||||||
$path = _PS_CAT_IMG_DIR_.(int)($id_entity);
|
$path = _PS_CAT_IMG_DIR_.(int)($id_entity);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (copy(str_replace(' ', '%20', trim($url)), $tmpfile))
|
||||||
if (copy(trim($url), $tmpfile))
|
|
||||||
{
|
{
|
||||||
imageResize($tmpfile, $path.'.jpg');
|
imageResize($tmpfile, $path.'.jpg');
|
||||||
$imagesTypes = ImageType::getImagesTypes($entity);
|
$imagesTypes = ImageType::getImagesTypes($entity);
|
||||||
@@ -938,6 +940,11 @@ class AdminImport extends AdminTab
|
|||||||
|
|
||||||
$product = new Product((int)($info['id_product']), false, $defaultLanguage);
|
$product = new Product((int)($info['id_product']), false, $defaultLanguage);
|
||||||
$id_image = null;
|
$id_image = null;
|
||||||
|
//delete existing images if "delete_existing_images" is set to 1
|
||||||
|
if (array_key_exists('delete_existing_images', $info) && $info['delete_existing_images'])
|
||||||
|
$product->deleteImages();
|
||||||
|
elseif (array_key_exists('image_url', $info))
|
||||||
|
$product->deleteImages();
|
||||||
|
|
||||||
if (isset($info['image_url']) && $info['image_url'])
|
if (isset($info['image_url']) && $info['image_url'])
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -446,6 +446,7 @@ class AdminPerformance extends AdminTab
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div id="directory_depth">
|
<div id="directory_depth">
|
||||||
|
<div class="warn">'.$this->l('The system CacheFS should be used only when the infrastructure contain only one front-end server. Ask your hosting company if you don\'t know.').'</div>
|
||||||
<label>'.$this->l('Directory depth:').' </label>
|
<label>'.$this->l('Directory depth:').' </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" name="ps_cache_fs_directory_depth" value="'.($depth ? $depth : 1).'" />
|
<input type="text" name="ps_cache_fs_directory_depth" value="'.($depth ? $depth : 1).'" />
|
||||||
|
|||||||
@@ -74,53 +74,6 @@ class AdminScenes extends AdminTab
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Build a categories tree
|
|
||||||
*
|
|
||||||
* @param array $indexedCategories Array with categories where product is indexed (in order to check checkbox)
|
|
||||||
* @param array $categories Categories to list
|
|
||||||
* @param array $current Current category
|
|
||||||
* @param integer $id_category Current category id
|
|
||||||
*/
|
|
||||||
public function recurseCategoryForInclude($indexedCategories, $categories, $current, $id_category = 1, $id_category_default = NULL, $has_suite = array())
|
|
||||||
{
|
|
||||||
global $done;
|
|
||||||
static $irow;
|
|
||||||
|
|
||||||
$id_obj = (int)(Tools::getValue($this->id));
|
|
||||||
|
|
||||||
if (!isset($done[$current['infos']['id_parent']]))
|
|
||||||
$done[$current['infos']['id_parent']] = 0;
|
|
||||||
$done[$current['infos']['id_parent']] += 1;
|
|
||||||
|
|
||||||
$todo = sizeof($categories[$current['infos']['id_parent']]);
|
|
||||||
$doneC = $done[$current['infos']['id_parent']];
|
|
||||||
|
|
||||||
$level = $current['infos']['level_depth'] + 1;
|
|
||||||
|
|
||||||
echo '
|
|
||||||
<tr class="'.($irow++ % 2 ? 'alt_row' : '').'">
|
|
||||||
<td>
|
|
||||||
<input type="checkbox" name="categories[]" class="categoryBox'.($id_category_default == $id_category ? ' id_category_default' : '').'" id="categoryBox_'.$id_category.'" value="'.$id_category.'"'.((in_array($id_category, $indexedCategories) OR ((int)(Tools::getValue('id_category')) == $id_category AND !(int)($id_obj))) ? ' checked="checked"' : '').' />
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
'.$id_category.'
|
|
||||||
</td>
|
|
||||||
<td>';
|
|
||||||
for ($i = 2; $i < $level; $i++)
|
|
||||||
echo '<img src="../img/admin/lvl_'.$has_suite[$i - 2].'.gif" alt="" style="vertical-align: middle;"/>';
|
|
||||||
echo '<img src="../img/admin/'.($level == 1 ? 'lv1.gif' : 'lv2_'.($todo == $doneC ? 'f' : 'b').'.gif').'" alt="" style="vertical-align: middle;"/>
|
|
||||||
<label for="categoryBox_'.$id_category.'" class="t">'.stripslashes($current['infos']['name']).'</label></td>
|
|
||||||
</tr>';
|
|
||||||
|
|
||||||
if ($level > 1)
|
|
||||||
$has_suite[] = ($todo == $doneC ? 0 : 1);
|
|
||||||
if (isset($categories[$id_category]))
|
|
||||||
foreach ($categories[$id_category] AS $key => $row)
|
|
||||||
if ($key != 'infos')
|
|
||||||
$this->recurseCategoryForInclude($indexedCategories, $categories, $categories[$id_category][$key], $key, $id_category_default, $has_suite);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function displayForm($isMainTab = true)
|
public function displayForm($isMainTab = true)
|
||||||
{
|
{
|
||||||
parent::displayForm();
|
parent::displayForm();
|
||||||
@@ -223,29 +176,23 @@ class AdminScenes extends AdminTab
|
|||||||
echo '</div>
|
echo '</div>
|
||||||
';
|
';
|
||||||
|
|
||||||
echo '<label>'.$this->l('Category:').' </label>
|
$selectedCat = array();
|
||||||
<div class="margin-form">
|
if (Tools::isSubmit('categories'))
|
||||||
<div style="overflow: auto; max-height: 300px; padding-top: 0.6em;" id="categoryList">
|
foreach (Tools::getValue('categories') as $k => $row)
|
||||||
<table cellspacing="0" cellpadding="0" class="table" style="width: 600px;">
|
$selectedCat[] = $row;
|
||||||
<tr>
|
else if ($obj->id)
|
||||||
<th><input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, \'categories[]\', this.checked)" /></th>
|
foreach (Scene::getIndexedCategories($obj->id) as $k => $row)
|
||||||
<th>'.$this->l('ID').'</th>
|
$selectedCat[] = $row['id_category'];
|
||||||
<th>'.$this->l('Image map name:').'</th>
|
|
||||||
</tr>';
|
$trads = array(
|
||||||
$categories = Category::getCategories($this->context->language->id, false);
|
'Home' => $this->l('Home'),
|
||||||
$done = array();
|
'selected' => $this->l('selected'),
|
||||||
$index = array();
|
'Collapse All' => $this->l('Collapse All'),
|
||||||
if (Tools::isSubmit('categories'))
|
'Expand All' => $this->l('Expand All'),
|
||||||
foreach (Tools::getValue('categories') AS $k => $row)
|
'Check All' => $this->l('Check All'),
|
||||||
$index[] = $row;
|
'Uncheck All' => $this->l('Uncheck All')
|
||||||
elseif ($obj->id)
|
);
|
||||||
foreach (Scene::getIndexedCategories($obj->id) AS $k => $row)
|
|
||||||
$index[] = $row['id_category'];
|
|
||||||
$this->recurseCategoryForInclude($index, $categories, $categories[0][1], 1, null);
|
|
||||||
echo '</table>
|
|
||||||
<p style="padding:0px; margin:0px 0px 10px 0px;">'.$this->l('Mark all checkbox(es) of the categories for which the image map is to appear.').'<sup> *</sup></p>
|
|
||||||
</div>
|
|
||||||
</div>';
|
|
||||||
if (Shop::isMultiShopActivated())
|
if (Shop::isMultiShopActivated())
|
||||||
{
|
{
|
||||||
echo '<label>'.$this->l('Shop association:').'</label><div class="margin-form">';
|
echo '<label>'.$this->l('Shop association:').'</label><div class="margin-form">';
|
||||||
@@ -253,9 +200,16 @@ class AdminScenes extends AdminTab
|
|||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
echo '
|
echo '
|
||||||
|
<label>'.$this->l('Categories:').'</label>
|
||||||
|
<div class="margin-form">
|
||||||
|
';
|
||||||
|
echo Helper::renderAdminCategorieTree($trads, $selectedCat, 'categories');
|
||||||
|
echo '
|
||||||
|
</div>
|
||||||
<div id="save_scene" class="margin-form" '.(($obj->id && file_exists(_PS_SCENE_IMG_DIR_.$obj->id.'-large_scene.jpg')) ? '' : 'style="display:none;"') .'>
|
<div id="save_scene" class="margin-form" '.(($obj->id && file_exists(_PS_SCENE_IMG_DIR_.$obj->id.'-large_scene.jpg')) ? '' : 'style="display:none;"') .'>
|
||||||
<input type="submit" name="save_image_map" value="'.$this->l('Save Image Map(s)').'" class="button" />
|
<input type="submit" name="save_image_map" value="'.$this->l('Save Image Map(s)').'" class="button" />
|
||||||
</div>';
|
</div>
|
||||||
|
';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<p>{l s ='To receive PrestaShop update warnings, you need to activate the <b>allow_url_fopen</b> command in your <b>php.ini</b> config file.'} [<a href="http://www.php.net/manual/'.$isoUser.'/ref.filesystem.php">{l s ='more info'}</a>]</p>
|
<p>{l s ='To receive PrestaShop update warnings, you need to activate the <b>allow_url_fopen</b> command in your <b>php.ini</b> config file.'} [<a href="http://www.php.net/manual/'.$isoUser.'/ref.filesystem.php">{l s ='more info'}</a>]</p>
|
||||||
<p>{l s ='If you don\'t know how to do that, please contact your host administrator !'}</p><br />
|
<p>{l s ='If you don\'t know how to do that, please contact your host administrator !'}</p><br />
|
||||||
{/if}
|
{/if}
|
||||||
{if $show_screencast}
|
{if $employee->bo_show_screencast}
|
||||||
<div id="adminpresentation">
|
<div id="adminpresentation">
|
||||||
<iframe src="{$protocol}://screencasts.prestashop.com/screencast.php?iso_lang={$isoUser}" style="border:none;width:100%;height:420px;" scrolling="no"></iframe>
|
<iframe src="{$protocol}://screencasts.prestashop.com/screencast.php?iso_lang={$isoUser}" style="border:none;width:100%;height:420px;" scrolling="no"></iframe>
|
||||||
<div id="footer_iframe_home">
|
<div id="footer_iframe_home">
|
||||||
|
|||||||
Vendored
+2
@@ -298,6 +298,8 @@
|
|||||||
'AdminAddressesController' => '',
|
'AdminAddressesController' => '',
|
||||||
'AdminHomeControllerCore' => 'controllers/admin/AdminHomeController.php',
|
'AdminHomeControllerCore' => 'controllers/admin/AdminHomeController.php',
|
||||||
'AdminHomeController' => 'override/controllers/admin/AdminHomeController.php',
|
'AdminHomeController' => 'override/controllers/admin/AdminHomeController.php',
|
||||||
|
'AdminRequestSqlControllerCore' => 'controllers/admin/AdminRequestSqlController.php',
|
||||||
|
'AdminRequestSqlController' => '',
|
||||||
'AdminToolsControllerCore' => 'controllers/admin/AdminToolsController.php',
|
'AdminToolsControllerCore' => 'controllers/admin/AdminToolsController.php',
|
||||||
'AdminToolsController' => 'override/controllers/admin/AdminToolsController.php',
|
'AdminToolsController' => 'override/controllers/admin/AdminToolsController.php',
|
||||||
'AdminTrackingController' => 'controllers/admin/AdminTrackingController.php',
|
'AdminTrackingController' => 'controllers/admin/AdminTrackingController.php',
|
||||||
|
|||||||
@@ -828,7 +828,7 @@ abstract class AdminTabCore
|
|||||||
$type = (array_key_exists('filter_type', $field) ? $field['filter_type'] : (array_key_exists('type', $field) ? $field['type'] : false));
|
$type = (array_key_exists('filter_type', $field) ? $field['filter_type'] : (array_key_exists('type', $field) ? $field['type'] : false));
|
||||||
if (($type == 'date' OR $type == 'datetime') AND is_string($value))
|
if (($type == 'date' OR $type == 'datetime') AND is_string($value))
|
||||||
$value = unserialize($value);
|
$value = unserialize($value);
|
||||||
$key = isset($tmpTab[1]) ? $tmpTab[0].'.'.$tmpTab[1] : $tmpTab[0];
|
$key = isset($tmpTab[1]) ? $tmpTab[0].'.`'.bqSQL($tmpTab[1]).'`' : '`'.bqSQL($tmpTab[0]).'`';
|
||||||
if (array_key_exists('tmpTableFilter', $field))
|
if (array_key_exists('tmpTableFilter', $field))
|
||||||
$sqlFilter = & $this->_tmpTableFilter;
|
$sqlFilter = & $this->_tmpTableFilter;
|
||||||
elseif (array_key_exists('havingFilter', $field))
|
elseif (array_key_exists('havingFilter', $field))
|
||||||
@@ -844,7 +844,7 @@ abstract class AdminTabCore
|
|||||||
if (!Validate::isDate($value[0]))
|
if (!Validate::isDate($value[0]))
|
||||||
$this->_errors[] = Tools::displayError('\'from:\' date format is invalid (YYYY-MM-DD)');
|
$this->_errors[] = Tools::displayError('\'from:\' date format is invalid (YYYY-MM-DD)');
|
||||||
else
|
else
|
||||||
$sqlFilter .= ' AND '.bqSQL($key).' >= \''.pSQL(Tools::dateFrom($value[0])).'\'';
|
$sqlFilter .= ' AND '.$key.' >= \''.pSQL(Tools::dateFrom($value[0])).'\'';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($value[1]) AND !empty($value[1]))
|
if (isset($value[1]) AND !empty($value[1]))
|
||||||
@@ -852,7 +852,7 @@ abstract class AdminTabCore
|
|||||||
if (!Validate::isDate($value[1]))
|
if (!Validate::isDate($value[1]))
|
||||||
$this->_errors[] = Tools::displayError('\'to:\' date format is invalid (YYYY-MM-DD)');
|
$this->_errors[] = Tools::displayError('\'to:\' date format is invalid (YYYY-MM-DD)');
|
||||||
else
|
else
|
||||||
$sqlFilter .= ' AND '.bqSQL($key).' <= \''.pSQL(Tools::dateTo($value[1])).'\'';
|
$sqlFilter .= ' AND '.$key.' <= \''.pSQL(Tools::dateTo($value[1])).'\'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ abstract class CacheCore
|
|||||||
{
|
{
|
||||||
/** @var Cache */
|
/** @var Cache */
|
||||||
protected static $_instance;
|
protected static $_instance;
|
||||||
protected $_keysCached;
|
protected $_keysCached = array();
|
||||||
protected $_tablesCached = array();
|
protected $_tablesCached = array();
|
||||||
protected $_blackList = array('cart',
|
protected $_blackList = array('cart',
|
||||||
'cart_discount',
|
'cart_discount',
|
||||||
|
|||||||
+7
-5
@@ -98,15 +98,17 @@ class CacheFSCore extends Cache {
|
|||||||
public function setQuery($query, $result)
|
public function setQuery($query, $result)
|
||||||
{
|
{
|
||||||
$md5_query = md5($query);
|
$md5_query = md5($query);
|
||||||
if (isset($this->_keysCached[$md5_query]))
|
|
||||||
return true;
|
|
||||||
if ($this->isBlacklist($query))
|
if ($this->isBlacklist($query))
|
||||||
return true;
|
return true;
|
||||||
|
$this->_setKeys();
|
||||||
|
if (isset($this->_keysCached[$md5_query]))
|
||||||
|
return true;
|
||||||
$key = $this->set($md5_query, $result);
|
$key = $this->set($md5_query, $result);
|
||||||
if (preg_match_all('/('._DB_PREFIX_.'[a-z_-]*)`?.*/i', $query, $res))
|
if (preg_match_all('/('._DB_PREFIX_.'[a-z_-]*)`?.*/i', $query, $res))
|
||||||
foreach($res[1] AS $table)
|
foreach($res[1] AS $table)
|
||||||
if(!isset($this->_tablesCached[$table][$key]))
|
if(!isset($this->_tablesCached[$table][$key]))
|
||||||
$this->_tablesCached[$table][$key] = true;
|
$this->_tablesCached[$table][$key] = true;
|
||||||
|
$this->_writeKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete($key, $timeout = 0)
|
public function delete($key, $timeout = 0)
|
||||||
@@ -126,7 +128,7 @@ class CacheFSCore extends Cache {
|
|||||||
|
|
||||||
public function deleteQuery($query)
|
public function deleteQuery($query)
|
||||||
{
|
{
|
||||||
|
$this->_setKeys();
|
||||||
if (preg_match_all('/('._DB_PREFIX_.'[a-z_-]*)`?.*/i', $query, $res))
|
if (preg_match_all('/('._DB_PREFIX_.'[a-z_-]*)`?.*/i', $query, $res))
|
||||||
foreach ($res[1] AS $table)
|
foreach ($res[1] AS $table)
|
||||||
if (isset($this->_tablesCached[$table]))
|
if (isset($this->_tablesCached[$table]))
|
||||||
@@ -138,15 +140,15 @@ class CacheFSCore extends Cache {
|
|||||||
}
|
}
|
||||||
unset($this->_tablesCached[$table]);
|
unset($this->_tablesCached[$table]);
|
||||||
}
|
}
|
||||||
|
$this->_writeKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function flush()
|
public function flush()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __destruct()
|
private function _writeKeys()
|
||||||
{
|
{
|
||||||
parent::__destruct();
|
|
||||||
|
|
||||||
@file_put_contents($this->getPath().'keysCached', serialize($this->_keysCached));
|
@file_put_contents($this->getPath().'keysCached', serialize($this->_keysCached));
|
||||||
@file_put_contents($this->getPath().'tablesCached', serialize($this->_tablesCached));
|
@file_put_contents($this->getPath().'tablesCached', serialize($this->_tablesCached));
|
||||||
|
|||||||
+2
-2
@@ -1288,12 +1288,12 @@ class CartCore extends ObjectModel
|
|||||||
if (isset($configuration['PS_SHIPPING_HANDLING']) AND $carrier->shipping_handling)
|
if (isset($configuration['PS_SHIPPING_HANDLING']) AND $carrier->shipping_handling)
|
||||||
$shipping_cost += (float)($configuration['PS_SHIPPING_HANDLING']);
|
$shipping_cost += (float)($configuration['PS_SHIPPING_HANDLING']);
|
||||||
|
|
||||||
$shipping_cost = Tools::convertPrice($shipping_cost, Currency::getCurrencyInstance((int)($this->id_currency)));
|
|
||||||
|
|
||||||
// Additional Shipping Cost per product
|
// Additional Shipping Cost per product
|
||||||
foreach($products AS $product)
|
foreach($products AS $product)
|
||||||
$shipping_cost += $product['additional_shipping_cost'] * $product['cart_quantity'];
|
$shipping_cost += $product['additional_shipping_cost'] * $product['cart_quantity'];
|
||||||
|
|
||||||
|
$shipping_cost = Tools::convertPrice($shipping_cost, Currency::getCurrencyInstance((int)($this->id_currency)));
|
||||||
|
|
||||||
//get external shipping cost from module
|
//get external shipping cost from module
|
||||||
if ($carrier->shipping_external)
|
if ($carrier->shipping_external)
|
||||||
{
|
{
|
||||||
|
|||||||
+10
-6
@@ -62,6 +62,9 @@ class EmployeeCore extends ObjectModel
|
|||||||
/** @var string / enum hover or click mode */
|
/** @var string / enum hover or click mode */
|
||||||
public $bo_uimode;
|
public $bo_uimode;
|
||||||
|
|
||||||
|
/** @var bool, true */
|
||||||
|
public $bo_show_screencast;
|
||||||
|
|
||||||
/** @var boolean Status */
|
/** @var boolean Status */
|
||||||
public $active = 1;
|
public $active = 1;
|
||||||
|
|
||||||
@@ -74,7 +77,7 @@ class EmployeeCore extends ObjectModel
|
|||||||
protected $fieldsSize = array('lastname' => 32, 'firstname' => 32, 'email' => 128, 'passwd' => 32, 'bo_color' => 32, 'bo_theme' => 32);
|
protected $fieldsSize = array('lastname' => 32, 'firstname' => 32, 'email' => 128, 'passwd' => 32, 'bo_color' => 32, 'bo_theme' => 32);
|
||||||
protected $fieldsValidate = array('lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'id_lang' => 'isUnsignedInt',
|
protected $fieldsValidate = array('lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'id_lang' => 'isUnsignedInt',
|
||||||
'passwd' => 'isPasswdAdmin', 'active' => 'isBool', 'id_profile' => 'isInt', 'bo_color' => 'isColor', 'bo_theme' => 'isGenericName',
|
'passwd' => 'isPasswdAdmin', 'active' => 'isBool', 'id_profile' => 'isInt', 'bo_color' => 'isColor', 'bo_theme' => 'isGenericName',
|
||||||
'bo_uimode' => 'isGenericName', 'show_screencast' => 'isBool');
|
'bo_uimode' => 'isGenericName', 'show_screencast' => 'isBool', 'bo_show_screencast' => 'isBool');
|
||||||
|
|
||||||
protected $table = 'employee';
|
protected $table = 'employee';
|
||||||
protected $identifier = 'id_employee';
|
protected $identifier = 'id_employee';
|
||||||
@@ -113,6 +116,7 @@ class EmployeeCore extends ObjectModel
|
|||||||
$fields['bo_color'] = pSQL($this->bo_color);
|
$fields['bo_color'] = pSQL($this->bo_color);
|
||||||
$fields['bo_theme'] = pSQL($this->bo_theme);
|
$fields['bo_theme'] = pSQL($this->bo_theme);
|
||||||
$fields['bo_uimode'] = pSQL($this->bo_uimode);
|
$fields['bo_uimode'] = pSQL($this->bo_uimode);
|
||||||
|
$fields['bo_show_screencast'] = (int)$this->bo_show_screencast;
|
||||||
$fields['active'] = (int)$this->active;
|
$fields['active'] = (int)$this->active;
|
||||||
$fields['show_screencast'] = (int)$this->show_screencast;
|
$fields['show_screencast'] = (int)$this->show_screencast;
|
||||||
|
|
||||||
@@ -195,8 +199,8 @@ class EmployeeCore extends ObjectModel
|
|||||||
public function isLastAdmin()
|
public function isLastAdmin()
|
||||||
{
|
{
|
||||||
return ($this->id_profile == _PS_ADMIN_PROFILE_
|
return ($this->id_profile == _PS_ADMIN_PROFILE_
|
||||||
AND Employee::countProfile($this->id_profile, true) == 1
|
&& Employee::countProfile($this->id_profile, true) == 1
|
||||||
AND $this->active
|
&& $this->active
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,9 +225,9 @@ 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 */
|
||||||
return ($this->id
|
return ($this->id
|
||||||
AND Validate::isUnsignedId($this->id)
|
&& Validate::isUnsignedId($this->id)
|
||||||
AND Employee::checkPassword($this->id, $this->passwd)
|
&& Employee::checkPassword($this->id, $this->passwd)
|
||||||
AND (!isset($this->remote_addr) OR $this->remote_addr == ip2long(Tools::getRemoteAddr()) OR !Configuration::get('PS_COOKIE_CHECKIP'))
|
&& (!isset($this->remote_addr) || $this->remote_addr == ip2long(Tools::getRemoteAddr()) || !Configuration::get('PS_COOKIE_CHECKIP'))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -94,6 +94,7 @@ class MCachedCore extends Cache
|
|||||||
if ($this->isBlacklist($query))
|
if ($this->isBlacklist($query))
|
||||||
return true;
|
return true;
|
||||||
$md5_query = md5($query);
|
$md5_query = md5($query);
|
||||||
|
$this->_setKeys();
|
||||||
if (isset($this->_keysCached[$md5_query]))
|
if (isset($this->_keysCached[$md5_query]))
|
||||||
return true;
|
return true;
|
||||||
$key = $this->set($md5_query, $result);
|
$key = $this->set($md5_query, $result);
|
||||||
@@ -101,6 +102,7 @@ class MCachedCore extends Cache
|
|||||||
foreach($res[1] AS $table)
|
foreach($res[1] AS $table)
|
||||||
if(!isset($this->_tablesCached[$table][$key]))
|
if(!isset($this->_tablesCached[$table][$key]))
|
||||||
$this->_tablesCached[$table][$key] = true;
|
$this->_tablesCached[$table][$key] = true;
|
||||||
|
$this->_writeKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete($key, $timeout = 0)
|
public function delete($key, $timeout = 0)
|
||||||
@@ -115,6 +117,7 @@ class MCachedCore extends Cache
|
|||||||
{
|
{
|
||||||
if (!$this->_isConnected)
|
if (!$this->_isConnected)
|
||||||
return false;
|
return false;
|
||||||
|
$this->_setKeys();
|
||||||
if (preg_match_all('/('._DB_PREFIX_.'[a-z_-]*)`?.*/i', $query, $res))
|
if (preg_match_all('/('._DB_PREFIX_.'[a-z_-]*)`?.*/i', $query, $res))
|
||||||
foreach ($res[1] AS $table)
|
foreach ($res[1] AS $table)
|
||||||
if (isset($this->_tablesCached[$table]))
|
if (isset($this->_tablesCached[$table]))
|
||||||
@@ -126,6 +129,7 @@ class MCachedCore extends Cache
|
|||||||
}
|
}
|
||||||
unset($this->_tablesCached[$table]);
|
unset($this->_tablesCached[$table]);
|
||||||
}
|
}
|
||||||
|
$this->_writeKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function close()
|
protected function close()
|
||||||
@@ -144,9 +148,8 @@ class MCachedCore extends Cache
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __destruct()
|
private function _writeKeys()
|
||||||
{
|
{
|
||||||
parent::__destruct();
|
|
||||||
if (!$this->_isConnected)
|
if (!$this->_isConnected)
|
||||||
return false;
|
return false;
|
||||||
$this->_memcacheObj->set('keysCached', $this->_keysCached, 0, 0);
|
$this->_memcacheObj->set('keysCached', $this->_keysCached, 0, 0);
|
||||||
|
|||||||
+9
-6
@@ -190,12 +190,11 @@ class MailCore
|
|||||||
public static function sendMailTest($smtpChecked, $smtpServer, $content, $subject, $type, $to, $from, $smtpLogin, $smtpPassword, $smtpPort = 25, $smtpEncryption)
|
public static function sendMailTest($smtpChecked, $smtpServer, $content, $subject, $type, $to, $from, $smtpLogin, $smtpPassword, $smtpPort = 25, $smtpEncryption)
|
||||||
{
|
{
|
||||||
$swift = NULL;
|
$swift = NULL;
|
||||||
$result = NULL;
|
$result = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if($smtpChecked)
|
if($smtpChecked)
|
||||||
{
|
{
|
||||||
|
|
||||||
$smtp = new Swift_Connection_SMTP($smtpServer, $smtpPort, ($smtpEncryption == "off") ? Swift_Connection_SMTP::ENC_OFF : (($smtpEncryption == "tls") ? Swift_Connection_SMTP::ENC_TLS : Swift_Connection_SMTP::ENC_SSL));
|
$smtp = new Swift_Connection_SMTP($smtpServer, $smtpPort, ($smtpEncryption == "off") ? Swift_Connection_SMTP::ENC_OFF : (($smtpEncryption == "tls") ? Swift_Connection_SMTP::ENC_TLS : Swift_Connection_SMTP::ENC_SSL));
|
||||||
$smtp->setUsername($smtpLogin);
|
$smtp->setUsername($smtpLogin);
|
||||||
$smtp->setpassword($smtpPassword);
|
$smtp->setpassword($smtpPassword);
|
||||||
@@ -209,13 +208,17 @@ class MailCore
|
|||||||
|
|
||||||
if ($swift->send($message, $to, $from))
|
if ($swift->send($message, $to, $from))
|
||||||
$result = true;
|
$result = true;
|
||||||
else
|
|
||||||
$result = 999;
|
|
||||||
|
|
||||||
$swift->disconnect();
|
$swift->disconnect();
|
||||||
}
|
}
|
||||||
catch (Swift_Connection_Exception $e) { $result = $e->getCode(); }
|
catch (Swift_ConnectionException $e)
|
||||||
catch (Swift_Message_MimeException $e) { $result = $e->getCode(); }
|
{
|
||||||
|
$result = $e->getMessage();
|
||||||
|
}
|
||||||
|
catch (Swift_Message_MimeException $e)
|
||||||
|
{
|
||||||
|
$result = $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-3
@@ -637,12 +637,24 @@ abstract class ModuleCore
|
|||||||
|
|
||||||
if (!$useConfig OR !$xml_exist OR (isset($xml_module->need_instance) AND (int)$xml_module->need_instance == 1) OR $needNewConfigFile)
|
if (!$useConfig OR !$xml_exist OR (isset($xml_module->need_instance) AND (int)$xml_module->need_instance == 1) OR $needNewConfigFile)
|
||||||
{
|
{
|
||||||
|
// If class already exists, don't include the file
|
||||||
|
if (!class_exists($module, false))
|
||||||
|
{
|
||||||
|
$filepath = _PS_MODULE_DIR_.$module.'/'.$module.'.php';
|
||||||
$file = trim(file_get_contents(_PS_MODULE_DIR_.$module.'/'.$module.'.php'));
|
$file = trim(file_get_contents(_PS_MODULE_DIR_.$module.'/'.$module.'.php'));
|
||||||
if (substr($file, 0, 5) == '<?php')
|
if (substr($file, 0, 5) == '<?php')
|
||||||
$file = substr($file, 5);
|
$file = substr($file, 5);
|
||||||
if (substr($file, -2) == '?>')
|
if (substr($file, -2) == '?>')
|
||||||
$file = substr($file, 0, -2);
|
$file = substr($file, 0, -2);
|
||||||
if (class_exists($module, false) OR eval($file) !== false)
|
// if (false) is a trick to not load the class with "eval".
|
||||||
|
// this way require_once will works correctly
|
||||||
|
if (eval('if (false){ '.$file.' }') !== false)
|
||||||
|
require_once( _PS_MODULE_DIR_.$module.'/'.$module.'.php' );
|
||||||
|
else
|
||||||
|
$errors[] = sprintf(Tools::displayError('%1$s (parse error in %2$s)'), $module, substr($filepath, strlen(_PS_ROOT_DIR_)));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (class_exists($module,false))
|
||||||
{
|
{
|
||||||
$moduleList[$moduleListCursor++] = new $module;
|
$moduleList[$moduleListCursor++] = new $module;
|
||||||
if (!$xml_exist OR $needNewConfigFile)
|
if (!$xml_exist OR $needNewConfigFile)
|
||||||
@@ -654,7 +666,7 @@ abstract class ModuleCore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$errors[] = $module;
|
$errors[] = sprintf(Tools::displayError('%1$s (class missing in %2$s)'), $module, substr($filepath, strlen(_PS_ROOT_DIR_)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -679,7 +691,7 @@ abstract class ModuleCore
|
|||||||
|
|
||||||
if ($errors)
|
if ($errors)
|
||||||
{
|
{
|
||||||
echo '<div class="alert error"><h3>'.Tools::displayError('Parse error(s) in module(s)').'</h3><ol>';
|
echo '<div class="alert error"><h3>'.Tools::displayError('The following module(s) couldn\'t be loaded').':</h3><ol>';
|
||||||
foreach ($errors AS $error)
|
foreach ($errors AS $error)
|
||||||
echo '<li>'.$error.'</li>';
|
echo '<li>'.$error.'</li>';
|
||||||
echo '</ol></div>';
|
echo '</ol></div>';
|
||||||
|
|||||||
+105
-98
@@ -173,7 +173,6 @@ class SearchCore
|
|||||||
{
|
{
|
||||||
$word = str_replace('%', '\\%', $word);
|
$word = str_replace('%', '\\%', $word);
|
||||||
$word = str_replace('_', '\\_', $word);
|
$word = str_replace('_', '\\_', $word);
|
||||||
|
|
||||||
$intersectArray[] = 'SELECT si.id_product
|
$intersectArray[] = 'SELECT si.id_product
|
||||||
FROM '._DB_PREFIX_.'search_word sw
|
FROM '._DB_PREFIX_.'search_word sw
|
||||||
LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word
|
LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word
|
||||||
@@ -337,6 +336,20 @@ class SearchCore
|
|||||||
return $features;
|
return $features;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static function getProductsToIndex($nbLanguages, $limit = 50)
|
||||||
|
{
|
||||||
|
// Adjust the limit to get only "whole" products, in every languages (and at least one)
|
||||||
|
$limit = min(1, round($limit / $nbLanguages) * $nbLanguages);
|
||||||
|
return Db::getInstance()->ExecuteS('
|
||||||
|
SELECT p.id_product, pl.id_lang, pl.name pname, p.reference, p.ean13, p.upc, pl.description_short, pl.description, cl.name cname, m.name mname
|
||||||
|
FROM '._DB_PREFIX_.'product p
|
||||||
|
LEFT JOIN '._DB_PREFIX_.'product_lang pl ON p.id_product = pl.id_product
|
||||||
|
LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = p.id_category_default AND pl.id_lang = cl.id_lang)
|
||||||
|
LEFT JOIN '._DB_PREFIX_.'manufacturer m ON m.id_manufacturer = p.id_manufacturer
|
||||||
|
WHERE p.indexed = 0
|
||||||
|
LIMIT '.(int)$limit);
|
||||||
|
}
|
||||||
|
|
||||||
public static function indexation($full = false, $id_product = false)
|
public static function indexation($full = false, $id_product = false)
|
||||||
{
|
{
|
||||||
$db = Db::getInstance();
|
$db = Db::getInstance();
|
||||||
@@ -399,15 +412,6 @@ class SearchCore
|
|||||||
'features' => Configuration::get('PS_SEARCH_WEIGHT_FEATURE')
|
'features' => Configuration::get('PS_SEARCH_WEIGHT_FEATURE')
|
||||||
);
|
);
|
||||||
|
|
||||||
// All the product not yet indexed are retrieved
|
|
||||||
$sql = 'SELECT p.id_product, pl.id_lang, pl.name pname, p.reference, p.ean13, p.upc, pl.description_short, pl.description, cl.name cname, m.name mname, pl.id_shop
|
|
||||||
FROM '._DB_PREFIX_.'product p
|
|
||||||
LEFT JOIN '._DB_PREFIX_.'product_lang pl ON p.id_product = pl.id_product
|
|
||||||
LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = p.id_category_default AND pl.id_lang = cl.id_lang AND pl.id_shop = cl.id_shop)
|
|
||||||
LEFT JOIN '._DB_PREFIX_.'manufacturer m ON m.id_manufacturer = p.id_manufacturer
|
|
||||||
WHERE p.indexed = 0';
|
|
||||||
$products = $db->ExecuteS($sql, false);
|
|
||||||
|
|
||||||
// Those are kind of global variables required to save the processed data in the database every X occurences, in order to avoid overloading MySQL
|
// Those are kind of global variables required to save the processed data in the database every X occurences, in order to avoid overloading MySQL
|
||||||
$countWords = 0;
|
$countWords = 0;
|
||||||
$countProducts = 0;
|
$countProducts = 0;
|
||||||
@@ -427,108 +431,111 @@ class SearchCore
|
|||||||
$wordIdsByWord[$wordId['id_shop']][$wordId['id_lang']]['_'.$wordId['word']] = (int)$wordId['id_word'];
|
$wordIdsByWord[$wordId['id_shop']][$wordId['id_lang']]['_'.$wordId['word']] = (int)$wordId['id_word'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now each non-indexed product is processed one by one, langage by langage
|
// Retrieve the number of languages
|
||||||
while ($product = $db->nextRow($products))
|
$nbLanguages = Db::getInstance()->getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'lang');
|
||||||
|
|
||||||
|
// Products are processed 50 by 50 in order to avoid overloading MySQL
|
||||||
|
while ($products = Search::getProductsToIndex($nbLanguages, 50) AND count($products) > 0)
|
||||||
{
|
{
|
||||||
$product['tags'] = Search::getTags($db, (int)$product['id_product'], (int)$product['id_lang']);
|
// Now each non-indexed product is processed one by one, langage by langage
|
||||||
$product['attributes'] = Search::getAttributes($db, (int)$product['id_product'], (int)$product['id_lang']);
|
foreach ($products as $product)
|
||||||
$product['features'] = Search::getFeatures($db, (int)$product['id_product'], (int)$product['id_lang']);
|
|
||||||
|
|
||||||
// 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
|
|
||||||
$pArray = array();
|
|
||||||
foreach ($product AS $key => $value)
|
|
||||||
if (strncmp($key, 'id_', 3))
|
|
||||||
{
|
|
||||||
$words = explode(' ', Search::sanitize($value, (int)$product['id_lang'], true));
|
|
||||||
foreach ($words AS $word)
|
|
||||||
if (!empty($word))
|
|
||||||
{
|
|
||||||
$word = Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH);
|
|
||||||
// Remove accents
|
|
||||||
$word = Tools::replaceAccentedChars($word);
|
|
||||||
|
|
||||||
if (!isset($pArray[$word]))
|
|
||||||
$pArray[$word] = 0;
|
|
||||||
$pArray[$word] += $weightArray[$key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we find words that need to be indexed, they're added to the word table in the database
|
|
||||||
if (sizeof($pArray))
|
|
||||||
{
|
{
|
||||||
$list = '';
|
$product['tags'] = Search::getTags($db, (int)$product['id_product'], (int)$product['id_lang']);
|
||||||
foreach ($pArray AS $word => $weight)
|
$product['attributes'] = Search::getAttributes($db, (int)$product['id_product'], (int)$product['id_lang']);
|
||||||
$list .= '\''.$word.'\',';
|
$product['features'] = Search::getFeatures($db, (int)$product['id_product'], (int)$product['id_lang']);
|
||||||
$list = rtrim($list, ',');
|
|
||||||
|
|
||||||
$queryArray = 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
|
||||||
$queryArray2 = array();
|
$pArray = array();
|
||||||
foreach ($pArray AS $word => $weight)
|
foreach ($product AS $key => $value)
|
||||||
if ($weight AND !isset($wordIdsByWord['_'.$word]))
|
if (strncmp($key, 'id_', 3))
|
||||||
{
|
{
|
||||||
$queryArray[$word] = '('.(int)$product['id_lang'].', '.(int)$product['id_shop'].', \''.pSQL($word).'\')';
|
$words = explode(' ', Search::sanitize($value, (int)$product['id_lang'], true));
|
||||||
$queryArray2[] = '\''.pSQL($word).'\'';
|
foreach ($words AS $word)
|
||||||
$wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.$word] = 0;
|
if (!empty($word))
|
||||||
|
{
|
||||||
|
$word = Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH);
|
||||||
|
// Remove accents
|
||||||
|
$word = Tools::replaceAccentedChars($word);
|
||||||
|
|
||||||
|
if (!isset($pArray[$word]))
|
||||||
|
$pArray[$word] = 0;
|
||||||
|
$pArray[$word] += $weightArray[$key];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$existingWords = $db->ExecuteS('
|
// If we find words that need to be indexed, they're added to the word table in the database
|
||||||
SELECT word FROM '._DB_PREFIX_.'search_word
|
if (count($pArray))
|
||||||
WHERE word IN ('.implode(',', $queryArray2).')
|
|
||||||
AND id_lang = '.(int)$product['id_lang'].' GROUP BY word');
|
|
||||||
|
|
||||||
if($existingWords)
|
|
||||||
foreach($existingWords as $data)
|
|
||||||
unset($queryArray[Tools::replaceAccentedChars($data['word'])]);
|
|
||||||
|
|
||||||
if (count($queryArray))
|
|
||||||
{
|
{
|
||||||
// The words are inserted...
|
$list = '';
|
||||||
$db->Execute('
|
foreach ($pArray AS $word => $weight)
|
||||||
INSERT IGNORE INTO '._DB_PREFIX_.'search_word (id_lang, id_shop, word)
|
$list .= '\''.$word.'\',';
|
||||||
VALUES '.implode(',',$queryArray));
|
$list = rtrim($list, ',');
|
||||||
|
|
||||||
|
$queryArray = array();
|
||||||
|
$queryArray2 = array();
|
||||||
|
foreach ($pArray AS $word => $weight)
|
||||||
|
if ($weight AND !isset($wordIdsByWord['_'.$word]))
|
||||||
|
{
|
||||||
|
$queryArray[$word] = '('.(int)$product['id_lang'].', '.(int)$product['id_shop'].', \''.pSQL($word).'\')';
|
||||||
|
$queryArray2[] = '\''.pSQL($word).'\'';
|
||||||
|
$wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.$word] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$existingWords = $db->ExecuteS('
|
||||||
|
SELECT word FROM '._DB_PREFIX_.'search_word
|
||||||
|
WHERE word IN ('.implode(',', $queryArray2).')
|
||||||
|
AND id_lang = '.(int)$product['id_lang'].' GROUP BY word');
|
||||||
|
|
||||||
|
if($existingWords)
|
||||||
|
foreach($existingWords as $data)
|
||||||
|
unset($queryArray[Tools::replaceAccentedChars($data['word'])]);
|
||||||
|
|
||||||
|
if (count($queryArray))
|
||||||
|
{
|
||||||
|
// The words are inserted...
|
||||||
|
$db->Execute('
|
||||||
|
INSERT IGNORE INTO '._DB_PREFIX_.'search_word (id_lang, id_shop, word)
|
||||||
|
VALUES '.implode(',',$queryArray));
|
||||||
|
}
|
||||||
|
if (count($queryArray2))
|
||||||
|
{
|
||||||
|
// ...then their IDs are retrieved and added to the cache
|
||||||
|
$addedWords = $db->ExecuteS('
|
||||||
|
SELECT sw.id_word, sw.word
|
||||||
|
FROM '._DB_PREFIX_.'search_word sw
|
||||||
|
WHERE sw.word IN ('.implode(',', $queryArray2).')
|
||||||
|
AND sw.id_lang = '.(int)$product['id_lang'].'
|
||||||
|
AND sw.id_shop = '.(int)$product['id_shop'].'
|
||||||
|
LIMIT '.count($queryArray2));
|
||||||
|
// replace accents from the retrieved words so that words without accents or with differents accents can still be linked
|
||||||
|
foreach ($addedWords AS $wordId)
|
||||||
|
$wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.Tools::replaceAccentedChars($wordId['word'])] = (int)$wordId['id_word'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (count($queryArray2))
|
|
||||||
|
foreach ($pArray AS $word => $weight)
|
||||||
{
|
{
|
||||||
// ...then their IDs are retrieved and added to the cache
|
if (!$weight)
|
||||||
$addedWords = $db->ExecuteS('
|
continue;
|
||||||
SELECT sw.id_word, sw.word
|
if (!isset($wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.$word]))
|
||||||
FROM '._DB_PREFIX_.'search_word sw
|
continue;
|
||||||
WHERE sw.word IN ('.implode(',', $queryArray2).')
|
if (!$wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.$word])
|
||||||
AND sw.id_lang = '.(int)$product['id_lang'].'
|
continue;
|
||||||
AND sw.id_shop = '.(int)$product['id_shop'].'
|
$queryArray3[] = '('.(int)$product['id_product'].','.(int)$wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.$word].','.(int)$weight.')';
|
||||||
LIMIT '.count($queryArray2));
|
// Force save every 200 words in order to avoid overloading MySQL
|
||||||
// replace accents from the retrieved words so that words without accents or with differents accents can still be linked
|
if (++$countWords % 200 == 0)
|
||||||
foreach ($addedWords AS $wordId)
|
Search::saveIndex($queryArray3);
|
||||||
$wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.Tools::replaceAccentedChars($wordId['word'])] = (int)$wordId['id_word'];
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($pArray AS $word => $weight)
|
if (!in_array($product['id_product'], $productsArray))
|
||||||
{
|
$productsArray[] = (int)$product['id_product'];
|
||||||
if (!$weight)
|
}
|
||||||
continue;
|
Search::setProductsAsIndexed($productsArray);
|
||||||
if (!isset($wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.$word]))
|
|
||||||
continue;
|
|
||||||
if (!$wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.$word])
|
|
||||||
continue;
|
|
||||||
$queryArray3[] = '('.(int)$product['id_product'].','.(int)$wordIdsByWord[$product['id_shop']][$product['id_lang']]['_'.$word].','.(int)$weight.')';
|
|
||||||
// Force save every 200 words in order to avoid overloading MySQL
|
|
||||||
if (++$countWords % 200 == 0)
|
|
||||||
Search::saveIndex($queryArray3);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!in_array($product['id_product'], $productsArray))
|
// One last save is done at the end in order to save what's left
|
||||||
$productsArray[] = (int)$product['id_product'];
|
Search::saveIndex($queryArray3);
|
||||||
|
|
||||||
// Force save every 50 products in order to avoid overloading MySQL
|
|
||||||
if (++$countProducts % 50 == 0)
|
|
||||||
Search::setProductsAsIndexed($productsArray);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// One last save is done at the end in order to save what's left
|
|
||||||
Search::saveIndex($queryArray3);
|
|
||||||
Search::setProductsAsIndexed($productsArray);
|
|
||||||
|
|
||||||
// If it has been deleted, the index is created again once the indexation is done
|
// If it has been deleted, the index is created again once the indexation is done
|
||||||
if (!$dropIndex)
|
if (!$dropIndex)
|
||||||
{
|
{
|
||||||
|
|||||||
+35
-12
@@ -165,18 +165,37 @@ class UpgraderCore
|
|||||||
}
|
}
|
||||||
return $this->changed_files;
|
return $this->changed_files;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** populate $this->changed_files with $path
|
||||||
|
* in sub arrays mail, translation and core items
|
||||||
|
* @param string $path filepath to add, relative to _PS_ROOT_DIR_
|
||||||
|
*/
|
||||||
protected function addChangedFile($path)
|
protected function addChangedFile($path)
|
||||||
{
|
{
|
||||||
$this->version_is_modified = true;
|
$this->version_is_modified = true;
|
||||||
$this->changed_files[] = $path;
|
|
||||||
//array_unique($this->changed_files);
|
if (strpos($path, 'mails/') !== false)
|
||||||
|
$this->changed_files['mail'][] = $path;
|
||||||
|
else if (
|
||||||
|
strpos($path, '/en.php') !== false
|
||||||
|
|| strpos($path, '/fr.php') !== false
|
||||||
|
|| strpos($path, '/es.php') !== false
|
||||||
|
|| strpos($path, '/it.php') !== false
|
||||||
|
|| strpos($path, '/de.php') !== false
|
||||||
|
|| strpos($path, 'translations/') !== false
|
||||||
|
)
|
||||||
|
$this->changed_files['translation'][] = $path;
|
||||||
|
else
|
||||||
|
$this->changed_files['core'][] = $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** populate $this->missing_files with $path
|
||||||
|
* @param string $path filepath to add, relative to _PS_ROOT_DIR_
|
||||||
|
*/
|
||||||
protected function addMissingFile($path)
|
protected function addMissingFile($path)
|
||||||
{
|
{
|
||||||
$this->version_is_modified = true;
|
$this->version_is_modified = true;
|
||||||
$this->missing_files[] = $path;
|
$this->missing_files[] = $path;
|
||||||
//array_unique($this->missingFile);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function browseXmlAndCompare($node, &$current_path = array(), $level = 1)
|
protected function browseXmlAndCompare($node, &$current_path = array(), $level = 1)
|
||||||
@@ -190,18 +209,22 @@ class UpgraderCore
|
|||||||
}
|
}
|
||||||
else if (is_object($child) && $child->getName() == 'md5file')
|
else if (is_object($child) && $child->getName() == 'md5file')
|
||||||
{
|
{
|
||||||
$path = _PS_ROOT_DIR_.DIRECTORY_SEPARATOR;
|
// We will store only relative path.
|
||||||
|
// absolute path is only used for file_exists and compare
|
||||||
|
$relative_path = '';
|
||||||
for ($i = 1; $i < $level; $i++)
|
for ($i = 1; $i < $level; $i++)
|
||||||
$path .= $current_path[$i].'/';
|
$relative_path .= $current_path[$i].'/';
|
||||||
$path .= (string)$child['name'];
|
$relative_path .= (string)$child['name'];
|
||||||
$path = str_replace('ps_root_dir',_PS_ROOT_DIR_,$path);
|
$fullpath = _PS_ROOT_DIR_.DIRECTORY_SEPARATOR . $relative_path;
|
||||||
|
|
||||||
|
$fullpath = str_replace('ps_root_dir', _PS_ROOT_DIR_, $fullpath);
|
||||||
|
|
||||||
// replace default admin dir by current one
|
// replace default admin dir by current one
|
||||||
$path = str_replace(_PS_ROOT_DIR_.'/admin', _PS_ADMIN_DIR_, $path);
|
$fullpath = str_replace(_PS_ROOT_DIR_.'/admin', _PS_ADMIN_DIR_, $fullpath);
|
||||||
if(!file_exists($path))
|
if (!file_exists($fullpath))
|
||||||
$this->addMissingFile($path);
|
$this->addMissingFile($relative_path);
|
||||||
else if (!$this->compareChecksum($path, (string)$child))
|
else if (!$this->compareChecksum($fullpath, (string)$child))
|
||||||
$this->addChangedFile($path);
|
$this->addChangedFile($relative_path);
|
||||||
// else, file is original (and ok)
|
// else, file is original (and ok)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ if (!file_exists(dirname(__FILE__).'/settings.inc.php'))
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
require_once(dirname(__FILE__).'/settings.inc.php');
|
require_once(dirname(__FILE__).'/settings.inc.php');
|
||||||
|
require_once(dirname(__FILE__).'/autoload.php');
|
||||||
|
|
||||||
/* Redefine REQUEST_URI if empty (on some webservers...) */
|
/* Redefine REQUEST_URI if empty (on some webservers...) */
|
||||||
if (!isset($_SERVER['REQUEST_URI']) OR empty($_SERVER['REQUEST_URI']))
|
if (!isset($_SERVER['REQUEST_URI']) OR empty($_SERVER['REQUEST_URI']))
|
||||||
@@ -70,8 +71,10 @@ if (!isset($_SERVER['REQUEST_URI']) OR empty($_SERVER['REQUEST_URI']))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Autoload */
|
// Trying to redefine HTTP_HOST if empty (on some webservers...)
|
||||||
require_once(dirname(__FILE__).'/autoload.php');
|
if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST']))
|
||||||
|
$_SERVER['HTTP_HOST'] = @getenv('HTTP_HOST');
|
||||||
|
|
||||||
|
|
||||||
if (!defined('_PS_MAGIC_QUOTES_GPC_'))
|
if (!defined('_PS_MAGIC_QUOTES_GPC_'))
|
||||||
define('_PS_MAGIC_QUOTES_GPC_', get_magic_quotes_gpc());
|
define('_PS_MAGIC_QUOTES_GPC_', get_magic_quotes_gpc());
|
||||||
|
|||||||
@@ -629,6 +629,7 @@ CREATE TABLE `PREFIX_employee` (
|
|||||||
`bo_color` varchar(32) default NULL,
|
`bo_color` varchar(32) default NULL,
|
||||||
`bo_theme` varchar(32) default NULL,
|
`bo_theme` varchar(32) default NULL,
|
||||||
`bo_uimode` ENUM('hover','click') default 'click',
|
`bo_uimode` ENUM('hover','click') default 'click',
|
||||||
|
`bo_show_screencast` tinyint(1) NOT NULL default '1',
|
||||||
`active` tinyint(1) unsigned NOT NULL default '0',
|
`active` tinyint(1) unsigned NOT NULL default '0',
|
||||||
`show_screencast` tinyint(1) unsigned NOT NULL default '1',
|
`show_screencast` tinyint(1) unsigned NOT NULL default '1',
|
||||||
`id_last_order` tinyint(1) unsigned NOT NULL default '0',
|
`id_last_order` tinyint(1) unsigned NOT NULL default '0',
|
||||||
|
|||||||
@@ -36,3 +36,4 @@ INSERT INTO `PREFIX_hook` (`name`, `title`, `description`, `position`, `live_edi
|
|||||||
('afterDeleteAttribute', 'On deleting attribute feature value', 'On deleting attribute feature value', 0, 0),
|
('afterDeleteAttribute', 'On deleting attribute feature value', 'On deleting attribute feature value', 0, 0),
|
||||||
('afterSaveAttribute', 'On saving attribute feature value', 'On saving attribute feature value', 0, 0);
|
('afterSaveAttribute', 'On saving attribute feature value', 'On saving attribute feature value', 0, 0);
|
||||||
|
|
||||||
|
ALTER TABLE `PREFIX_employee` ADD `bo_show_screencast` TINYINT(1) NOT NULL DEFAULT '1' AFTER `bo_uimode`;
|
||||||
|
|||||||
@@ -235,7 +235,7 @@ if (isFormValid())
|
|||||||
$sqlParams[] = "INSERT INTO "._DB_PREFIX_."configuration (name, value, date_add, date_upd) VALUES ('PS_MAIL_SMTP_ENCRYPTION', '".pSQL($_GET['smtpEnc'])."', NOW(), NOW())";
|
$sqlParams[] = "INSERT INTO "._DB_PREFIX_."configuration (name, value, date_add, date_upd) VALUES ('PS_MAIL_SMTP_ENCRYPTION', '".pSQL($_GET['smtpEnc'])."', NOW(), NOW())";
|
||||||
$sqlParams[] = "INSERT INTO "._DB_PREFIX_."configuration (name, value, date_add, date_upd) VALUES ('PS_MAIL_SMTP_PORT', '".pSQL($_GET['smtpPort'])."', NOW(), NOW())";
|
$sqlParams[] = "INSERT INTO "._DB_PREFIX_."configuration (name, value, date_add, date_upd) VALUES ('PS_MAIL_SMTP_PORT', '".pSQL($_GET['smtpPort'])."', NOW(), NOW())";
|
||||||
}
|
}
|
||||||
$sqlParams[] = 'INSERT INTO '._DB_PREFIX_.'employee (id_employee, lastname, firstname, email, passwd, last_passwd_gen, bo_theme, active, id_profile, id_lang) VALUES (NULL, \''.pSQL(ToolsInstall::ucfirst($_GET['infosName'])).'\', \''.pSQL(ToolsInstall::ucfirst($_GET['infosFirstname'])).'\', \''.pSQL($_GET['infosEmail']).'\', \''.md5(pSQL(_COOKIE_KEY_.$_GET['infosPassword'])).'\', \''.date('Y-m-d h:i:s', strtotime('-360 minutes')).'\', \'oldschool\', 1, 1, (SELECT `value` FROM `'._DB_PREFIX_.'configuration` WHERE `name` = \'PS_LANG_DEFAULT\' LIMIT 1))';
|
$sqlParams[] = 'INSERT INTO '._DB_PREFIX_.'employee (id_employee, lastname, firstname, email, passwd, last_passwd_gen, bo_theme, active, id_profile, id_lang, bo_show_screencast) VALUES (NULL, \''.pSQL(ToolsInstall::ucfirst($_GET['infosName'])).'\', \''.pSQL(ToolsInstall::ucfirst($_GET['infosFirstname'])).'\', \''.pSQL($_GET['infosEmail']).'\', \''.md5(pSQL(_COOKIE_KEY_.$_GET['infosPassword'])).'\', \''.date('Y-m-d h:i:s', strtotime('-360 minutes')).'\', \'oldschool\', 1, 1, (SELECT `value` FROM `'._DB_PREFIX_.'configuration` WHERE `name` = \'PS_LANG_DEFAULT\' LIMIT 1), 1)';
|
||||||
$sqlParams[] = 'INSERT INTO '._DB_PREFIX_.'contact (id_contact, email, customer_service) VALUES (NULL, \''.pSQL($_GET['infosEmail']).'\', 1), (NULL, \''.pSQL($_GET['infosEmail']).'\', 1)';
|
$sqlParams[] = 'INSERT INTO '._DB_PREFIX_.'contact (id_contact, email, customer_service) VALUES (NULL, \''.pSQL($_GET['infosEmail']).'\', 1), (NULL, \''.pSQL($_GET['infosEmail']).'\', 1)';
|
||||||
|
|
||||||
if (function_exists('mcrypt_encrypt'))
|
if (function_exists('mcrypt_encrypt'))
|
||||||
|
|||||||
+1
-1
@@ -71,7 +71,7 @@ function verifyMail(testMsg, testSubject)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
mailIsOk = false;
|
mailIsOk = false;
|
||||||
$("#mailResultCheck").addClass("fail").removeClass("ok").removeClass('userInfos').html(textSendError);
|
$("#mailResultCheck").addClass("fail").removeClass("ok").removeClass('userInfos').html(textSendError + '<br />' + ret);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-3
@@ -140,9 +140,7 @@ function writeBookmarkLink(url, title, text, img)
|
|||||||
|
|
||||||
function writeBookmarkLinkObject(url, title, insert)
|
function writeBookmarkLinkObject(url, title, insert)
|
||||||
{
|
{
|
||||||
if (window.navigator.userAgent.indexOf('Chrome') != -1)
|
if (window.sidebar || window.external)
|
||||||
return ('');
|
|
||||||
else if (window.sidebar || window.external)
|
|
||||||
return ('<a href="javascript:addBookmark(\'' + escape(url) + '\', \'' + escape(title) + '\')">' + insert + '</a>');
|
return ('<a href="javascript:addBookmark(\'' + escape(url) + '\', \'' + escape(title) + '\')">' + insert + '</a>');
|
||||||
else if (window.opera && window.print)
|
else if (window.opera && window.print)
|
||||||
return ('<a rel="sidebar" href="' + escape(url) + '" title="' + escape(title) + '">' + insert + '</a>');
|
return ('<a rel="sidebar" href="' + escape(url) + '" title="' + escape(title) + '">' + insert + '</a>');
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
* @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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(!defined('_PS_ADMIN_DIR_'))
|
if(!defined('_PS_ADMIN_DIR_'))
|
||||||
define('_PS_ADMIN_DIR_', _PS_ADMIN_DIR_);
|
define('_PS_ADMIN_DIR_', _PS_ADMIN_DIR_);
|
||||||
if(!defined('_PS_USE_SQL_SLAVE_'))
|
if(!defined('_PS_USE_SQL_SLAVE_'))
|
||||||
@@ -480,10 +481,11 @@ $this->standalone = true;
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// echo '<img src="'.$originalCore.'" /> '.
|
// echo '<img src="'.$originalCore.'" /> '.
|
||||||
$this->nextParams['msg'] = ($testOrigCore?$this->l('Core files are ok'):sprintf($this->l('%s core files have been modified'), sizeof($changedFileList)));
|
$this->nextParams['msg'] = ($testOrigCore?$this->l('Core files are ok'):sprintf($this->l('%1$s core files have been modified (%2$s total)'), count($changedFileList['core']), count(array_merge($changedFileList['core'], $changedFileList['mail'], $changedFileList['translation']))));
|
||||||
}
|
}
|
||||||
$this->nextParams['result'] = $changedFileList;
|
$this->nextParams['result'] = $changedFileList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function ajaxProcessUpgradeNow()
|
public function ajaxProcessUpgradeNow()
|
||||||
{
|
{
|
||||||
$this->nextDesc = $this->l('Starting upgrade ...');
|
$this->nextDesc = $this->l('Starting upgrade ...');
|
||||||
@@ -1727,6 +1729,9 @@ echo '</script>';
|
|||||||
#dbResultCheck{ padding-left:20px;}
|
#dbResultCheck{ padding-left:20px;}
|
||||||
#checkPrestaShopFilesVersion{margin-bottom:20px;}
|
#checkPrestaShopFilesVersion{margin-bottom:20px;}
|
||||||
#changedList ul{list-style-type:circle}
|
#changedList ul{list-style-type:circle}
|
||||||
|
.changedFileList {margin-left:20px; padding-left:5px;}
|
||||||
|
.changedNotice li{color:lightgrey;}
|
||||||
|
.changedImportant li{color:red;font-weight:bold}
|
||||||
</style>';
|
</style>';
|
||||||
$this->displayWarning($this->l('This function is experimental. It\'s highly recommended to make a backup of your files and database before starting the upgrade process.'));
|
$this->displayWarning($this->l('This function is experimental. It\'s highly recommended to make a backup of your files and database before starting the upgrade process.'));
|
||||||
|
|
||||||
@@ -1870,7 +1875,7 @@ function handleXMLResult(xmlRet, previousParams)
|
|||||||
switch(previousParams.upgradeDbStep)
|
switch(previousParams.upgradeDbStep)
|
||||||
{
|
{
|
||||||
case 0: // getVersionFromDb
|
case 0: // getVersionFromDb
|
||||||
result = "ok";
|
resGlobal.result = "ok";
|
||||||
break;
|
break;
|
||||||
case 1: // getVersionFromDb
|
case 1: // getVersionFromDb
|
||||||
result = resGlobal.result;
|
result = resGlobal.result;
|
||||||
@@ -2134,6 +2139,19 @@ function handleError(res)
|
|||||||
}
|
}
|
||||||
';
|
';
|
||||||
// ajax to check md5 files
|
// ajax to check md5 files
|
||||||
|
$js .= 'function addModifiedFileList(title, fileList, css_class)
|
||||||
|
{
|
||||||
|
subList = $("<ul class=\"changedFileList "+css_class+"\"></ul>");
|
||||||
|
|
||||||
|
$(fileList).each(function(k,v){
|
||||||
|
$(subList).append("<li>"+v+"</li>");
|
||||||
|
});
|
||||||
|
$("#changedList").append("<h3><a class=\"toggleSublist\">"+title+"</a></h3>");
|
||||||
|
$("#changedList").append(subList);
|
||||||
|
$("#cchangedList").append("<br/>");
|
||||||
|
|
||||||
|
}';
|
||||||
|
|
||||||
$js.= '$(document).ready(function(){
|
$js.= '$(document).ready(function(){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"POST",
|
type:"POST",
|
||||||
@@ -2155,16 +2173,15 @@ $js.= '$(document).ready(function(){
|
|||||||
$("#checkPrestaShopFilesVersion").prepend("<img src=\"../img/admin/warning.gif\" /> ");
|
$("#checkPrestaShopFilesVersion").prepend("<img src=\"../img/admin/warning.gif\" /> ");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$("#checkPrestaShopFilesVersion").prepend(answer.status);
|
$("#checkPrestaShopFilesVersion").prepend("<img src=\"../img/admin/warning.gif\" /> ");
|
||||||
$("#checkPrestaShopFilesVersion").append("<a id=\"toggleChangedList\" class=\"button\" href=\"\">'.$this->l('See or hide the list').'</a><br/>");
|
$("#checkPrestaShopFilesVersion").append("<a id=\"toggleChangedList\" class=\"button\" href=\"\">'.$this->l('See or hide the list').'</a><br/>");
|
||||||
$("#checkPrestaShopFilesVersion").append("<div id=\"changedList\" style=\"display:none \">");
|
$("#checkPrestaShopFilesVersion").append("<div id=\"changedList\" style=\"display:none \"><br/>");
|
||||||
|
addModifiedFileList("'.$this->l('Core files').'", answer.result.core, "changedImportant");
|
||||||
$("#changedList").html("<ul>");
|
addModifiedFileList("'.$this->l('Mail files').'", answer.result.mail, "changedNotice");
|
||||||
$(answer.result).each(function(k,v){
|
addModifiedFileList("'.$this->l('Translation files').'", answer.result.translation, "changedNotice");
|
||||||
$("#changedList ul").append("<li>"+v+"</li>");
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#toggleChangedList").bind("click",function(e){e.preventDefault();$("#changedList").toggle();});
|
$("#toggleChangedList").bind("click",function(e){e.preventDefault();$("#changedList").toggle();});
|
||||||
|
$(".toggleSublist").live("click",function(e){e.preventDefault();$(this).parent().next().toggle();});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
@@ -2183,6 +2200,7 @@ $("#toggleChangedList").bind("click",function(e){e.preventDefault();$("#changedL
|
|||||||
});';
|
});';
|
||||||
return $js;
|
return $js;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _cleanUp($path)
|
private function _cleanUp($path)
|
||||||
{
|
{
|
||||||
// as we need theses files for restore operation, we can't remove them.
|
// as we need theses files for restore operation, we can't remove them.
|
||||||
|
|||||||
@@ -165,18 +165,37 @@ class UpgraderCore
|
|||||||
}
|
}
|
||||||
return $this->changed_files;
|
return $this->changed_files;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** populate $this->changed_files with $path
|
||||||
|
* in sub arrays mail, translation and core items
|
||||||
|
* @param string $path filepath to add, relative to _PS_ROOT_DIR_
|
||||||
|
*/
|
||||||
protected function addChangedFile($path)
|
protected function addChangedFile($path)
|
||||||
{
|
{
|
||||||
$this->version_is_modified = true;
|
$this->version_is_modified = true;
|
||||||
$this->changed_files[] = $path;
|
|
||||||
//array_unique($this->changed_files);
|
if (strpos($path, 'mails/') !== false)
|
||||||
|
$this->changed_files['mail'][] = $path;
|
||||||
|
else if (
|
||||||
|
strpos($path, '/en.php') !== false
|
||||||
|
|| strpos($path, '/fr.php') !== false
|
||||||
|
|| strpos($path, '/es.php') !== false
|
||||||
|
|| strpos($path, '/it.php') !== false
|
||||||
|
|| strpos($path, '/de.php') !== false
|
||||||
|
|| strpos($path, 'translations/') !== false
|
||||||
|
)
|
||||||
|
$this->changed_files['translation'][] = $path;
|
||||||
|
else
|
||||||
|
$this->changed_files['core'][] = $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** populate $this->missing_files with $path
|
||||||
|
* @param string $path filepath to add, relative to _PS_ROOT_DIR_
|
||||||
|
*/
|
||||||
protected function addMissingFile($path)
|
protected function addMissingFile($path)
|
||||||
{
|
{
|
||||||
$this->version_is_modified = true;
|
$this->version_is_modified = true;
|
||||||
$this->missing_files[] = $path;
|
$this->missing_files[] = $path;
|
||||||
//array_unique($this->missingFile);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function browseXmlAndCompare($node, &$current_path = array(), $level = 1)
|
protected function browseXmlAndCompare($node, &$current_path = array(), $level = 1)
|
||||||
@@ -190,18 +209,22 @@ class UpgraderCore
|
|||||||
}
|
}
|
||||||
else if (is_object($child) && $child->getName() == 'md5file')
|
else if (is_object($child) && $child->getName() == 'md5file')
|
||||||
{
|
{
|
||||||
$path = _PS_ROOT_DIR_.DIRECTORY_SEPARATOR;
|
// We will store only relative path.
|
||||||
|
// absolute path is only used for file_exists and compare
|
||||||
|
$relative_path = '';
|
||||||
for ($i = 1; $i < $level; $i++)
|
for ($i = 1; $i < $level; $i++)
|
||||||
$path .= $current_path[$i].'/';
|
$relative_path .= $current_path[$i].'/';
|
||||||
$path .= (string)$child['name'];
|
$relative_path .= (string)$child['name'];
|
||||||
$path = str_replace('ps_root_dir',_PS_ROOT_DIR_,$path);
|
$fullpath = _PS_ROOT_DIR_.DIRECTORY_SEPARATOR . $relative_path;
|
||||||
|
|
||||||
|
$fullpath = str_replace('ps_root_dir', _PS_ROOT_DIR_, $fullpath);
|
||||||
|
|
||||||
// replace default admin dir by current one
|
// replace default admin dir by current one
|
||||||
$path = str_replace(_PS_ROOT_DIR_.'/admin', _PS_ADMIN_DIR_, $path);
|
$fullpath = str_replace(_PS_ROOT_DIR_.'/admin', _PS_ADMIN_DIR_, $fullpath);
|
||||||
if(!file_exists($path))
|
if (!file_exists($fullpath))
|
||||||
$this->addMissingFile($path);
|
$this->addMissingFile($relative_path);
|
||||||
else if (!$this->compareChecksum($path, (string)$child))
|
else if (!$this->compareChecksum($fullpath, (string)$child))
|
||||||
$this->addChangedFile($path);
|
$this->addChangedFile($relative_path);
|
||||||
// else, file is original (and ok)
|
// else, file is original (and ok)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,33 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* 2007-2011 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Open Software License (OSL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/osl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2011 PrestaShop SA
|
||||||
|
* @version Release: $Revision$
|
||||||
|
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*/
|
||||||
|
|
||||||
class Autoupgrade extends Module
|
class Autoupgrade extends Module
|
||||||
{
|
{
|
||||||
function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->name = 'autoupgrade';
|
$this->name = 'autoupgrade';
|
||||||
$this->tab = 'administration';
|
$this->tab = 'administration';
|
||||||
@@ -25,15 +50,16 @@ class Autoupgrade extends Module
|
|||||||
$this->description = $this->l('Provides an automated method to upgrade your shop to the last PrestaShop version');
|
$this->description = $this->l('Provides an automated method to upgrade your shop to the last PrestaShop version');
|
||||||
|
|
||||||
}
|
}
|
||||||
function install()
|
|
||||||
|
public function install()
|
||||||
{
|
{
|
||||||
|
|
||||||
$res = true;
|
$res = true;
|
||||||
// before adding AdminSelfUpgrade, we should remove AdminUpgrade
|
// before adding AdminSelfUpgrade, we should remove AdminUpgrade
|
||||||
$idTab = Tab::getIdFromClassName('AdminUpgrade');
|
$idTab = Tab::getIdFromClassName('AdminUpgrade');
|
||||||
|
|
||||||
if ($idTab)
|
if ($idTab)
|
||||||
{
|
{
|
||||||
$tab = new Tab($idTab);
|
$tab = new Tab($idTab);
|
||||||
$res &= $tab->delete();
|
$res &= $tab->delete();
|
||||||
}
|
}
|
||||||
@@ -46,17 +72,17 @@ class Autoupgrade extends Module
|
|||||||
$tab->class_name = 'AdminSelfUpgrade';
|
$tab->class_name = 'AdminSelfUpgrade';
|
||||||
$tab->module = 'autoupgrade';
|
$tab->module = 'autoupgrade';
|
||||||
$tab->id_parent = 9;
|
$tab->id_parent = 9;
|
||||||
$tab->name = array_fill(1,sizeof(Language::getLanguages(false)), 'Upgrade');
|
$tab->name = array_fill(1, sizeof(Language::getLanguages(false)), 'Upgrade');
|
||||||
$res &= $tab->save();
|
$res &= $tab->save();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$tab = new Tab($idTab);
|
$tab = new Tab($idTab);
|
||||||
Configuration::updateValue('PS_AUTOUPDATE_MODULE_IDTAB',$tab->id);
|
Configuration::updateValue('PS_AUTOUPDATE_MODULE_IDTAB',$tab->id);
|
||||||
|
|
||||||
$autoupgradeDir = _PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'autoupgrade';
|
$autoupgradeDir = _PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'autoupgrade';
|
||||||
if(!file_exists($autoupgradeDir))
|
if (!file_exists($autoupgradeDir))
|
||||||
$res &= @mkdir($autoupgradeDir);
|
$res &= @mkdir($autoupgradeDir);
|
||||||
if(file_exists($autoupgradeDir.DIRECTORY_SEPARATOR.'ajax-upgradetab.php'))
|
if (file_exists($autoupgradeDir.DIRECTORY_SEPARATOR.'ajax-upgradetab.php'))
|
||||||
$res &= unlink($autoupgradeDir.DIRECTORY_SEPARATOR.'ajax-upgradetab.php');
|
$res &= unlink($autoupgradeDir.DIRECTORY_SEPARATOR.'ajax-upgradetab.php');
|
||||||
if (!defined('_PS_MODULE_DIR_'))
|
if (!defined('_PS_MODULE_DIR_'))
|
||||||
{
|
{
|
||||||
@@ -67,36 +93,35 @@ class Autoupgrade extends Module
|
|||||||
$res &= copy(_PS_MODULE_DIR_.'autoupgrade/logo.gif',_PS_ROOT_DIR_. DIRECTORY_SEPARATOR . 'img/t/AdminSelfUpgrade.gif');
|
$res &= copy(_PS_MODULE_DIR_.'autoupgrade/logo.gif',_PS_ROOT_DIR_. DIRECTORY_SEPARATOR . 'img/t/AdminSelfUpgrade.gif');
|
||||||
|
|
||||||
if (!$res
|
if (!$res
|
||||||
OR !Tab::getIdFromClassName('AdminSelfUpgrade')
|
|| !Tab::getIdFromClassName('AdminSelfUpgrade')
|
||||||
OR !parent::install()
|
|| !parent::install()
|
||||||
)
|
)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function uninstall()
|
public function uninstall()
|
||||||
{
|
{
|
||||||
$idtab = Configuration::get('PS_AUTOUPDATE_MODULE_IDTAB');
|
$idtab = Configuration::get('PS_AUTOUPDATE_MODULE_IDTAB');
|
||||||
$tab = new Tab($idtab,1);
|
$tab = new Tab($idtab,1);
|
||||||
$res = $tab->delete();
|
$res = $tab->delete();
|
||||||
if(file_exists(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'tabs'.'AdminUpgrade.php'))
|
if (file_exists(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'tabs'.'AdminUpgrade.php'))
|
||||||
{
|
{
|
||||||
// Should we create the correct AdminUpgrade tab (not the module)
|
// Should we create the correct AdminUpgrade tab (not the module)
|
||||||
if($idOldTab = Tab::getIdFromClassName('AdminUpgrade'))
|
if($idOldTab = Tab::getIdFromClassName('AdminUpgrade'))
|
||||||
{
|
{
|
||||||
$tab = new Tab($idOldTab);
|
$tab = new Tab($idOldTab);
|
||||||
$res &= $tab->delete();
|
$res &= $tab->delete();
|
||||||
}
|
}
|
||||||
$res &= unlink(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'tabs'.'AdminUpgrade.php');
|
$res &= unlink(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'tabs'.'AdminUpgrade.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file_exists(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'autoupgrade'.DIRECTORY_SEPARATOR.'ajax-upgradetab.php'))
|
if (file_exists(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'autoupgrade'.DIRECTORY_SEPARATOR.'ajax-upgradetab.php'))
|
||||||
$res &= @unlink(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'autoupgrade'.DIRECTORY_SEPARATOR.'ajax-upgradetab.php');
|
$res &= @unlink(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'autoupgrade'.DIRECTORY_SEPARATOR.'ajax-upgradetab.php');
|
||||||
if (!$res OR !parent::uninstall())
|
if (!$res || !parent::uninstall())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
@@ -116,13 +116,13 @@ class CarrierCompare extends Module
|
|||||||
if (!Validate::isInt($id_state))
|
if (!Validate::isInt($id_state))
|
||||||
$errors[] = $this->l('Invalid state ID');
|
$errors[] = $this->l('Invalid state ID');
|
||||||
if ($id_state != 0 && !Validate::isLoadedObject(new State($id_state)))
|
if ($id_state != 0 && !Validate::isLoadedObject(new State($id_state)))
|
||||||
$errors[] = $this->l('Invalid state ID');
|
$errors[] = $this->l('Please select a state');
|
||||||
if (!Validate::isInt($id_country) || !Validate::isLoadedObject(new Country($id_country)))
|
if (!Validate::isInt($id_country) || !Validate::isLoadedObject(new Country($id_country)))
|
||||||
$errors[] = $this->l('Invalid country ID');
|
$errors[] = $this->l('Please select a country');
|
||||||
if (!$this->checkZipcode($zipcode, $id_country))
|
if (!$this->checkZipcode($zipcode, $id_country))
|
||||||
$errors[] = $this->l('Please use a valid zip/postal code depending on your country selection');
|
$errors[] = $this->l('Please use a valid zip/postal code depending on your country selection');
|
||||||
if (!Validate::isInt($id_carrier) || !Validate::isLoadedObject(new Carrier($id_carrier)))
|
if (!Validate::isInt($id_carrier) || !Validate::isLoadedObject(new Carrier($id_carrier)))
|
||||||
$errors[] = $this->l('Invalid carrier ID');
|
$errors[] = $this->l('Please select a carrier');
|
||||||
|
|
||||||
if (sizeof($errors))
|
if (sizeof($errors))
|
||||||
return $errors;
|
return $errors;
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
<module>
|
<module>
|
||||||
<name>ebay</name>
|
<name>ebay</name>
|
||||||
<displayName><![CDATA[eBay]]></displayName>
|
<displayName><![CDATA[eBay]]></displayName>
|
||||||
<version><![CDATA[1.2.8]]></version>
|
<version><![CDATA[1.3]]></version>
|
||||||
<description><![CDATA[Open your shop on the eBay market place !]]></description>
|
<description><![CDATA[Open your shop on the eBay market place !]]></description>
|
||||||
<author><![CDATA[PrestaShop]]></author>
|
<author><![CDATA[PrestaShop]]></author>
|
||||||
<tab><![CDATA[market_place]]></tab>
|
<tab><![CDATA[market_place]]></tab>
|
||||||
|
<confirmUninstall>Are you sure you want uninstall this module ? All your configuration will be lost.</confirmUninstall>
|
||||||
<is_configurable>1</is_configurable>
|
<is_configurable>1</is_configurable>
|
||||||
<need_instance>1</need_instance>
|
<need_instance>1</need_instance>
|
||||||
<limited_countries></limited_countries>
|
<limited_countries></limited_countries>
|
||||||
|
|||||||
@@ -1163,8 +1163,8 @@ class eBayRequest
|
|||||||
'status' => (string)$order->CheckoutStatus->Status,
|
'status' => (string)$order->CheckoutStatus->Status,
|
||||||
'date' => substr((string)$order->CreatedTime, 0, 10).' '.substr((string)$order->CreatedTime, 11, 8),
|
'date' => substr((string)$order->CreatedTime, 0, 10).' '.substr((string)$order->CreatedTime, 11, 8),
|
||||||
'name' => (string)$order->ShippingAddress->Name,
|
'name' => (string)$order->ShippingAddress->Name,
|
||||||
'firstname' => trim($name[0]),
|
'firstname' => substr(trim($name[0]), 0, 32),
|
||||||
'familyname' => (isset($name[1]) ? trim($name[1]) : trim($name[0])),
|
'familyname' => (isset($name[1]) ? substr(trim($name[1]), 0, 32) : substr(trim($name[0]), 0, 32)),
|
||||||
'address1' => (string)$order->ShippingAddress->Street1,
|
'address1' => (string)$order->ShippingAddress->Street1,
|
||||||
'address2' => (string)$order->ShippingAddress->Street2,
|
'address2' => (string)$order->ShippingAddress->Street2,
|
||||||
'city' => (string)$order->ShippingAddress->CityName,
|
'city' => (string)$order->ShippingAddress->CityName,
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class Ebay extends Module
|
|||||||
{
|
{
|
||||||
$this->name = 'ebay';
|
$this->name = 'ebay';
|
||||||
$this->tab = 'market_place';
|
$this->tab = 'market_place';
|
||||||
$this->version = '1.2.8';
|
$this->version = '1.3';
|
||||||
$this->author = 'PrestaShop';
|
$this->author = 'PrestaShop';
|
||||||
parent::__construct ();
|
parent::__construct ();
|
||||||
$this->displayName = $this->l('eBay');
|
$this->displayName = $this->l('eBay');
|
||||||
@@ -113,6 +113,9 @@ class Ebay extends Module
|
|||||||
|
|
||||||
// Loading Shipping Method
|
// Loading Shipping Method
|
||||||
$this->loadShippingMethod();
|
$this->loadShippingMethod();
|
||||||
|
|
||||||
|
// Warning uninstall
|
||||||
|
$this->confirmUninstall = $this->l('Are you sure you want uninstall this module ? All your configuration will be lost.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -434,6 +437,8 @@ class Ebay extends Module
|
|||||||
$cartAdd->id_carrier = 1;
|
$cartAdd->id_carrier = 1;
|
||||||
$cartAdd->id_lang = $this->id_lang;
|
$cartAdd->id_lang = $this->id_lang;
|
||||||
$cartAdd->id_currency = Currency::getIdByIsoCode('EUR');
|
$cartAdd->id_currency = Currency::getIdByIsoCode('EUR');
|
||||||
|
$cartAdd->recyclable = 0;
|
||||||
|
$cartAdd->gift = 0;
|
||||||
$cartAdd->add();
|
$cartAdd->add();
|
||||||
foreach ($order['product_list'] as $product)
|
foreach ($order['product_list'] as $product)
|
||||||
if ($cartAdd->updateQty((int)($product['quantity']), (int)($product['id_product']), ((isset($product['id_product_attribute']) && $product['id_product_attribute'] > 0) ? $product['id_product_attribute'] : NULL)))
|
if ($cartAdd->updateQty((int)($product['quantity']), (int)($product['id_product']), ((isset($product['id_product_attribute']) && $product['id_product_attribute'] > 0) ? $product['id_product_attribute'] : NULL)))
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ $_MODULE['<{ebay}prestashop>ebay_8acabcc788c316f92b7850c76265b49b'] = 'Vous deve
|
|||||||
$_MODULE['<{ebay}prestashop>ebay_d591cbc447d01e5a6165096ebfdf804e'] = 'Vous devez activer l\'extension cURL sur votre serveur si vous désirez utiliser ce module.';
|
$_MODULE['<{ebay}prestashop>ebay_d591cbc447d01e5a6165096ebfdf804e'] = 'Vous devez activer l\'extension cURL sur votre serveur si vous désirez utiliser ce module.';
|
||||||
$_MODULE['<{ebay}prestashop>ebay_1b18bd5d9d85f4f667614345ee20e3b2'] = 'Vous devez activer l\'option allow_url_fopen sur votre serveur si vous désirez utiliser ce module.';
|
$_MODULE['<{ebay}prestashop>ebay_1b18bd5d9d85f4f667614345ee20e3b2'] = 'Vous devez activer l\'option allow_url_fopen sur votre serveur si vous désirez utiliser ce module.';
|
||||||
$_MODULE['<{ebay}prestashop>ebay_8e64bc164aee46723ed2d70273c6f8ab'] = 'Vous devez enregistrer le module sur eBay';
|
$_MODULE['<{ebay}prestashop>ebay_8e64bc164aee46723ed2d70273c6f8ab'] = 'Vous devez enregistrer le module sur eBay';
|
||||||
|
$_MODULE['<{ebay}prestashop>ebay_55798d71e1cce07f08e25d9a4da60f4a'] = 'Etes-vous sûr de vouloir désinstaller ce module? Toute votre configuration sera perdue.';
|
||||||
$_MODULE['<{ebay}prestashop>ebay_5f8d9c30e0606a91c5d7b6e1bf1217ac'] = 'N\'a pas pu ajouté les produits au panier (peut être votre stock est il à 0)';
|
$_MODULE['<{ebay}prestashop>ebay_5f8d9c30e0606a91c5d7b6e1bf1217ac'] = 'N\'a pas pu ajouté les produits au panier (peut être votre stock est il à 0)';
|
||||||
$_MODULE['<{ebay}prestashop>ebay_25fff46a6fe5b9512e2f4054f4ff6060'] = 'N\'a pas pu trouvé les produits dans votre catalogue';
|
$_MODULE['<{ebay}prestashop>ebay_25fff46a6fe5b9512e2f4054f4ff6060'] = 'N\'a pas pu trouvé les produits dans votre catalogue';
|
||||||
$_MODULE['<{ebay}prestashop>ebay_eaa0d1591e6369a298dcd6cb1a8eba8a'] = 'E-mail invalide';
|
$_MODULE['<{ebay}prestashop>ebay_eaa0d1591e6369a298dcd6cb1a8eba8a'] = 'E-mail invalide';
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ class MRManagement extends MondialRelay
|
|||||||
SET `id_method` = '.(int)$this->_params['id_mr_method'].', ';
|
SET `id_method` = '.(int)$this->_params['id_mr_method'].', ';
|
||||||
if (is_array($this->_params['relayPointInfo']))
|
if (is_array($this->_params['relayPointInfo']))
|
||||||
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
||||||
$query .= '`MR_Selected_'.$nameKey.'` = "'.$value.'", ';
|
$query .= '`MR_Selected_'.pSQL($nameKey).'` = "'.pSQL($value).'", ';
|
||||||
else // Clean the existing relay point data
|
else // Clean the existing relay point data
|
||||||
$query .= '
|
$query .= '
|
||||||
MR_Selected_Num = NULL,
|
MR_Selected_Num = NULL,
|
||||||
@@ -82,14 +82,14 @@ class MRManagement extends MondialRelay
|
|||||||
(`id_customer`, `id_method`, `id_cart`, ';
|
(`id_customer`, `id_method`, `id_cart`, ';
|
||||||
if (is_array($this->_params['relayPointInfo']))
|
if (is_array($this->_params['relayPointInfo']))
|
||||||
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
||||||
$query .= '`MR_Selected_'.$nameKey.'`, ';
|
$query .= '`MR_Selected_'.pSQL($nameKey).'`, ';
|
||||||
$query = rtrim($query, ', ').') VALUES (
|
$query = rtrim($query, ', ').') VALUES (
|
||||||
'.$this->_params['id_customer'].',
|
'.$this->_params['id_customer'].',
|
||||||
'.$this->_params['id_mr_method'].',
|
'.$this->_params['id_mr_method'].',
|
||||||
'.$this->_params['id_cart'].', ';
|
'.$this->_params['id_cart'].', ';
|
||||||
if (is_array($this->_params['relayPointInfo']))
|
if (is_array($this->_params['relayPointInfo']))
|
||||||
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
||||||
$query .= '"'.$value.'", ';
|
$query .= '"'.pSQL($value).'", ';
|
||||||
$query = rtrim($query, ', ').')';
|
$query = rtrim($query, ', ').')';
|
||||||
}
|
}
|
||||||
Db::getInstance()->Execute($query);
|
Db::getInstance()->Execute($query);
|
||||||
|
|||||||
@@ -922,12 +922,14 @@ class MondialRelay extends Module
|
|||||||
<fieldset class="PS_MRFormStyle">
|
<fieldset class="PS_MRFormStyle">
|
||||||
<legend>
|
<legend>
|
||||||
<img src="../modules/mondialrelay/images/logo.gif" />'.$this->l('Advanced Settings'). ' -
|
<img src="../modules/mondialrelay/images/logo.gif" />'.$this->l('Advanced Settings'). ' -
|
||||||
<a href="javascript:void(0);" id="PS_MRDisplayPersonalizedOptions"><font style="color:#00b511;">'.$this->l('Click to display / hide the options').'</font> </a>'.
|
<a href="javascript:void(0);" id="PS_MRDisplayPersonalizedOptions">
|
||||||
|
<font style="color:#00b511;">'.$this->l('Click to display / hide the options').'</font>
|
||||||
|
</a>'.
|
||||||
'</legend>
|
'</legend>
|
||||||
<div id="PS_MRAdvancedSettings">
|
<div id="PS_MRAdvancedSettings">
|
||||||
<p>
|
<p>'.
|
||||||
'.$this->l('URL Cron Task:').' '.Tools::getHttpHost(true, true)
|
$this->l('URL Cron Task:').' '.Tools::getHttpHost(true, true).
|
||||||
._MODULE_DIR_.$this->name.'/cron.php?secure_key='.
|
_MODULE_DIR_.$this->name.'/cron.php?secure_key='.
|
||||||
Configuration::get('MONDIAL_RELAY_SECURE_KEY').
|
Configuration::get('MONDIAL_RELAY_SECURE_KEY').
|
||||||
'</p>
|
'</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 27 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 187 KiB |
@@ -96,6 +96,7 @@ class Ogone extends PaymentModule
|
|||||||
<li><a href="../modules/'.$this->name.'/docs/en2.png">'.$this->l('See the screenshot for step').' 2</a></li>
|
<li><a href="../modules/'.$this->name.'/docs/en2.png">'.$this->l('See the screenshot for step').' 2</a></li>
|
||||||
<li><a href="../modules/'.$this->name.'/docs/en3.png">'.$this->l('See the screenshot for step').' 3</a></li>
|
<li><a href="../modules/'.$this->name.'/docs/en3.png">'.$this->l('See the screenshot for step').' 3</a></li>
|
||||||
<li><a href="../modules/'.$this->name.'/docs/en4.png">'.$this->l('See the screenshot for step').' 4</a></li>
|
<li><a href="../modules/'.$this->name.'/docs/en4.png">'.$this->l('See the screenshot for step').' 4</a></li>
|
||||||
|
<li><a href="../modules/'.$this->name.'/docs/en5.png">'.$this->l('See the screenshot for step').' 5</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|||||||
@@ -297,10 +297,10 @@ abstract class PSCPrepaidServices extends PaymentModule
|
|||||||
foreach ($this->_getAllowedCurrencies() AS $currency)
|
foreach ($this->_getAllowedCurrencies() AS $currency)
|
||||||
{
|
{
|
||||||
$mid = Configuration::get($this->prefix.'MERCHANT_ID_'.$currency['iso_code']);
|
$mid = Configuration::get($this->prefix.'MERCHANT_ID_'.$currency['iso_code']);
|
||||||
$certificateExiste = '';
|
$certificate = '';
|
||||||
$passwordExist = '';
|
$passwordExist = '';
|
||||||
if (file_exists($this->certificat_dir.$mid.'.pem'))
|
if (file_exists($this->certificat_dir.$mid.'.pem'))
|
||||||
$certificateExiste = '<div style="color:#00b511; text-align:center;">'.$this->l('A certificate has been found for this configuration').' : '.$mid.'.pem'.'</div><br />';
|
$certificate = '<div style="color:#00b511; text-align:center;">'.$this->l('A certificate has been found for this configuration').' : '.$mid.'.pem'.'</div><br />';
|
||||||
if (Configuration::get($this->prefix.'KEYRING_PW_'.$currency['iso_code']))
|
if (Configuration::get($this->prefix.'KEYRING_PW_'.$currency['iso_code']))
|
||||||
$passwordExist = '<div style="color:#00b511; text-align:center;">'.$this->l('A password has already been saved');
|
$passwordExist = '<div style="color:#00b511; text-align:center;">'.$this->l('A password has already been saved');
|
||||||
|
|
||||||
@@ -317,7 +317,7 @@ abstract class PSCPrepaidServices extends PaymentModule
|
|||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="file" name="ct_keyring_certificate_'.$currency['iso_code'].'" />
|
<input type="file" name="ct_keyring_certificate_'.$currency['iso_code'].'" />
|
||||||
</div>
|
</div>
|
||||||
'.$certificateExiste.'
|
'.$certificate.'
|
||||||
<label>'.$this->getL('keyring_pw').'</label>
|
<label>'.$this->getL('keyring_pw').'</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="password" name="ct_keyring_pw_'.$currency['iso_code'].'" value=""/>
|
<input type="password" name="ct_keyring_pw_'.$currency['iso_code'].'" value=""/>
|
||||||
|
|||||||
@@ -6,21 +6,24 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<table style="font-family: Verdana,sans-serif; font-size: 11px; color: #374953; width: 550px;">
|
<table style="font-family: Verdana,sans-serif; font-size: 11px; color: #374953; width: 550px;">
|
||||||
<tbody>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left"><a title="{shop_name}" href="{shop_url}"><img style="border: none;" src="{shop_logo}" alt="{shop_name}" /></a></td>
|
<td align="left">
|
||||||
|
<a href="{shop_url}" title="{shop_name}"><img alt="{shop_name}" src="{shop_logo}" style="border:none;" ></a>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left">Danke, dass Sie bei {shop_name} eingekauft haben. Waren Sie mit Ihrem Einkauf und unserem Service zufrieden? Hier können Sie {shop_name} bewerten, wir freuen uns auf Ihr Feedback.
|
<td align="left">
|
||||||
|
Danke, dass Sie bei {shop_name} eingekauft haben. Waren Sie mit Ihrem Einkauf und unserem Service zufrieden? Hier können Sie {shop_name} bewerten, wir freuen uns auf Ihr Feedback.
|
||||||
|
<br /><br />
|
||||||
|
<center><a href="{rating_url}"><img border="0" src="{button_url}/apply_en.gif" alt="Wir freuen uns auf Ihr Feedback" /></a></center>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr><td> </td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td> </td>
|
<td align="center" style="font-size:10px; border-top: 1px solid #D9DADE;">
|
||||||
|
<a href="{shop_url}" style="color:#DB3484; font-weight:bold; text-decoration:none;">{shop_name}</a> powered with <a href="http://www.prestashop.com/" style="text-decoration:none; color:#374953;">PrestaShop™</a>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td style="font-size: 10px; border-top: 1px solid #D9DADE;" align="center"><a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}">{shop_name}</a> powered with <a style="text-decoration: none; color: #374953;" href="http://www.prestashop.com/">PrestaShop™</a></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left">
|
<td align="left">
|
||||||
Merci pour votre achat chez {shop_name}. Etes vous satisfait du service chez {shop_name}? Vous pouvez donner votre avis et nous évaluer.
|
Merci pour votre achat chez {shop_name}. Etes-vous satisfait du service chez {shop_name}? Vous pouvez donner votre avis et nous évaluer.
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<center><a href="{rating_url}"><img border="0" src="{button_url}/apply_fr.gif" alt="Evaluez nous" /></a></center>
|
<center><a href="{rating_url}"><img border="0" src="{button_url}/apply_fr.gif" alt="Evaluez nous" /></a></center>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
Merci pour votre achat chez {shop_name}. Etes vous satisfait du service chez {shop_name}? Vous pouvez donner votre avis et nous évaluer sur {rating_url}
|
Merci pour votre achat chez {shop_name}. Etes-vous satisfait du service chez {shop_name}? Vous pouvez donner votre avis et nous évaluer sur {rating_url}
|
||||||
|
|
||||||
{shop_url} réalisé par PrestaShop™
|
{shop_url} réalisé par PrestaShop™
|
||||||
+151
-3
@@ -881,9 +881,11 @@ $_LANGADM['AdminEmployeesa9e4402481bd9b8e36752bf731f67eb6'] = 'Thème :';
|
|||||||
$_LANGADM['AdminEmployeese4b41fb20213ac1461a81cb0c310bd97'] = 'Mode d\'interface';
|
$_LANGADM['AdminEmployeese4b41fb20213ac1461a81cb0c310bd97'] = 'Mode d\'interface';
|
||||||
$_LANGADM['AdminEmployeesf177aa999000021a3901ac78a2728b59'] = 'Affichage au survol';
|
$_LANGADM['AdminEmployeesf177aa999000021a3901ac78a2728b59'] = 'Affichage au survol';
|
||||||
$_LANGADM['AdminEmployeesd4e0f6342c209912053fec10be72c94b'] = 'Affichage au clic';
|
$_LANGADM['AdminEmployeesd4e0f6342c209912053fec10be72c94b'] = 'Affichage au clic';
|
||||||
$_LANGADM['AdminEmployees24a23d787190f2c4812ff9ab11847a72'] = 'Statut :';
|
$_LANGADM['AdminEmployees79f79257476673a2aea1b2a41adf3384'] = 'Afficher le screencast:';
|
||||||
$_LANGADM['AdminEmployees00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Activé';
|
$_LANGADM['AdminEmployees00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Activé';
|
||||||
$_LANGADM['AdminEmployeesb9f5c797ebbf55adccdd8539a65a0241'] = 'Désactivé';
|
$_LANGADM['AdminEmployeesb9f5c797ebbf55adccdd8539a65a0241'] = 'Désactivé';
|
||||||
|
$_LANGADM['AdminEmployees4d1f8c97363b784de6d8924bc655cab6'] = 'Afficher la vidéo de présentation sur le tableau de bord du panneau d\'administration';
|
||||||
|
$_LANGADM['AdminEmployees24a23d787190f2c4812ff9ab11847a72'] = 'Statut :';
|
||||||
$_LANGADM['AdminEmployees41bc9496fbde8565bd5fc699e513fbd9'] = 'Autoriser cet employé à se connecter au Back Office';
|
$_LANGADM['AdminEmployees41bc9496fbde8565bd5fc699e513fbd9'] = 'Autoriser cet employé à se connecter au Back Office';
|
||||||
$_LANGADM['AdminEmployees9fbf3617c6172a75648e9ac0a864bb56'] = 'Profil :';
|
$_LANGADM['AdminEmployees9fbf3617c6172a75648e9ac0a864bb56'] = 'Profil :';
|
||||||
$_LANGADM['AdminEmployees7bc873cba11f035df692c3549366c722'] = '-- Choisissez --';
|
$_LANGADM['AdminEmployees7bc873cba11f035df692c3549366c722'] = '-- Choisissez --';
|
||||||
@@ -2552,8 +2554,13 @@ $_LANGADM['AdminScenesc820e0c1d4ae16db218626f49e7916b1'] = 'Ko max.';
|
|||||||
$_LANGADM['AdminScenes0b24516ee8c68a18020951583bc3b8ab'] = 'Automatiquement redimensionné à';
|
$_LANGADM['AdminScenes0b24516ee8c68a18020951583bc3b8ab'] = 'Automatiquement redimensionné à';
|
||||||
$_LANGADM['AdminScenes8a5c9824486e8c1f74cb4c4ec8f9e465'] = '(hauteur x largeur)';
|
$_LANGADM['AdminScenes8a5c9824486e8c1f74cb4c4ec8f9e465'] = '(hauteur x largeur)';
|
||||||
$_LANGADM['AdminScenesa5394858079fa378684b20a1abc0e9be'] = 'Note : Pour changer la dimension de base des images de scènes, veuillez modifier le paramètre \'large_scene\' avec les dimensions souhaitées (dans le Back office : Onglet \'Préférences\' > Onglet \'Image\').';
|
$_LANGADM['AdminScenesa5394858079fa378684b20a1abc0e9be'] = 'Note : Pour changer la dimension de base des images de scènes, veuillez modifier le paramètre \'large_scene\' avec les dimensions souhaitées (dans le Back office : Onglet \'Préférences\' > Onglet \'Image\').';
|
||||||
$_LANGADM['AdminScenes56a8a9eb05f9014da51a4f9b57322ac7'] = 'Catégorie(s) :';
|
$_LANGADM['AdminScenes8cf04a9734132302f96da8e113e80ce5'] = 'Accueil';
|
||||||
$_LANGADM['AdminScenes19f2cd1d239a894f67d4ac73058af014'] = 'Cochez les cases des catégories dans lesquelles la scène doit apparaître.';
|
$_LANGADM['AdminScenesef7de3f485174ff47f061ad27d83d0ee'] = 'selectionée(s)';
|
||||||
|
$_LANGADM['AdminScenesb56c3bda503a8dc4be356edb0cc31793'] = 'Tout replier';
|
||||||
|
$_LANGADM['AdminScenes5ffd7a335dd836b3373f5ec570a58bdc'] = 'Tout étendre';
|
||||||
|
$_LANGADM['AdminScenes5e9df908eafa83cb51c0a3720e8348c7'] = 'Tout cocher';
|
||||||
|
$_LANGADM['AdminScenes9747d23c8cc358c5ef78c51e59cd6817'] = 'Tout décocher';
|
||||||
|
$_LANGADM['AdminScenes8c38776925f7cf41c090646a43157024'] = 'Catégories :';
|
||||||
$_LANGADM['AdminScenesf16b5952df8d25ea30b25ff95ee8fedf'] = 'Boutiques associées';
|
$_LANGADM['AdminScenesf16b5952df8d25ea30b25ff95ee8fedf'] = 'Boutiques associées';
|
||||||
$_LANGADM['AdminScenesdf41d831253828e9852a25c72393fde8'] = 'Enregistrez la scène';
|
$_LANGADM['AdminScenesdf41d831253828e9852a25c72393fde8'] = 'Enregistrez la scène';
|
||||||
$_LANGADM['AdminScenesf5dae0e1b3d4bc66fadd2840b4f79227'] = 'Veuillez ajouter une image pour continuer';
|
$_LANGADM['AdminScenesf5dae0e1b3d4bc66fadd2840b4f79227'] = 'Veuillez ajouter une image pour continuer';
|
||||||
@@ -3073,6 +3080,147 @@ $_LANGADM['AdminTranslations52d83d7ed502b33d300a8c0af2c5b455'] = 'Liste des them
|
|||||||
$_LANGADM['AdminTranslationsc21f969b5f03d33d43e04f8f136e7682'] = 'defaut';
|
$_LANGADM['AdminTranslationsc21f969b5f03d33d43e04f8f136e7682'] = 'defaut';
|
||||||
$_LANGADM['AdminTranslationsa9e4402481bd9b8e36752bf731f67eb6'] = 'Thème';
|
$_LANGADM['AdminTranslationsa9e4402481bd9b8e36752bf731f67eb6'] = 'Thème';
|
||||||
$_LANGADM['AdminTranslations53b3cae42737979c884275593a01f468'] = 'Module :';
|
$_LANGADM['AdminTranslations53b3cae42737979c884275593a01f468'] = 'Module :';
|
||||||
|
$_LANGADM['AdminUpgrade875b8a59022d232837491c0fdfacb4ab'] = 'Ne pas sauver les images';
|
||||||
|
$_LANGADM['AdminUpgradea8d6c6734da0083021561b23f2fa88cc'] = 'Vous pouvez exclure le dossier image de la sauvegarde si vous l\'avez déjà sauvegardé d\'une autre manière (non recommandé)';
|
||||||
|
$_LANGADM['AdminUpgradeaf98608eaedd4ba7ffd47a0204e84b23'] = 'Conserver le thème \"prestashop\" actuel';
|
||||||
|
$_LANGADM['AdminUpgrade4ea56ca1a757e426911ff20889c0e93c'] = 'Si vous avez personnalisé le thème par défaut de PrestaShop, vous pouvez le protéger de la mise à niveau (non recommandé)';
|
||||||
|
$_LANGADM['AdminUpgrade8413c63a6ef3717a974094785fd0b588'] = 'Garder les traductions';
|
||||||
|
$_LANGADM['AdminUpgrade51bbcf7afb0f8d35501d0a7b28979b06'] = 'Si \"oui\", vous conserverez toutes vos traductions';
|
||||||
|
$_LANGADM['AdminUpgrade8c8194a465f0163a6724907755ac1b82'] = 'Mode manuel';
|
||||||
|
$_LANGADM['AdminUpgradedd9dbd4916653d683244119a067ca467'] = 'Choisissze \"oui\" si vous voulez vous ';
|
||||||
|
$_LANGADM['AdminUpgradee7b6d601ff4e9069e726927e211274ea'] = 'Utiliser Subversion';
|
||||||
|
$_LANGADM['AdminUpgradea15b09729294cf7fea1096f970a0fed4'] = 'Choisissez \"oui\" si vous voulez utiliser une version non stable au lieu de l';
|
||||||
|
$_LANGADM['AdminUpgrade36be1130454bc8c4e0a41d36fa062a8b'] = 'Impossible de créer le répertoire %s';
|
||||||
|
$_LANGADM['AdminUpgradee21a52b9631b01c3f1821795b8de451c'] = 'Processus de mise à niveau terminé. Félicitations! Vous pouvez maintenant réactive de votre boutique.';
|
||||||
|
$_LANGADM['AdminUpgrade7b2f224649ef2ad10a2d73595d67a876'] = 'Démarrage mise à niveau ...';
|
||||||
|
$_LANGADM['AdminUpgrade6824d57b7af37f605bd97d34defc3761'] = 'Exportation svn terminée. Suppression des fichiers exemples...';
|
||||||
|
$_LANGADM['AdminUpgradef70307d8297e48a8783d41e6f3313d51'] = 'Erreur lors de l\'export SVN';
|
||||||
|
$_LANGADM['AdminUpgrade4eecd9c195e46c054ef7da6d9d1a738b'] = 'Extraction terminée. Suppression des fichiers exemples...';
|
||||||
|
$_LANGADM['AdminUpgrade0929f38eaac3ca38801f08b7269574e0'] = 'Impossible d\'extraire %1$s dans %2$s ...';
|
||||||
|
$_LANGADM['AdminUpgrade6b2d0404b7faba0e791e15a52586a149'] = 'Basculer vers svn checkout (useSvn activé)';
|
||||||
|
$_LANGADM['AdminUpgradef0e38ac0c558a7f216ae98382b9e58f5'] = 'Site désactivé. Téléchargement en cours (peut prendre ';
|
||||||
|
$_LANGADM['AdminUpgrade4f7c02592a962e40a920f32f3a24f2df'] = 'filesToUpgrade n\'est pas un tableau';
|
||||||
|
$_LANGADM['AdminUpgrade3f10faa8b44a7175ae8fc5dcb8dec5de'] = 'Tous les fichiers ont été mis à jour. Mise à jour de la base de données en cours.';
|
||||||
|
$_LANGADM['AdminUpgrade1ad932e3b85eb2907a817cd3e3e6907e'] = 'Erreur pour la mise à jour de %s';
|
||||||
|
$_LANGADM['AdminUpgrade078a325fbcc1dbd50bd9f969ce954965'] = 'encore %2$s fichiers à mettre à jour.';
|
||||||
|
$_LANGADM['AdminUpgrade62740df131433ec9d45bf1810eefb19b'] = 'erreur pendant la mise à jour de la base de données.';
|
||||||
|
$_LANGADM['AdminUpgrade9a2f2cf276ea9f79b31a815897c0e3e6'] = '%s ignoré.';
|
||||||
|
$_LANGADM['AdminUpgrade63ded4905ba41ac4bf00373df2739576'] = 'création du répertoire %2$s. encore %3$s fichiers à mettre à jour.';
|
||||||
|
$_LANGADM['AdminUpgrade11978affb3b0dbb16c50d571fd05de6d'] = 'erreur lors de la création du répertoire %s';
|
||||||
|
$_LANGADM['AdminUpgrade1b854285afc1988b6f83414fde5943ab'] = '%1$s copié dans %2$s. encore %3$s fichiers à mettre à jour.';
|
||||||
|
$_LANGADM['AdminUpgrade0e06ce0972ad338e1d96e8589dc21b9c'] = 'erreur lors de la copie de %1$s vers %2$s';
|
||||||
|
$_LANGADM['AdminUpgrade0511620a3a1d6036d3fbe47b131d7c4b'] = 'Fichiers restorés. Restauration de la base de données.';
|
||||||
|
$_LANGADM['AdminUpgrade791403f158965a3e19f8627c7b744126'] = 'Base de données restaurée.';
|
||||||
|
$_LANGADM['AdminUpgrade5f7f50973696d0a42c1efcc07f7820a0'] = 'Votre site est maintenant restauré.';
|
||||||
|
$_LANGADM['AdminUpgrade28517b8a291c50d80aa53a078407065b'] = 'Répertoire racine nettoyée.';
|
||||||
|
$_LANGADM['AdminUpgradebb71892737d721949538d6e1c4d3d22d'] = 'Fichiers restaurés. Sauvegarde de la base de données non trouvée. Restauration terminée.';
|
||||||
|
$_LANGADM['AdminUpgradecb7dce5f6a1934d54c0d3335c7ffe841'] = 'Fichiers restaurés.';
|
||||||
|
$_LANGADM['AdminUpgrade8efc36d230f76fbfd9e4d758964e9414'] = 'impossible d\'extraire %1$ s dans%2$s.';
|
||||||
|
$_LANGADM['AdminUpgraded7624db09c15d46cd37d7709ae05e44b'] = 'aucune sauvegarde trouvée. Il n\'y a rien à restaurer.';
|
||||||
|
$_LANGADM['AdminUpgrade09a362e2dd3800f8fbc55d3446513f65'] = 'Rien à restaurer (aucune requête trouvée)';
|
||||||
|
$_LANGADM['AdminUpgrade66c4cbfb21f294b233692b67356db647'] = 'Base de données sauvegardée dans %s. Mise à jour des fichiers ...';
|
||||||
|
$_LANGADM['AdminUpgrade48f95ff09327408a578e91655ed872a1'] = '%s fichiers à sauvegarder.';
|
||||||
|
$_LANGADM['AdminUpgrade70960f2aa87d307170d3a1bc3e06d904'] = 'sauvegarde des fichiers initilialisée dans %s';
|
||||||
|
$_LANGADM['AdminUpgrade8cf728d701c50a59ef78b7c55fc27cd4'] = 'Les fichiers de sauvegarde en cours. Encore %s ...';
|
||||||
|
$_LANGADM['AdminUpgrade15b353ca964fe816547e67e1508ff85d'] = 'Fichiers sauvegardés. Sauvegarde de la base de données ...';
|
||||||
|
$_LANGADM['AdminUpgradea25c4f085558c5f6e519e56257af531f'] = 'tous les fichiers ont été ajoutés à l\'archive.';
|
||||||
|
$_LANGADM['AdminUpgrade91f805cf850500bda66426aea042602f'] = '%1$ s ajouté à l\'archive. Encore %2$.';
|
||||||
|
$_LANGADM['AdminUpgradef79479c0de75d568def0afdc1e5de04e'] = 'Erreur lorsque vous essayez d\'ajouter %1$s à l\'archive %2$s.';
|
||||||
|
$_LANGADM['AdminUpgradeb9a2db69065827812dd4b7a7f9ffc0b1'] = 'impossible d\'ouvrir l\'archive';
|
||||||
|
$_LANGADM['AdminUpgrade2589a25910cd3d7fab7e45361c4cb39d'] = '%1$s supprimé. reste %2$s ';
|
||||||
|
$_LANGADM['AdminUpgraded82eef1ba081c54686767c555670c0fe'] = 'erreur lors de la suppression de %1$s, reste encore %2$s ';
|
||||||
|
$_LANGADM['AdminUpgrade344c592d141604c614c219fad3fa0dae'] = '%1$s fichiers exemple à supprimer';
|
||||||
|
$_LANGADM['AdminUpgrade0baf8c94d1d03d1621c17cd6eabf7b9f'] = 'Tous les exemples de fichiers supprimés. Sauvegarde des fichiers en cours...';
|
||||||
|
$_LANGADM['AdminUpgrade84e31682487d5a0937f9184ebcf594ba'] = 'copie de travail déjà %s à jour. exportation vers le répertoire latest';
|
||||||
|
$_LANGADM['AdminUpgrade8f4c8c87daa3bc0311cfb61b7d36e27b'] = 'Erreur d\'extraction du SVN';
|
||||||
|
$_LANGADM['AdminUpgrade0e81132066d433d212e237678e1193a3'] = 'non authorisé à utiliser SVN';
|
||||||
|
$_LANGADM['AdminUpgradeb0d51f91a1118b7c39ee1835cc6c926a'] = 'Téléchargement terminé. Extraction ...';
|
||||||
|
$_LANGADM['AdminUpgrade0c0db54fe8212c1a7215005fef75d7dd'] = 'Erreur pendant le téléchargement';
|
||||||
|
$_LANGADM['AdminUpgrade93120c07d8c5cee44042627cd493e0e0'] = 'vous avez besoin allow_url_fopen pour le téléchargement automatique. Vous pouvez également placer le fichier manuellement dans %s';
|
||||||
|
$_LANGADM['AdminUpgrade3bb38e7d0bfd5a02f7c06cae446fee86'] = 'l\'action %s ignorée';
|
||||||
|
$_LANGADM['AdminUpgrade19f823c6453c2b1ffd09cb715214813d'] = 'Champs requis';
|
||||||
|
$_LANGADM['AdminUpgrade760c4026bc5a0bd5378e6efc3f1370b4'] = 'Trop long !';
|
||||||
|
$_LANGADM['AdminUpgrade4f2e28904946a09d8c7f36dd3ee72457'] = 'Les champs sont différents !';
|
||||||
|
$_LANGADM['AdminUpgrade43b01d1a6c5065545c65f42003b0ab5c'] = 'Adresse incorrecte !';
|
||||||
|
$_LANGADM['AdminUpgrade2e170dfd78c2171a25605ececc0950a4'] = 'Impossible d\'envoyer l\'email !';
|
||||||
|
$_LANGADM['AdminUpgrade6deee80e4bdb8894331994116818558e'] = 'Erreur à la création du fichier de configuration, si le fichier /config/settings.inc.php existe, veuillez lui donner les droits publics d\'écriture; sinon veuillez créer un fichier settings.inc.php dans le répertoire de configuration (/config/)';
|
||||||
|
$_LANGADM['AdminUpgradeaa946cb00b1c23ff6553b6f9e05da151'] = 'Le fichier de paramètres n\'a pu être écrit, veuillez créer un fichier nommé settings.inc.php dans votre répertoire de configuration.';
|
||||||
|
$_LANGADM['AdminUpgradee930e2474c664a3a7e89ecfb8793694b'] = 'Impossible d\'envoyer le fichier !';
|
||||||
|
$_LANGADM['AdminUpgrade774fc7a0f56391abc5d8856f2436ca07'] = 'L\'intégrité des données n\'est pas validée.';
|
||||||
|
$_LANGADM['AdminUpgrade8fd007bf08e0717537825a3e91cb4fcc'] = 'Impossible de lire le contenu d\'un des fichiers *.sql.';
|
||||||
|
$_LANGADM['AdminUpgradec71e825f6873f64b91efc26313614eab'] = 'Impossible d\'accéder au contenu d\'un des fichiers *.sql.';
|
||||||
|
$_LANGADM['AdminUpgrade3d5c8f1d29b1a1dc4ea0673122e0d277'] = 'Erreur lors de l\'insertion dans la base :';
|
||||||
|
$_LANGADM['AdminUpgrade17e1581d01152347bfaacd153b961379'] = 'Mot de passe incorrect (chaîne alpha-numérique d\'au moins 8 caractères)';
|
||||||
|
$_LANGADM['AdminUpgrade9b9f3b2f8a4dffcad9188c8fc4b468c8'] = 'Une base de données PrestaShop existe déjà avec ce préfixe, vous devez la supprimer manuellement ou changer son préfixe.';
|
||||||
|
$_LANGADM['AdminUpgradebc5e1163a15106f9e941a7603124709d'] = 'Ce n\'est pas un nom valide.';
|
||||||
|
$_LANGADM['AdminUpgradea9d82945b8603f0c8807958d7db9a24d'] = 'Ce n\'est pas une image valide.';
|
||||||
|
$_LANGADM['AdminUpgradeb37eef07b764ea58eec9afe624e20a40'] = 'Erreur lors de la création du fichier /config/settings.inc.php.';
|
||||||
|
$_LANGADM['AdminUpgrade3d9f514d46849760ef1b1412e314fd99'] = 'Erreur :';
|
||||||
|
$_LANGADM['AdminUpgrade504053ab4c6d648edf11624f1bea4bb4'] = 'Cette base de données PrestaShop existe déjà, merci de revalider vos informations d\'authentification à la base de données.';
|
||||||
|
$_LANGADM['AdminUpgraded7a99f61bb284d096ea4f221784af85a'] = 'Une erreur est survenue lors du redimensionnement de l\'image.';
|
||||||
|
$_LANGADM['AdminUpgrade428c933bafbf262d693fbf1c22c03e5d'] = 'La base de données a été trouvée !';
|
||||||
|
$_LANGADM['AdminUpgrade76bd190129b7aefb90fdf42f09ec3ec7'] = 'Le serveur de bases de données est disponible mais la base de données n\'a pas été trouvée';
|
||||||
|
$_LANGADM['AdminUpgrade045f4b5c3f990e5a26e2837495d68259'] = 'Le serveur de bases de données n\'a pas été trouvé, merci de vérifier vos identifiants ou le nom du serveur.';
|
||||||
|
$_LANGADM['AdminUpgrade757fc72e8d69106dd2cf9da22cc7adb1'] = 'Une erreur est survenue lors de l\'envoi de l\'email, merci de vérifier vos paramètres.';
|
||||||
|
$_LANGADM['AdminUpgraded18ad19290b3bfc3cd0d7badbb6cb6a3'] = 'Impossible d\'écrire l\'image /img/logo.jpg. Si celle-ci existe déjà, merci de la supprimer manuellement.';
|
||||||
|
$_LANGADM['AdminUpgrade2368e33e3e01d53abb9b60061ab83903'] = 'Le fichier envoyé dépasse la taille maximum autorisée.';
|
||||||
|
$_LANGADM['AdminUpgradea10ef376d9f4c877ac86d8e4350116bf'] = 'Le fichier envoyé dépasse la taille maximum autorisée.';
|
||||||
|
$_LANGADM['AdminUpgradef8fe8cba1625eaf8e5c253b041d57dbd'] = 'Le fichier a été envoyé partiellement.';
|
||||||
|
$_LANGADM['AdminUpgrade8c9067e52e4440d8a20e74fdc745b0c6'] = 'Aucun fichier n\'a été envoyé';
|
||||||
|
$_LANGADM['AdminUpgrade2384d693d9af53b4727c092af7570a19'] = 'Il manque le dossier temporaire de réception de vos envois de fichiers. Merci de consulter votre administrateur système.';
|
||||||
|
$_LANGADM['AdminUpgradef5985b2c059d5cc36968baab7585baba'] = 'Impossible d\'écrire le fichier sur le disque';
|
||||||
|
$_LANGADM['AdminUpgrade9e54dfe54e03b0010c1fe70bd65cd5e6'] = 'Envoi de fichier interrompu à cause de l\'extension incorrecte';
|
||||||
|
$_LANGADM['AdminUpgrade32af3a59b50e98d254d6c03c5b320a94'] = 'Impossible de convertir les données de votre base de données en utf-8.';
|
||||||
|
$_LANGADM['AdminUpgrade989a45a4ca01ee222f4370172bf8850d'] = 'Nom de boutique invalide';
|
||||||
|
$_LANGADM['AdminUpgrade68499acecfba9d3bf0ca8711f300d3ed'] = 'Votre prénom contient des caractères invalides';
|
||||||
|
$_LANGADM['AdminUpgrade2399cf4ca7b49f2706f6e147a32efa78'] = 'Votre nom contient des caractères invalides';
|
||||||
|
$_LANGADM['AdminUpgrade7d72600fcff52fb3a2d2f73572117311'] = 'Votre serveur de base de données ne supporte pas le jeu de caractère utf-8.';
|
||||||
|
$_LANGADM['AdminUpgrade5b9bbadcf96f15e7f112c13a9e5f076e'] = 'Le support de ce moteur de base de donnée n\'est pas supporté, veuillez en choisir un autre tel que MyISAM';
|
||||||
|
$_LANGADM['AdminUpgrade24b481455c1b72b0c2539e7d516b9582'] = 'Le fichier /img/logo.jpg n\'a pas les droits d\'écriture, merci d\'effectuer un CHMOD 755 ou 777 sur ce fichier';
|
||||||
|
$_LANGADM['AdminUpgrade5746b74663148afffd1350c97d4fcdfe'] = 'Champ mode catalog invalide';
|
||||||
|
$_LANGADM['AdminUpgrade9e5459c4deb20b7842ac01e97390b334'] = 'Erreur inconnue.';
|
||||||
|
$_LANGADM['AdminUpgradedafe44b99256a7783bc37f4f949da373'] = 'Cet installeur est trop vieux.';
|
||||||
|
$_LANGADM['AdminUpgrade37ce0f29c7377c827e7247fe5645a782'] = 'Vous êtes déjà en possession de la version %s';
|
||||||
|
$_LANGADM['AdminUpgrade89928a14f2090aec4fd7aff9ea983f95'] = 'Pas de version antérieur détectée. Avez-vous supprimé ou renommé le fichier settings.inc.php du dossier config ?';
|
||||||
|
$_LANGADM['AdminUpgrade5276a8cbd9e3e467396089b267564f51'] = 'Le fichier config/settings.inc.php n\'a pas été trouvé. L\'avez-vous supprimé ou renommé ?';
|
||||||
|
$_LANGADM['AdminUpgrade24784d9e80638781b74c017b33d8ca0c'] = 'Impossible de trouver un des fichiers de mise à jour SQL. Merci de vérifier que le dossier /install/sql/upgrade n\'est pas vide.';
|
||||||
|
$_LANGADM['AdminUpgrade580e4b216e324f675f0237cdb34b6c2d'] = 'Pas de mise à jour disponible';
|
||||||
|
$_LANGADM['AdminUpgradef15e7e7292b0c72894cf45a893e0d497'] = 'Erreur lors de l\'ouverture du fichier SQL';
|
||||||
|
$_LANGADM['AdminUpgradeb8286438fbb6c7df9129fadc5316c19f'] = 'Erreur lors de l\'insertion dans la base de données';
|
||||||
|
$_LANGADM['AdminUpgrade229ee8046cafc09ddaf46fb9db710e91'] = 'Malheureusement,';
|
||||||
|
$_LANGADM['AdminUpgradee805a556799b7cef40e9760c81d99218'] = 'erreurs SQL sont apparues.';
|
||||||
|
$_LANGADM['AdminUpgrade5627353fd6ac678497af3ece05087068'] = 'Le fichier config/defines.inc.php n\'a pas été trouvé. Ou est-il passé ?';
|
||||||
|
$_LANGADM['AdminUpgrade446c9e952debe114c86bbd9e5eea7d61'] = 'Restaurer';
|
||||||
|
$_LANGADM['AdminUpgrade4879913b16fa23f723f70a5067bda8d4'] = 'Aucune restauration disponible';
|
||||||
|
$_LANGADM['AdminUpgradefff66e9b3d962fa319c8068b5c1997cd'] = 'restaurer';
|
||||||
|
$_LANGADM['AdminUpgradeebdabc2d40aa563aabbb3ee57915a7a9'] = 'cliquer pour restaurer %s';
|
||||||
|
$_LANGADM['AdminUpgradee9c57c7fbc335e66282a32617b01b9be'] = 'Votre configuration actuelle';
|
||||||
|
$_LANGADM['AdminUpgrade2fc4ab825ce2ce9476e8a1c2211ac9b8'] = 'Dossier racine';
|
||||||
|
$_LANGADM['AdminUpgrade8786f48d9cf9618cd2f5c37312ab7e50'] = 'Statut du dossier racine';
|
||||||
|
$_LANGADM['AdminUpgraded16d80ca66261afba43f5736f6cec7e6'] = 'droits complets en écriture';
|
||||||
|
$_LANGADM['AdminUpgrade039552aa1d74b68f01a73821f3078158'] = 'pas de droits d\'écriture récursif';
|
||||||
|
$_LANGADM['AdminUpgrade31a962ffeb06a6cc6d58ef3ba5fae2b7'] = 'Autoupgrade autorisé';
|
||||||
|
$_LANGADM['AdminUpgrade9c30a74657158984997cca4930d6075b'] = 'Cette version autorise la mise à jour automatique';
|
||||||
|
$_LANGADM['AdminUpgradeaf566be1636d11ecc8ddb728a15520b8'] = 'Cette version n\'autorise pas la mise à jour automatique';
|
||||||
|
$_LANGADM['AdminUpgrade94af5df6182efd3591d0ccccaa04bd5c'] = 'Limite de temps PHP';
|
||||||
|
$_LANGADM['AdminUpgrade075ae3d2fc31640504f814f60e5ef713'] = 'désactivée';
|
||||||
|
$_LANGADM['AdminUpgrade783e8e29e6a8c3e22baa58a19420eb4f'] = 'secondes';
|
||||||
|
$_LANGADM['AdminUpgrade342299aeb786a06533ba00d9a04794dd'] = 'Modifiez vos options';
|
||||||
|
$_LANGADM['AdminUpgrade06933067aafd48425d67bcb01bba5cb6'] = 'Mettre à jour';
|
||||||
|
$_LANGADM['AdminUpgrade5d8b77b69c92370ec4e175a638019ca7'] = 'La version actuelle de votre boutique est : %s';
|
||||||
|
$_LANGADM['AdminUpgrade80e3d093272bc011b6bc661e408c7423'] = 'La dernière version est %1$s (%2$s)';
|
||||||
|
$_LANGADM['AdminUpgradeb47ba7568788e46dbc7fe81e525db863'] = 'La dernière version de prestashop disponible est:';
|
||||||
|
$_LANGADM['AdminUpgradec97dcfb0df6daa46292a0def8a567822'] = 'Sauvegardez la base de données, les fichiers de sauvegarde et faire la mise en un clic pardi !';
|
||||||
|
$_LANGADM['AdminUpgradea60ab62ed99ef0358b2efae592be0cdd'] = 'Mettre à jour PrestaShop Maintenant !';
|
||||||
|
$_LANGADM['AdminUpgrade48c7c41b72e1d678923ce3571aa65b2d'] = 'Etape';
|
||||||
|
$_LANGADM['AdminUpgradeeeb5a49c38d2d8c2baa51ed09beccf88'] = 'Etape de mise à jour';
|
||||||
|
$_LANGADM['AdminUpgradec5d769685704e7ddcd70e74a6ebe50b7'] = 'Votre configuration actuelle n\'autorise pas la mise à jour.';
|
||||||
|
$_LANGADM['AdminUpgrade6b3930a184368a458be6e4429f409877'] = 'Mise à jour terminée. Vérifiez votre boutique (essayez de faire une commande, vérifier le thème)';
|
||||||
|
$_LANGADM['AdminUpgrade91195bbbacc2147a736c849c46368ed8'] = 'Voulez vous restaurer votre boutique';
|
||||||
|
$_LANGADM['AdminUpgradea498f9476a893d51ee02b3601678d318'] = 'Cliquez pour restaurer la base de donnée';
|
||||||
|
$_LANGADM['AdminUpgradef34d5debb2bba76aa3e077937a07e373'] = 'Cliquez pour restaurer les fichiers';
|
||||||
|
$_LANGADM['AdminUpgrade60283aa37e2063b2ada2f99216e1332a'] = 'Votre serveur ne peut pas télécharger le fichier. S\'il vous plaît le télécharger d\'abord par ftp dans votre répertoire admin/autoupgrade';
|
||||||
|
$_LANGADM['AdminUpgrade6ef7ebe46f6d16cdbf9e2169e3dd048e'] = 'Allez manuellement au bouton restaurer';
|
||||||
$_LANGADM['AdminWebservice897356954c2cd3d41b221e3f24f99bba'] = 'Clé';
|
$_LANGADM['AdminWebservice897356954c2cd3d41b221e3f24f99bba'] = 'Clé';
|
||||||
$_LANGADM['AdminWebservice00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Activé';
|
$_LANGADM['AdminWebservice00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Activé';
|
||||||
$_LANGADM['AdminWebservice52699c78843b98f98620186a59b0a3fa'] = 'Description de la clé';
|
$_LANGADM['AdminWebservice52699c78843b98f98620186a59b0a3fa'] = 'Description de la clé';
|
||||||
|
|||||||
Reference in New Issue
Block a user