// Merge -> revision 8984
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@8988 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
@@ -39,4 +39,3 @@ if (!isset($_REQUEST['controller']) && isset($_REQUEST['tab']))
|
|||||||
|
|
||||||
Dispatcher::getInstance()->setControllerDirectories(array(_PS_ADMIN_DIR_.'/tabs/', _PS_ADMIN_CONTROLLER_DIR_));
|
Dispatcher::getInstance()->setControllerDirectories(array(_PS_ADMIN_DIR_.'/tabs/', _PS_ADMIN_CONTROLLER_DIR_));
|
||||||
Dispatcher::getInstance()->dispatch();
|
Dispatcher::getInstance()->dispatch();
|
||||||
|
|
||||||
|
|||||||
@@ -1376,6 +1376,18 @@ class AdminImport extends AdminTab
|
|||||||
};
|
};
|
||||||
</script>';
|
</script>';
|
||||||
echo '
|
echo '
|
||||||
|
<fieldset style="float:right;margin:0 10px 10px 0">
|
||||||
|
<legend><img src="../img/admin/excel_file.png">'.$this->l('Sample files').'</legend>
|
||||||
|
<ul style="">
|
||||||
|
<li style="text-decoration: underline"><a href="../docs/csv_import/categories_import.csv">'.$this->l('Categories sample file').'</a></li>
|
||||||
|
<li style="text-decoration: underline"><a href="../docs/csv_import/products_import.csv">'.$this->l('Products sample file').'</a></li>
|
||||||
|
<li style="text-decoration: underline"><a href="../docs/csv_import/combinations_import.csv">'.$this->l('Combinations sample file').'</a></li>
|
||||||
|
<li style="text-decoration: underline"><a href="../docs/csv_import/customers_import.csv">'.$this->l('Customers sample file').'</a></li>
|
||||||
|
<li style="text-decoration: underline"><a href="../docs/csv_import/addresses_import.csv">'.$this->l('Addresses sample file').'</a></li>
|
||||||
|
<li style="text-decoration: underline"><a href="../docs/csv_import/manufacturers_import.csv">'.$this->l('Manufacturers sample file').'</a></li>
|
||||||
|
<li style="text-decoration: underline"><a href="../docs/csv_import/suppliers_import.csv">'.$this->l('Suppliers sample file').'</a></li>
|
||||||
|
</ul>
|
||||||
|
</fieldset>
|
||||||
<fieldset class="width3">
|
<fieldset class="width3">
|
||||||
<legend><img src="../img/admin/import.gif" />'.$this->l('Upload').'</legend>
|
<legend><img src="../img/admin/import.gif" />'.$this->l('Upload').'</legend>
|
||||||
<form action="'.self::$currentIndex.'&token='.$this->token.'" method="POST" enctype="multipart/form-data">
|
<form action="'.self::$currentIndex.'&token='.$this->token.'" method="POST" enctype="multipart/form-data">
|
||||||
@@ -1456,12 +1468,11 @@ class AdminImport extends AdminTab
|
|||||||
<div class="space margin-form">
|
<div class="space margin-form">
|
||||||
<input type="submit" name="submitImportFile" value="'.$this->l('Next step').'" class="button"/>
|
<input type="submit" name="submitImportFile" value="'.$this->l('Next step').'" class="button"/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="warn">
|
||||||
'.$this->l('Note that the category import does not support categories of the same name').'.
|
<p>'.$this->l('Note that the category import does not support categories of the same name').'.</p>
|
||||||
|
|
||||||
|
<p>'.$this->l('Note that references are not specified as UNIQUE in the database').'.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
'.$this->l('Note that references are not specified as UNIQUE in the database').'.
|
|
||||||
</div>
|
|
||||||
';
|
';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -40,44 +40,83 @@ class AdminModules extends AdminTab
|
|||||||
private $listTabModules;
|
private $listTabModules;
|
||||||
private $listPartnerModules = array();
|
private $listPartnerModules = array();
|
||||||
private $listNativeModules = array();
|
private $listNativeModules = array();
|
||||||
private $_moduleCacheFile;
|
private $_moduleCacheFile = '/config/modules_list.xml';
|
||||||
|
public static $xml_modules_list = 'http://www.prestashop.com/xml/modules_list.xml';
|
||||||
static private $MAX_DISP_AUTHOR = 20; // maximum length to display
|
static private $MAX_DISP_AUTHOR = 20; // maximum length to display
|
||||||
|
|
||||||
|
|
||||||
function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
$this->_moduleCacheFile = _PS_ROOT_DIR_.'/config/modules_list.xml';
|
$this->listTabModules['administration'] = $this->l('Administration');
|
||||||
|
$this->listTabModules['advertising_marketing'] = $this->l('Advertising & Marketing');
|
||||||
|
$this->listTabModules['analytics_stats'] = $this->l('Analytics & Stats');
|
||||||
|
$this->listTabModules['billing_invoicing'] = $this->l('Billing & Invoicing');
|
||||||
|
$this->listTabModules['checkout'] = $this->l('Checkout');
|
||||||
|
$this->listTabModules['content_management'] = $this->l('Content Management');
|
||||||
|
$this->listTabModules['export'] = $this->l('Export');
|
||||||
|
$this->listTabModules['front_office_features'] = $this->l('Front Office Features');
|
||||||
|
$this->listTabModules['i18n_localization'] = $this->l('I18n & Localization');
|
||||||
|
$this->listTabModules['merchandizing'] = $this->l('Merchandizing');
|
||||||
|
$this->listTabModules['migration_tools'] = $this->l('Migration Tools');
|
||||||
|
$this->listTabModules['payments_gateways'] = $this->l('Payments & Gateways');
|
||||||
|
$this->listTabModules['payment_security'] = $this->l('Payment Security');
|
||||||
|
$this->listTabModules['pricing_promotion'] = $this->l('Pricing & Promotion');
|
||||||
|
$this->listTabModules['quick_bulk_update'] = $this->l('Quick / Bulk update');
|
||||||
|
$this->listTabModules['search_filter'] = $this->l('Search & Filter');
|
||||||
|
$this->listTabModules['seo'] = $this->l('SEO');
|
||||||
|
$this->listTabModules['shipping_logistics'] = $this->l('Shipping & Logistics');
|
||||||
|
$this->listTabModules['slideshows'] = $this->l('Slideshows');
|
||||||
|
$this->listTabModules['smart_shopping'] = $this->l('Smart Shopping');
|
||||||
|
$this->listTabModules['market_place'] = $this->l('Market Place');
|
||||||
|
$this->listTabModules['social_networks'] = $this->l('Social Networks');
|
||||||
|
$this->listTabModules['others'] = $this->l('Other Modules');
|
||||||
|
|
||||||
// refresh modules_list.xml every week
|
if (file_exists(_PS_ROOT_DIR_.$this->_moduleCacheFile))
|
||||||
|
$xmlModules = @simplexml_load_file(_PS_ROOT_DIR_.$this->_moduleCacheFile);
|
||||||
|
else
|
||||||
|
$xmlModules = false;
|
||||||
|
|
||||||
|
if ($xmlModules)
|
||||||
|
{
|
||||||
|
foreach($xmlModules->children() as $xmlModule)
|
||||||
|
{
|
||||||
|
if ($xmlModule->attributes() == 'native')
|
||||||
|
foreach($xmlModule->children() as $module)
|
||||||
|
foreach($module->attributes() as $key => $value)
|
||||||
|
if ($key == 'name')
|
||||||
|
$this->listNativeModules[] = (string)$value;
|
||||||
|
|
||||||
|
if ($xmlModule->attributes() == 'partner')
|
||||||
|
foreach ($xmlModule->children() as $module)
|
||||||
|
foreach ($module->attributes() as $key => $value)
|
||||||
|
if ($key == 'name')
|
||||||
|
$this->listPartnerModules[] = (string)$value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** if modules_list.xml is outdated,
|
||||||
|
* this function will re-upload it from prestashop.com
|
||||||
|
*
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function ajaxProcessRefreshModuleList()
|
||||||
|
{
|
||||||
|
//refresh modules_list.xml every week
|
||||||
if (!$this->isFresh())
|
if (!$this->isFresh())
|
||||||
|
{
|
||||||
$this->refresh();
|
$this->refresh();
|
||||||
|
$this->status = 'refresh';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$this->status = 'cache';
|
||||||
|
}
|
||||||
|
|
||||||
$this->listTabModules = array(
|
public function displayAjaxRefreshModuleList()
|
||||||
'administration' => $this->l('Administration'), 'advertising_marketing' => $this->l('Advertising & Marketing'),
|
{
|
||||||
'analytics_stats' => $this->l('Analytics & Stats'), 'billing_invoicing' => $this->l('Billing & Invoicing'), 'checkout' => $this->l('Checkout'),
|
echo Tools::jsonEncode(array('status' => $this->status));
|
||||||
'content_management' => $this->l('Content Management'), 'export' => $this->l('Export'), 'front_office_features' => $this->l('Front Office Features'),
|
|
||||||
'i18n_localization' => $this->l('I18n & Localization'), 'merchandizing' => $this->l('Merchandizing'), 'migration_tools' => $this->l('Migration Tools'),
|
|
||||||
'payments_gateways' => $this->l('Payments & Gateways'), 'payment_security' => $this->l('Payment Security'), 'pricing_promotion' => $this->l('Pricing & Promotion'),
|
|
||||||
'quick_bulk_update' => $this->l('Quick / Bulk update'), 'search_filter' => $this->l('Search & Filter'), 'seo' => $this->l('SEO'), 'shipping_logistics' => $this->l('Shipping & Logistics'),
|
|
||||||
'slideshows' => $this->l('Slideshows'), 'smart_shopping' => $this->l('Smart Shopping'), 'market_place' => $this->l('Market Place'), 'social_networks' => $this->l('Social Networks'),
|
|
||||||
'others'=> $this->l('Other Modules')
|
|
||||||
);
|
|
||||||
|
|
||||||
$xmlModules = @simplexml_load_file($this->_moduleCacheFile);
|
|
||||||
|
|
||||||
foreach($xmlModules->children() as $xmlModule)
|
|
||||||
if ($xmlModule->attributes() == 'native')
|
|
||||||
foreach($xmlModule->children() as $module)
|
|
||||||
foreach($module->attributes() as $key => $value)
|
|
||||||
if ($key == 'name')
|
|
||||||
$this->listNativeModules[] = (string)$value;
|
|
||||||
if ($xmlModule->attributes() == 'partner')
|
|
||||||
foreach($xmlModule->children() as $module)
|
|
||||||
foreach($module->attributes() as $key => $value)
|
|
||||||
if ($key == 'name')
|
|
||||||
$this->listPartnerModules[] = (string)$value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function postProcess()
|
public function postProcess()
|
||||||
@@ -443,10 +482,38 @@ class AdminModules extends AdminTab
|
|||||||
$(\'input[name="filtername"]\').result(function(event, data, formatted) {
|
$(\'input[name="filtername"]\').result(function(event, data, formatted) {
|
||||||
$(\'#filternameForm\').submit();
|
$(\'#filternameForm\').submit();
|
||||||
});
|
});
|
||||||
});
|
});';
|
||||||
|
|
||||||
|
// the following to get modules_list.xml from prestashop.com
|
||||||
|
echo '$(document).ready(function(){
|
||||||
|
try
|
||||||
|
{
|
||||||
|
resAjax = $.ajax({
|
||||||
|
type:"POST",
|
||||||
|
url : "'. str_replace('index','ajax-tab',$currentIndex) . '",
|
||||||
|
async: true,
|
||||||
|
data : {
|
||||||
|
ajaxMode : "1",
|
||||||
|
ajax : "1",
|
||||||
|
token : "'.$this->token.'",
|
||||||
|
tab : "AdminModules",
|
||||||
|
action : "refreshModuleList"
|
||||||
|
},
|
||||||
|
success : function(res,textStatus,jqXHR)
|
||||||
|
{
|
||||||
|
// res.status = cache or refresh
|
||||||
|
},
|
||||||
|
error: function(res,textStatus,jqXHR)
|
||||||
|
{
|
||||||
|
alert("TECHNICAL ERROR"+res);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(e){}
|
||||||
|
});
|
||||||
</script>';
|
</script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function sortModule($a, $b)
|
public static function sortModule($a, $b)
|
||||||
{
|
{
|
||||||
if (sizeof($a) == sizeof($b)) {
|
if (sizeof($a) == sizeof($b)) {
|
||||||
@@ -666,7 +733,6 @@ class AdminModules extends AdminTab
|
|||||||
'.$this->l('Add a module from my computer').'
|
'.$this->l('Add a module from my computer').'
|
||||||
</span>
|
</span>
|
||||||
| ';
|
| ';
|
||||||
if (@fsockopen('www.prestashop.com', 80))
|
|
||||||
echo '<a href="index.php?tab=AdminAddonsMyAccount&token='.Tools::getAdminTokenLite('AdminAddonsMyAccount').'">
|
echo '<a href="index.php?tab=AdminAddonsMyAccount&token='.Tools::getAdminTokenLite('AdminAddonsMyAccount').'">
|
||||||
<img src="https://addons.prestashop.com/modules.php?'.(isset($_SERVER['SERVER_ADDR']) ? 'server='.ip2long($_SERVER['SERVER_ADDR']).'&' : '').'mods='.$serialModules.'" alt="Add" class="middle" />
|
<img src="https://addons.prestashop.com/modules.php?'.(isset($_SERVER['SERVER_ADDR']) ? 'server='.ip2long($_SERVER['SERVER_ADDR']).'&' : '').'mods='.$serialModules.'" alt="Add" class="middle" />
|
||||||
'.$this->l('Add a module from PrestaShop Addons').'
|
'.$this->l('Add a module from PrestaShop Addons').'
|
||||||
@@ -968,15 +1034,15 @@ class AdminModules extends AdminTab
|
|||||||
|
|
||||||
public function isFresh($timeout = 604800000)
|
public function isFresh($timeout = 604800000)
|
||||||
{
|
{
|
||||||
if (file_exists($this->_moduleCacheFile))
|
if (file_exists(_PS_ROOT_DIR_ . $this->_moduleCacheFile))
|
||||||
return ((time() - filemtime($this->_moduleCacheFile)) < $timeout);
|
return ((time() - filemtime(_PS_ROOT_DIR_ . $this->_moduleCacheFile)) < $timeout);
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function refresh()
|
public function refresh()
|
||||||
{
|
{
|
||||||
return file_put_contents($this->_moduleCacheFile, Tools::file_get_contents('http://www.prestashop.com/xml/modules_list.xml'));
|
return file_put_contents(_PS_ROOT_DIR_.$this->_moduleCacheFile, Tools::file_get_contents($this->xml_modules_list));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function displaySelectedFilter()
|
public function displaySelectedFilter()
|
||||||
|
|||||||
@@ -62,10 +62,6 @@ abstract class CacheCore
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function __destruct()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function isBlacklist($query)
|
protected function isBlacklist($query)
|
||||||
{
|
{
|
||||||
foreach ($this->_blackList AS $find)
|
foreach ($this->_blackList AS $find)
|
||||||
|
|||||||
@@ -271,6 +271,8 @@ class LocalizationPackCore
|
|||||||
$this->_errors[] = Tools::displayError('An error occurred while importing the currency: ').strval($attributes['name']);
|
$this->_errors[] = Tools::displayError('An error occurred while importing the currency: ').strval($attributes['name']);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PaymentModule::addCurrencyPermissions($currency->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -538,5 +538,57 @@ abstract class PaymentModuleCore extends Module
|
|||||||
return false;
|
return false;
|
||||||
return (new Currency($id_currency));
|
return (new Currency($id_currency));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows specified payment modules to be used by a specific currency
|
||||||
|
*
|
||||||
|
* @since 1.4.5
|
||||||
|
* @param int $id_currency
|
||||||
|
* @param array $id_module_list
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public static function addCurrencyPermissions($id_currency, array $id_module_list = array())
|
||||||
|
{
|
||||||
|
$values = '';
|
||||||
|
if (count($id_module_list) == 0)
|
||||||
|
{
|
||||||
|
// fetch all installed module ids
|
||||||
|
$modules = PaymentModuleCore::getInstalledPaymentModules();
|
||||||
|
foreach ($modules as $module)
|
||||||
|
$id_module_list[] = $module['id_module'];
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($id_module_list as $id_module)
|
||||||
|
$values .= '('.(int)$id_module.','.(int)$id_currency.'),';
|
||||||
|
|
||||||
|
if (!empty($values))
|
||||||
|
{
|
||||||
|
return Db::getInstance()->Execute('
|
||||||
|
INSERT INTO `'._DB_PREFIX_.'module_currency` (`id_module`, `id_currency`)
|
||||||
|
VALUES '.rtrim($values, ',')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List all installed and active payment modules
|
||||||
|
* @see Module::getPaymentModules() if you need a list of module related to the user context
|
||||||
|
*
|
||||||
|
* @since 1.4.5
|
||||||
|
* @return array module informations
|
||||||
|
*/
|
||||||
|
public static function getInstalledPaymentModules()
|
||||||
|
{
|
||||||
|
return Db::getInstance()->executeS('
|
||||||
|
SELECT DISTINCT m.`id_module`, h.`id_hook`, m.`name`, hm.`position`
|
||||||
|
FROM `'._DB_PREFIX_.'module` m
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'hook_module` hm ON hm.`id_module` = m.`id_module`
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'hook` h ON hm.`id_hook` = h.`id_hook`
|
||||||
|
WHERE h.`name` = \'payment\'
|
||||||
|
AND m.`active` = 1
|
||||||
|
');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -2656,7 +2656,11 @@ class ProductCore extends ObjectModel
|
|||||||
|
|
||||||
public static function duplicateDownload($id_product_old, $id_product_new)
|
public static function duplicateDownload($id_product_old, $id_product_new)
|
||||||
{
|
{
|
||||||
$resource = Db::getInstance()->ExecuteS('SELECT `display_filename`, `filename`, `date_add`, `date_expiration`, `nb_days_accessible`, `nb_downloadable`, `active`, `is_shareable` FROM `'._DB_PREFIX_.'product_download` WHERE `id_product` = '.(int)($id_product_old));
|
$sql = 'SELECT `display_filename`, `filename`, `date_add`, `date_expiration`, `nb_days_accessible`, `nb_downloadable`, `active`, `is_shareable`
|
||||||
|
FROM `'._DB_PREFIX_.'product_download`
|
||||||
|
WHERE `id_product` = '.(int)$id_product_old;
|
||||||
|
$resource = Db::getInstance()->Execute($sql);
|
||||||
|
|
||||||
if (!Db::getInstance()->NumRows())
|
if (!Db::getInstance()->NumRows())
|
||||||
return true;
|
return true;
|
||||||
$query = 'INSERT INTO `'._DB_PREFIX_.'product_download` (`id_product`, `display_filename`, `filename`, `date_add`, `date_expiration`, `nb_days_accessible`, `nb_downloadable`, `active`, `is_shareable`) VALUES';
|
$query = 'INSERT INTO `'._DB_PREFIX_.'product_download` (`id_product`, `display_filename`, `filename`, `date_add`, `date_expiration`, `nb_days_accessible`, `nb_downloadable`, `active`, `is_shareable`) VALUES';
|
||||||
|
|||||||
@@ -133,20 +133,20 @@ class ProductDownloadCore extends ObjectModel
|
|||||||
public function getFields()
|
public function getFields()
|
||||||
{
|
{
|
||||||
$this->validateFields();
|
$this->validateFields();
|
||||||
|
$date_expiration = $this->date_expiration;
|
||||||
|
if (!$date_expiration)
|
||||||
|
$date_expiration = '0000-00-00 00:00:00';
|
||||||
|
|
||||||
if (!$this->date_expiration)
|
$fields['id_product'] = (int)$this->id_product;
|
||||||
$this->date_expiration = '0000-00-00 00:00:00';
|
|
||||||
|
|
||||||
$fields['id_product'] = (int)($this->id_product);
|
|
||||||
$fields['id_product_attribute'] = pSQL($this->id_product_attribute);
|
$fields['id_product_attribute'] = pSQL($this->id_product_attribute);
|
||||||
$fields['display_filename'] = pSQL($this->display_filename);
|
$fields['display_filename'] = pSQL($this->display_filename);
|
||||||
$fields['filename'] = pSQL($this->filename);
|
$fields['filename'] = pSQL($this->filename);
|
||||||
$fields['date_add'] = pSQL($this->date_add);
|
$fields['date_add'] = pSQL($this->date_add);
|
||||||
$fields['date_expiration'] = pSQL($this->date_expiration);
|
$fields['date_expiration'] = pSQL($date_expiration);
|
||||||
$fields['nb_days_accessible'] = (int)($this->nb_days_accessible);
|
$fields['nb_days_accessible'] = (int)$this->nb_days_accessible;
|
||||||
$fields['nb_downloadable'] = (int)($this->nb_downloadable);
|
$fields['nb_downloadable'] = (int)$this->nb_downloadable;
|
||||||
$fields['active'] = (int)($this->active);
|
$fields['active'] = (int)$this->active;
|
||||||
$fields['is_shareable'] = (int)($this->is_shareable);
|
$fields['is_shareable'] = (int)$this->is_shareable;
|
||||||
return $fields;
|
return $fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -466,11 +466,6 @@ class SearchCore
|
|||||||
// If we find words that need to be indexed, they're added to the word table in the database
|
// If we find words that need to be indexed, they're added to the word table in the database
|
||||||
if (count($pArray))
|
if (count($pArray))
|
||||||
{
|
{
|
||||||
$list = '';
|
|
||||||
foreach ($pArray AS $word => $weight)
|
|
||||||
$list .= '\''.$word.'\',';
|
|
||||||
$list = rtrim($list, ',');
|
|
||||||
|
|
||||||
$queryArray = array();
|
$queryArray = array();
|
||||||
$queryArray2 = array();
|
$queryArray2 = array();
|
||||||
foreach ($pArray AS $word => $weight)
|
foreach ($pArray AS $word => $weight)
|
||||||
|
|||||||
@@ -1912,6 +1912,46 @@ FileETag INode MTime Size
|
|||||||
$result = min($post_max_size, $upload_max_filesize);
|
$result = min($post_max_size, $upload_max_filesize);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* apacheModExists return true if the apache module $name is loaded
|
||||||
|
* @TODO move this method in class Information (when it will exist)
|
||||||
|
*
|
||||||
|
* @param string $name module name
|
||||||
|
* @return boolean true if exists
|
||||||
|
* @since 1.4.5.0
|
||||||
|
*/
|
||||||
|
public static function apacheModExists($name)
|
||||||
|
{
|
||||||
|
if (function_exists('apache_get_modules'))
|
||||||
|
{
|
||||||
|
static $apacheModuleList = null;
|
||||||
|
|
||||||
|
if (!is_array($apacheModuleList))
|
||||||
|
$apacheModuleList = apache_get_modules();
|
||||||
|
|
||||||
|
// we need strpos (example can be evasive20
|
||||||
|
foreach ($apacheModuleList as $module)
|
||||||
|
{
|
||||||
|
if (strpos($module, $name)!==false)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If apache_get_modules does not exists,
|
||||||
|
// one solution should be parsing httpd.conf,
|
||||||
|
// but we could simple parse phpinfo(INFO_MODULES) return string
|
||||||
|
ob_start();
|
||||||
|
phpinfo(INFO_MODULES);
|
||||||
|
$phpinfo = ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
if (strpos($phpinfo, $module) !== false)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -52,6 +52,10 @@ class TaxCore extends ObjectModel
|
|||||||
protected static $_product_country_tax = array();
|
protected static $_product_country_tax = array();
|
||||||
protected static $_product_tax_via_rules = array();
|
protected static $_product_tax_via_rules = array();
|
||||||
|
|
||||||
|
protected $webserviceParameters = array(
|
||||||
|
'objectsNodeName' => 'taxes',
|
||||||
|
);
|
||||||
|
|
||||||
public function getFields()
|
public function getFields()
|
||||||
{
|
{
|
||||||
$this->validateFields();
|
$this->validateFields();
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ class WebserviceOutputBuilderCore
|
|||||||
|
|
||||||
if (!is_null($key))
|
if (!is_null($key))
|
||||||
{
|
{
|
||||||
if (!is_null($key) && Validate::isCleanHtml($key))
|
if (!Validate::isCleanHtml($key))
|
||||||
throw new WebserviceException('the key you write is a corrupted text.', array(95, 500));
|
throw new WebserviceException('the key you write is a corrupted text.', array(95, 500));
|
||||||
if (!array_key_exists($key, $this->headerParams))
|
if (!array_key_exists($key, $this->headerParams))
|
||||||
throw new WebserviceException(sprintf('The key %s does\'nt exist', $key), array(96, 500));
|
throw new WebserviceException(sprintf('The key %s does\'nt exist', $key), array(96, 500));
|
||||||
@@ -489,9 +489,10 @@ class WebserviceOutputBuilderCore
|
|||||||
$field['synopsis_details'] = $this->getSynopsisDetails($field);
|
$field['synopsis_details'] = $this->getSynopsisDetails($field);
|
||||||
if ($field_name === 'id')
|
if ($field_name === 'id')
|
||||||
$show_field = false;
|
$show_field = false;
|
||||||
elseif (isset($field['setter']) && !$field['setter'])
|
|
||||||
$show_field = false;
|
|
||||||
}
|
}
|
||||||
|
else if ($this->schemaToDisplay === 'blank')
|
||||||
|
if (isset($field['setter']) && !$field['setter'])
|
||||||
|
$show_field = false;
|
||||||
|
|
||||||
// don't set any value for a schema
|
// don't set any value for a schema
|
||||||
if (isset($field['synopsis_details']) || $this->schemaToDisplay === 'blank')
|
if (isset($field['synopsis_details']) || $this->schemaToDisplay === 'blank')
|
||||||
|
|||||||
@@ -262,6 +262,7 @@ class WebserviceRequestCore
|
|||||||
'stock_movement_reasons' => array('description' => 'The stock movement reason', 'class' => 'StockMvtReason'),
|
'stock_movement_reasons' => array('description' => 'The stock movement reason', 'class' => 'StockMvtReason'),
|
||||||
'shops' => array('description' => 'Shops from multi-shop feature', 'class' => 'Shop'),
|
'shops' => array('description' => 'Shops from multi-shop feature', 'class' => 'Shop'),
|
||||||
'shop_groups' => array('description' => 'Shop groups from multi-shop feature', 'class' => 'GroupShop'),
|
'shop_groups' => array('description' => 'Shop groups from multi-shop feature', 'class' => 'GroupShop'),
|
||||||
|
'taxes' => array('description' => 'The tax rate', 'class' => 'Tax'),
|
||||||
);
|
);
|
||||||
ksort($resources);
|
ksort($resources);
|
||||||
return $resources;
|
return $resources;
|
||||||
|
|||||||
Executable
+1
@@ -0,0 +1 @@
|
|||||||
|
Allow from ALL
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
ID;Alias*;Active (0/1);Customer e-mail;Manufacturer;Supplier;Company;Lastname*;Firstname*;Address 1*;Address 2;Postcode* / Zipcode*;City*;Country*;State;Other;Phone;Mobile Phone;VAT number
|
||||||
|
1;My Adress;1;johndoe@prestashop.com;;;;Doe;John;16, Main street;2nd floor;75000;PARIS ;France;;;140138844;;
|
||||||
|
2;My work;1;johndoe@prestashop.com;;;My Company;Doe;John;535, Baker street;;13000;Marseile;France;;;235445588;;
|
||||||
|
3;My work;0;;Apple Computer, Inc;;;Jobs;Steve;1 Infinite Loop;;95014;CUPERTINO;United States;California;;(800) 275-2273;;
|
||||||
|
@@ -0,0 +1,4 @@
|
|||||||
|
ID;Active (0/1);Name*;Parent Category;Description;Meta-title;Meta-keywords;Meta-description;URL rewritten;Image URL
|
||||||
|
2;1;iPods;Home;Now that you can buy movies from the iTunes Store and sync them to your iPod, the whole world is your theater.;;;;music-ipods;http://youlinktotheimage.com/img1000.jpg
|
||||||
|
3;1;Accessories;Home;Wonderful accessories for your iPod;;;;accessories-ipod;http://youlinktotheimage.com/img1001.jpg
|
||||||
|
4;1;Laptops;Home;The latest Intel processor, a bigger hard drive, plenty of memory, and even more new features all fit inside just one liberating inch. The new Mac laptops have the performance, power, and connectivity of a desktop computer. Without the desk part.;Apple laptops;Apple laptops MacBook Air;Powerful and chic Apple laptops;laptops;http://youlinktotheimage.com/img1002.jpg
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
Product ID*;Options (Group:Value)*;Reference;Supplier reference;EAN13;UPC;Wholesale price;Price;Ecotax;Quantity;Weight;Default
|
||||||
|
1;"Color:Blue, Disk Space:16GO;";958456;254644;;;;41;;50;;
|
||||||
|
1;"Color:pINK, Disk Space:8GO;";958456;254644;;;;;;;;
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
ID;Active (0/1);Gender ID (Mr=1, Ms=2, else 9);E-mail*;Password*;Birthday;Lastname*;Firstname*;Newletter (0/1);Opt-in (0/1)
|
||||||
|
1;1;1;johndoe@prestashop.com;#res152EDRF;sous quelle forme ? ;Doe;John;1;1
|
||||||
|
2;1;2;mariedoe@prestashop.com;58@ret26#;sous quelle forme ? ;Doe;Marie;0;1
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
ID;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description
|
||||||
|
1;1;Apple Computer, Inc;;;;;
|
||||||
|
2;1;Shure Incorporated;;;;;
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
ID;Active (0/1);Name*;Categories (x,y,z,...);Price tax excl. Or Price tax excl;Tax rules id;Wholesale price;On sale (0/1);Discount amount;Discount percent;Discount from (yyy-mm-dd);Discount to (yyy-mm-dd);Reference #;Supplier reference #;Supplier;Manufacturer;EAN13;UPC;Ecotax;Weight;Quantity;Short description;Description;Tags (x,y,z,...);Meta-title;Meta-keywords;Meta-description;URL rewritten;Text when in-stock;Text if back-order allowed;Image URLs (x,y,z,...);Feature;Only available online
|
||||||
|
1;1;iPod Nano;Home, iPods;49;1;;1;;;;;92458844;54778855;AppleStore;Apple Computer, Inc;;;;0.5;800;New design. New features. Now i….;Curved ahead of the curve. For those about to rock, we give you nine amazing colors. But that's only part of the story. Feel the curved, all-aluminum and glass de...;apple, ipod, nano;;;;ipod-nano;In stock;;http://youdomain.com/img.jpg, http://yourdomain.com/img1.jpg;;
|
||||||
|
2;1;iPod shuffle;Home, iPods;66.05;1;79;1;;;;;92458845;54778855;AppleStore;Apple Computer, Inc;;;;0;500;iPod shuffle, the world’s most wearabl….;;ipod, shuffle;;;;ipod-shuffle;In stock;;http://youdomain.com/img25.jpg, http://yourdomain.com/img30.jpg;;
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
ID;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description
|
||||||
|
1;1;Applestore;;;;;
|
||||||
|
2;1;Shure Online Store;;;;;
|
||||||
|
@@ -730,7 +730,7 @@ if ($lm->getIncludeTradFilename())
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="benefitsBlock">
|
<div id="benefitsBlock" style="display: none;">
|
||||||
<!-- Partner Modules -->
|
<!-- Partner Modules -->
|
||||||
<?php
|
<?php
|
||||||
if (!isset($_GET['language']))
|
if (!isset($_GET['language']))
|
||||||
|
|||||||
@@ -1315,7 +1315,6 @@ State:name
|
|||||||
Country:name
|
Country:name
|
||||||
phone' where `id_country`=10;
|
phone' where `id_country`=10;
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO `PREFIX_gender` (`id_gender`, `type`) VALUES
|
INSERT INTO `PREFIX_gender` (`id_gender`, `type`) VALUES
|
||||||
(1, 0),
|
(1, 0),
|
||||||
(2, 1),
|
(2, 1),
|
||||||
@@ -1337,3 +1336,11 @@ INSERT INTO `PREFIX_gender_lang` (`id_gender`, `id_lang`, `name`) VALUES
|
|||||||
(3, 3, 'Miss'),
|
(3, 3, 'Miss'),
|
||||||
(3, 4, 'Miss'),
|
(3, 4, 'Miss'),
|
||||||
(3, 5, 'Miss');
|
(3, 5, 'Miss');
|
||||||
|
|
||||||
|
UPDATE `PREFIX_address_format` set `format` = 'firstname lastname
|
||||||
|
company
|
||||||
|
address1
|
||||||
|
address2
|
||||||
|
city State:name postcode
|
||||||
|
Country:name
|
||||||
|
phone' WHERE `PREFIX_address_format`.`id_country` =4;
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<localizationPack name="Canada" version="1.0">
|
<localizationPack name="Canada" version="1.0">
|
||||||
<currencies>
|
<currencies>
|
||||||
<currency name="Dollar" iso_code="CAD" iso_code_num="124" sign="$" blank="0" conversion_rate="1.40054" format="1" decimals="1" />
|
<currency name="Dollar (CAD)" iso_code="CAD" iso_code_num="124" sign="CAD$" blank="0" conversion_rate="1.40054" format="1" decimals="1" />
|
||||||
</currencies>
|
</currencies>
|
||||||
<languages>
|
<languages>
|
||||||
<language iso_code="fr" />
|
<language iso_code="fr" />
|
||||||
|
|||||||
@@ -1427,46 +1427,9 @@ $this->standalone = true;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->apacheModExists('evasive'))
|
if (Tools::apacheModExists('evasive'))
|
||||||
sleep(1);
|
sleep(1);
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* apacheModExists return true if the apache module $name is loaded
|
|
||||||
* @TODO move this method in class Information (when it will exist)
|
|
||||||
*
|
|
||||||
* @param string $name module name
|
|
||||||
* @return boolean true if exists
|
|
||||||
*/
|
|
||||||
function apacheModExists($name)
|
|
||||||
{
|
|
||||||
if(function_exists('apache_get_modules'))
|
|
||||||
{
|
|
||||||
static $apacheModuleList = null;
|
|
||||||
|
|
||||||
if (!is_array($apacheModuleList))
|
|
||||||
$apacheModuleList = apache_get_modules();
|
|
||||||
|
|
||||||
// we need strpos (example can be evasive20
|
|
||||||
foreach($apacheModuleList as $module)
|
|
||||||
{
|
|
||||||
if (strpos($module, $name)!==false)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
// If apache_get_modules does not exists,
|
|
||||||
// one solution should be parsing httpd.conf,
|
|
||||||
// but we could simple parse phpinfo(INFO_MODULES) return string
|
|
||||||
ob_start();
|
|
||||||
phpinfo(INFO_MODULES);
|
|
||||||
$phpinfo = ob_get_contents();
|
|
||||||
ob_end_clean();
|
|
||||||
if (strpos($phpinfo, $module) !== false)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function _getJsErrorMsgs()
|
private function _getJsErrorMsgs()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -87,6 +87,7 @@ function initSliders()
|
|||||||
function initLayered()
|
function initLayered()
|
||||||
{
|
{
|
||||||
initSliders();
|
initSliders();
|
||||||
|
initLocationChange();
|
||||||
if (window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '')
|
if (window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '')
|
||||||
{
|
{
|
||||||
var params = window.location.href.split('#')[1];
|
var params = window.location.href.split('#')[1];
|
||||||
@@ -312,3 +313,31 @@ function reloadContent(params_plus)
|
|||||||
});
|
});
|
||||||
ajaxQueries.push(ajaxQuery);
|
ajaxQueries.push(ajaxQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function initLocationChange(func, time) {
|
||||||
|
if(!time) time = 500;
|
||||||
|
var currLoc = '';
|
||||||
|
setInterval(function()
|
||||||
|
{
|
||||||
|
if(window.location.href != currLoc)
|
||||||
|
{
|
||||||
|
currLoc = window.location.href;
|
||||||
|
|
||||||
|
// Don't reload page if current_friendly_url and real url match
|
||||||
|
if (window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '')
|
||||||
|
current_url = '#'+window.location.href.split('#')[1];
|
||||||
|
else
|
||||||
|
current_url = '';
|
||||||
|
if (current_friendly_url.replace(/^#(\/)?/, '') == current_url.replace(/^#(\/)?/, ''))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '')
|
||||||
|
{
|
||||||
|
var params = window.location.href.split('#')[1];
|
||||||
|
reloadContent('&selected_filters='+params);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
reloadContent('&selected_filters=#');
|
||||||
|
}
|
||||||
|
}, time);
|
||||||
|
}
|
||||||
|
|||||||
@@ -484,7 +484,7 @@ class BlockLayered extends Module
|
|||||||
$id_lang = (int)$language['id_lang'];
|
$id_lang = (int)$language['id_lang'];
|
||||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_lang
|
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_lang
|
||||||
VALUES ('.(int)$params['id_feature'].', '.$id_lang.', \''.Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang)).'\',
|
VALUES ('.(int)$params['id_feature'].', '.$id_lang.', \''.Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang)).'\',
|
||||||
\''.pSQL(htmlspecialchars(Tools::getValue('meta_title_'.$id_lang))).'\')');
|
\''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -500,7 +500,7 @@ class BlockLayered extends Module
|
|||||||
$id_lang = (int)$language['id_lang'];
|
$id_lang = (int)$language['id_lang'];
|
||||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_value_lang
|
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_value_lang
|
||||||
VALUES ('.(int)$params['id_feature_value'].', '.$id_lang.', \''.Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang)).'\',
|
VALUES ('.(int)$params['id_feature_value'].', '.$id_lang.', \''.Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang)).'\',
|
||||||
\''.pSQL(htmlspecialchars(Tools::getValue('meta_title_'.$id_lang))).'\')');
|
\''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -537,7 +537,7 @@ class BlockLayered extends Module
|
|||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
$return .= '
|
$return .= '
|
||||||
<div id="url_name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
<div id="url_name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
||||||
<input size="33" type="text" name="url_name_'.$language['id_lang'].'" value="'.htmlspecialchars(@$langValue[$language['id_lang']]['url_name']).'" />
|
<input size="33" type="text" name="url_name_'.$language['id_lang'].'" value="'.Tools::safeOutput(@$langValue[$language['id_lang']]['url_name'], true).'" />
|
||||||
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}_<span class="hint-pointer"> </span></span>
|
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}_<span class="hint-pointer"> </span></span>
|
||||||
<p style="clear: both">'.$this->l('Specific format in url block layered generation').'</p>
|
<p style="clear: both">'.$this->l('Specific format in url block layered generation').'</p>
|
||||||
</div>';
|
</div>';
|
||||||
@@ -550,7 +550,7 @@ class BlockLayered extends Module
|
|||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
$return .= '
|
$return .= '
|
||||||
<div id="meta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
<div id="meta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
||||||
<input size="33" type="text" name="meta_title_'.$language['id_lang'].'" value="'.htmlspecialchars(@$langValue[$language['id_lang']]['meta_title']).'" />
|
<input size="33" type="text" name="meta_title_'.$language['id_lang'].'" value="'.Tools::safeOutput(@$langValue[$language['id_lang']]['meta_title'], true).'" />
|
||||||
<p style="clear: both">'.$this->l('Specific format for meta title').'</p>
|
<p style="clear: both">'.$this->l('Specific format for meta title').'</p>
|
||||||
</div>';
|
</div>';
|
||||||
$return .= $this->displayFlags($languages, $default_form_language, 'flag_fields', 'meta_title', true, true);
|
$return .= $this->displayFlags($languages, $default_form_language, 'flag_fields', 'meta_title', true, true);
|
||||||
@@ -572,7 +572,7 @@ class BlockLayered extends Module
|
|||||||
$id_lang = (int)$language['id_lang'];
|
$id_lang = (int)$language['id_lang'];
|
||||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_lang
|
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_lang
|
||||||
VALUES ('.(int)$params['id_attribute'].', '.$id_lang.', \''.Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang)).'\',
|
VALUES ('.(int)$params['id_attribute'].', '.$id_lang.', \''.Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang)).'\',
|
||||||
\''.pSQL(htmlspecialchars(Tools::getValue('meta_title_'.$id_lang))).'\')');
|
\''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -609,7 +609,7 @@ class BlockLayered extends Module
|
|||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
$return .= '
|
$return .= '
|
||||||
<div id="url_name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
<div id="url_name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
||||||
<input size="33" type="text" name="url_name_'.$language['id_lang'].'" value="'.htmlspecialchars(@$langValue[$language['id_lang']]['url_name']).'" />
|
<input size="33" type="text" name="url_name_'.$language['id_lang'].'" value="'.Tools::safeOutput(@$langValue[$language['id_lang']]['url_name'], true).'" />
|
||||||
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}_<span class="hint-pointer"> </span></span>
|
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}_<span class="hint-pointer"> </span></span>
|
||||||
<p style="clear: both">'.$this->l('Specific format in url block layered generation').'</p>
|
<p style="clear: both">'.$this->l('Specific format in url block layered generation').'</p>
|
||||||
</div>';
|
</div>';
|
||||||
@@ -622,7 +622,7 @@ class BlockLayered extends Module
|
|||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
$return .= '
|
$return .= '
|
||||||
<div id="meta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
<div id="meta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
||||||
<input size="33" type="text" name="meta_title_'.$language['id_lang'].'" value="'.htmlspecialchars(@$langValue[$language['id_lang']]['meta_title']).'" />
|
<input size="33" type="text" name="meta_title_'.$language['id_lang'].'" value="'.Tools::safeOutput(@$langValue[$language['id_lang']]['meta_title'], true).'" />
|
||||||
<p style="clear: both">'.$this->l('Specific format for meta title').'</p>
|
<p style="clear: both">'.$this->l('Specific format for meta title').'</p>
|
||||||
</div>';
|
</div>';
|
||||||
$return .= $this->displayFlags($languages, $default_form_language, 'flag_fields', 'meta_title', true, true);
|
$return .= $this->displayFlags($languages, $default_form_language, 'flag_fields', 'meta_title', true, true);
|
||||||
@@ -659,7 +659,7 @@ class BlockLayered extends Module
|
|||||||
$id_lang = (int)$language['id_lang'];
|
$id_lang = (int)$language['id_lang'];
|
||||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_group_lang
|
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_group_lang
|
||||||
VALUES ('.(int)$params['id_attribute_group'].', '.$id_lang.', \''.Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang)).'\',
|
VALUES ('.(int)$params['id_attribute_group'].', '.$id_lang.', \''.Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang)).'\',
|
||||||
\''.pSQL(htmlspecialchars(Tools::getValue('meta_title_'.$id_lang))).'\')');
|
\''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -722,7 +722,7 @@ class BlockLayered extends Module
|
|||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
$return .= '
|
$return .= '
|
||||||
<div id="url_name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
<div id="url_name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
||||||
<input size="33" type="text" name="url_name_'.$language['id_lang'].'" value="'.htmlspecialchars(@$langValue[$language['id_lang']]['url_name']).'" />
|
<input size="33" type="text" name="url_name_'.$language['id_lang'].'" value="'.Tools::safeOutput(@$langValue[$language['id_lang']]['url_name'], true).'" />
|
||||||
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}_<span class="hint-pointer"> </span></span>
|
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}_<span class="hint-pointer"> </span></span>
|
||||||
<p style="clear: both">'.$this->l('Specific format in url block layered generation').'</p>
|
<p style="clear: both">'.$this->l('Specific format in url block layered generation').'</p>
|
||||||
</div>';
|
</div>';
|
||||||
@@ -735,7 +735,7 @@ class BlockLayered extends Module
|
|||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
$return .= '
|
$return .= '
|
||||||
<div id="meta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
<div id="meta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
||||||
<input size="33" type="text" name="meta_title_'.$language['id_lang'].'" value="'.htmlspecialchars(@$langValue[$language['id_lang']]['meta_title']).'" />
|
<input size="33" type="text" name="meta_title_'.$language['id_lang'].'" value="'.Tools::safeOutput(@$langValue[$language['id_lang']]['meta_title'], true).'" />
|
||||||
<p style="clear: both">'.$this->l('Specific format for meta title').'</p>
|
<p style="clear: both">'.$this->l('Specific format for meta title').'</p>
|
||||||
</div>';
|
</div>';
|
||||||
$return .= $this->displayFlags($languages, $default_form_language, 'flag_fields', 'meta_title', true, true);
|
$return .= $this->displayFlags($languages, $default_form_language, 'flag_fields', 'meta_title', true, true);
|
||||||
@@ -782,7 +782,7 @@ class BlockLayered extends Module
|
|||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
$return .= '
|
$return .= '
|
||||||
<div id="url_name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
<div id="url_name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
||||||
<input size="33" type="text" name="url_name_'.$language['id_lang'].'" value="'.htmlspecialchars(@$langValue[$language['id_lang']]['url_name']).'" />
|
<input size="33" type="text" name="url_name_'.$language['id_lang'].'" value="'.Tools::safeOutput(@$langValue[$language['id_lang']]['url_name'], true).'" />
|
||||||
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}_<span class="hint-pointer"> </span></span>
|
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}_<span class="hint-pointer"> </span></span>
|
||||||
<p style="clear: both">'.$this->l('Specific format in url block layered generation').'</p>
|
<p style="clear: both">'.$this->l('Specific format in url block layered generation').'</p>
|
||||||
</div>';
|
</div>';
|
||||||
@@ -795,7 +795,7 @@ class BlockLayered extends Module
|
|||||||
foreach ($languages as $language)
|
foreach ($languages as $language)
|
||||||
$return .= '
|
$return .= '
|
||||||
<div id="meta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
<div id="meta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $default_form_language ? 'block' : 'none').'; float: left;">
|
||||||
<input size="33" type="text" name="meta_title_'.$language['id_lang'].'" value="'.htmlspecialchars(@$langValue[$language['id_lang']]['meta_title']).'" />
|
<input size="33" type="text" name="meta_title_'.$language['id_lang'].'" value="'.Tools::safeOutput(@$langValue[$language['id_lang']]['meta_title'], true).'" />
|
||||||
<p style="clear: both">'.$this->l('Specific format for meta title').'</p>
|
<p style="clear: both">'.$this->l('Specific format for meta title').'</p>
|
||||||
</div>';
|
</div>';
|
||||||
$return .= $this->displayFlags($languages, $default_form_language, 'flag_fields', 'meta_title', true, true);
|
$return .= $this->displayFlags($languages, $default_form_language, 'flag_fields', 'meta_title', true, true);
|
||||||
@@ -1732,7 +1732,7 @@ class BlockLayered extends Module
|
|||||||
if(Tools::getValue('selected_filters'))
|
if(Tools::getValue('selected_filters'))
|
||||||
$url = Tools::getValue('selected_filters');
|
$url = Tools::getValue('selected_filters');
|
||||||
else
|
else
|
||||||
$url = preg_replace('/\/(?:\w*)\/(?:[0-9]+[-\w]*)([^\?]*)\??.*/', '$1', Tools::htmlentitiesUTF8($_SERVER['REQUEST_URI']));
|
$url = preg_replace('/\/(?:\w*)\/(?:[0-9]+[-\w]*)([^\?]*)\??.*/', '$1', Tools::safeOutput($_SERVER['REQUEST_URI'], true));
|
||||||
|
|
||||||
$urlAttributes = explode('/',$url);
|
$urlAttributes = explode('/',$url);
|
||||||
array_shift($urlAttributes);
|
array_shift($urlAttributes);
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -6,7 +6,6 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -915,7 +915,7 @@ class Ebay extends Module
|
|||||||
// Load categories only if necessary
|
// Load categories only if necessary
|
||||||
if (Db::getInstance()->getValue('SELECT COUNT(`id_ebay_category_configuration`) FROM `'._DB_PREFIX_.'ebay_category_configuration`') > 4 && Tools::getValue('section') != 'category')
|
if (Db::getInstance()->getValue('SELECT COUNT(`id_ebay_category_configuration`) FROM `'._DB_PREFIX_.'ebay_category_configuration`') > 4 && Tools::getValue('section') != 'category')
|
||||||
return '<p align="center"><b>'.$this->l('Your categories have already been configured.').'</b></p>
|
return '<p align="center"><b>'.$this->l('Your categories have already been configured.').'</b></p>
|
||||||
<form action="index.php?tab='.$_GET['tab'].'&configure='.$_GET['configure'].'&token='.$_GET['token'].'&tab_module='.$_GET['tab_module'].'&module_name='.$_GET['module_name'].'&id_tab=2§ion=category" method="post" class="form">
|
<form action="index.php?tab='.Tools::safeOuput($_GET['tab']).'&configure='.Tools::safeOuput($_GET['configure']).'&token='.Tools::safeOuput($_GET['token']).'&tab_module='.Tools::safeOuput($_GET['tab_module']).'&module_name='.Tools::safeOuput($_GET['module_name']).'&id_tab=2§ion=category" method="post" class="form">
|
||||||
<p align="center"><input class="button" name="submitSave" type="submit" value="'.$this->l('See Categories').'" /></p></form>';
|
<p align="center"><input class="button" name="submitSave" type="submit" value="'.$this->l('See Categories').'" /></p></form>';
|
||||||
|
|
||||||
// Display eBay Categories
|
// Display eBay Categories
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -701,7 +701,7 @@ class shopimporter extends ImportModule
|
|||||||
{
|
{
|
||||||
$this->saveMatchId(strtolower($className), (int)$object->id, (int)$id);
|
$this->saveMatchId(strtolower($className), (int)$object->id, (int)$id);
|
||||||
if ($className == 'Customer')
|
if ($className == 'Customer')
|
||||||
Db::getInstance()->Execute('UPDATE '._DB_PREFIX_.'customer SET `passwd_'.bqSQL(Tools::getValue('moduleName')).'̀ = \''.pSQL($password).'\' WHERE id_customer = '.(int)$object->id);
|
Db::getInstance()->Execute('UPDATE '._DB_PREFIX_.'customer SET `passwd_'.bqSQL(Tools::getValue('moduleName')).'` = \''.pSQL($password).'\' WHERE id_customer = '.(int)$object->id);
|
||||||
if (array_key_exists('hasImage', $this->supportedImports[strtolower($className)]) AND Tools::isSubmit('images_'.$className))
|
if (array_key_exists('hasImage', $this->supportedImports[strtolower($className)]) AND Tools::isSubmit('images_'.$className))
|
||||||
$this->copyImg($item, $className);
|
$this->copyImg($item, $className);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
global $_MODULE;
|
||||||
|
$_MODULE = array();
|
||||||
Reference in New Issue
Block a user