diff --git a/modules/importerosc/ajax.php b/modules/importerosc/ajax.php
deleted file mode 100644
index 3e6c316d1..000000000
--- a/modules/importerosc/ajax.php
+++ /dev/null
@@ -1,17 +0,0 @@
-server = Tools::getValue('server');
-$importOsc->user = Tools::getValue('user');
-$importOsc->passwd = Tools::getValue('password');
-$importOsc->database = Tools::getValue('database');
-$importOsc->prefix = Tools::getValue('prefix');
-
-die($importOsc->createLevelAndCalculate());
\ No newline at end of file
diff --git a/modules/importerosc/config.xml b/modules/importerosc/config.xml
deleted file mode 100644
index 91f4912e7..000000000
--- a/modules/importerosc/config.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- importerosc
-
-
-
-
-
- 0
- 1
-
-
\ No newline at end of file
diff --git a/modules/importerosc/importerosc.php b/modules/importerosc/importerosc.php
deleted file mode 100644
index 25a5f1329..000000000
--- a/modules/importerosc/importerosc.php
+++ /dev/null
@@ -1,631 +0,0 @@
-
-* @copyright 2007-2013 PrestaShop SA
-* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
-* International Registered Trademark & Property of PrestaShop SA
-*/
-
-if (!defined('_PS_VERSION_'))
- exit;
-
-class importerosc extends ImportModule
-{
- public function __construct()
- {
- $this->name = 'importerosc';
- $this->tab = 'migration_tools';
- $this->version = '1.0';
- $this->author = 'PrestaShop';
- $this->theImporter = 1;
- $this->need_instance = 1;
-
- parent::__construct ();
-
- $this->displayName = $this->l('Importer osCommerce');
- $this->description = $this->l('This module allows you to import from osCommerce to Prestashop.');
- }
-
- public function install()
- {
- if (!parent::install() || !$this->registerHook('beforeAuthentication'))
- return false;
- return true;
- }
-
- public function uninstall()
- {
- if (!parent::uninstall())
- return false;
- return true;
- }
-
- public function displaySpecificOptions()
- {
- $html = '';
- if (!$this->checkCategoriesLevel())
- $html .= $this->displayCategoriesLevelConf();
-
- $langagues = $this->executeS('SELECT * FROM `'.bqSQL($this->prefix).'languages`');
- $curencies = $this->executeS('SELECT * FROM `'.bqSQL($this->prefix).'currencies`');
-
- $html .= '
-
-
-
-
-
';
- $html .= '
-
- http:///
-
'.$this->l('Specify the root URL of your site oscommerce').'
-
';
- return $html;
- }
-
-
- public function validateSpecificOptions()
- {
- $errors = array();
- if (Tools::getValue('defaultOscLang') == 0)
- $errors[] = $this->l('Please select a default language');
- if (Tools::getValue('defaultOscCurrency') == 0)
- $errors[] = $this->l('Please select a default currency');
- if (Tools::getValue('shop_url') == '')
- $errors[] = $this->l('Please set your shop url');
- if (!sizeof($errors))
- die('{"hasError" : false, "error" : []}');
- else
- die('{"hasError" : true, "error" : '.Tools::jsonEncode($errors).'}');
- }
-
-
- public function getDefaultIdLang ()
- {
- return Tools::getValue('defaultOscLang');
- }
-
- public function getDefaultIdCurrency ()
- {
- return Tools::getValue('defaultOscCurrency');
- }
-
-
- public function getLangagues($limit = 0, $nrb_import = 100)
- {
- $identifier = 'id_lang';
-
- $langagues = $this->executeS('
- SELECT languages_id as id_lang, name as name, code as iso_code, 1 as active, (\'m/j/Y\') as date_format_lite, (\'m/j/Y H:i:s\') as date_format_full
- FROM `'.bqSQL($this->prefix).'languages`
- LIMIT '.(int)$limit.' , '.(int)$nrb_import);
- return $this->autoFormat($langagues, $identifier);
- }
-
- public function getCurrencies($limit = 0, $nrb_import = 100)
- {
- $identifier = 'id_currency';
- $currencies = $this->executeS('
- SELECT currencies_id as id_currency, title as name, code as iso_code, 0 as format, 999 as iso_code_num, 1 as decimals,
- CONCAT(`symbol_left`, `symbol_right`) as sign, value as conversion_rate
- FROM `'.bqSQL($this->prefix).'currencies` LIMIT '.(int)($limit).' , '.(int)$nrb_import
- );
- return $this->autoFormat($currencies, $identifier);
- }
-
- public function getZones($limit = 0, $nrb_import = 100)
- {
- $identifier = 'id_zone';
- $zones = $this->executeS('SELECT geo_zone_id as id_zone, geo_zone_name as name, 1 as active FROM `'.bqSQL($this->prefix).'geo_zones` LIMIT '.(int)($limit).' , '.(int)$nrb_import);
- return $this->autoFormat($zones, $identifier);
- }
-
- public function getCountries($limit = 0, $nrb_import = 100)
- {
- $multiLangFields = array('name');
- $keyLanguage = 'id_lang';
- $identifier = 'id_country';
- $defaultIdLang = $this->getDefaultIdLang();
- $countries = $this->executeS('
- SELECT countries_id as id_country, countries_name as name, countries_iso_code_2 as iso_code, '.(int)$defaultIdLang.' as id_lang,
- 1 as id_zone, 0 as id_currency, 1 as contains_states, 1 as need_identification_number, 1 as active, 1 as display_tax_label
- FROM `'.bqSQL($this->prefix).'countries` as c LIMIT '.(int)($limit).' , '.(int)$nrb_import);
-
- return $this->autoFormat($countries, $identifier, $keyLanguage, $multiLangFields);
- }
-
- public function getStates($limit = 0, $nrb_import = 100)
- {
- $identifier = 'id_state';
- $states = array(
- 0 => array(
- 'id_state' => 0,
- 'id_country' => 0,
- 'id_zone' => 0,
- 'iso_code' => 999,
- 'name' => 'osc',
- 'active' => 0
- )
- );
- return $this->autoFormat($states, $identifier);
- }
-
- public function getGroups()
- {
- $idLang = $this->getDefaultIdLang();
- return array( 1 => array(
- 'id_group' => 1,
- 'price_display_method' => 0,
- 'name' => array($idLang => $this->l('Default osCommerce Group'))
- )
- );
- }
-
- public function getCustomers($limit = 0, $nrb_import = 100)
- {
- $genderMatch = array('m' => 1,'f' => 2);
- $identifier = 'id_customer';
- $customers = $this->executeS('
- SELECT c.`customers_id` as id_customer, 1 as id_default_group, c.`customers_gender` as id_gender, c.`customers_firstname` as firstname,
- IFNULL( STRCMP(c.`customers_newsletter`, \'\') , 0 ) as newsletter, c.`customers_lastname` as lastname,
- DATE(c.`customers_dob`) as birthday, c.`customers_email_address` as email, c.`customers_password` as passwd, 1 as active,
- ci.`customers_info_date_account_created` as date_add
- FROM `'.bqSQL($this->prefix).'customers` c
- LEFT JOIN `'.bqSQL($this->prefix).'customers_info` ci ON (c.`customers_id` = ci.`customers_info_id`)
- LIMIT '.(int)($limit).' , '.(int)$nrb_import
- );
-
- foreach($customers AS &$customer)
- if (isset($customer['id_gender']) && array_key_exists($customer['id_gender'], $genderMatch))
- $customer['id_gender'] = $genderMatch[$customer['id_gender']];
- else
- $customer['id_gender'] = 0;
-
- return $this->autoFormat($customers, $identifier);
- }
-
- public function getAddresses($limit = 0, $nrb_import = 100)
- {
- $identifier = 'id_address';
- $addresses = $this->executeS('
- SELECT address_book_id as id_address, customers_id as id_customer, CONCAT(customers_id, \'_address\') as alias, entry_company as company, entry_firstname as firstname,
- entry_lastname as lastname, entry_street_address as address1, entry_postcode as postcode, entry_city as city, entry_country_id as id_country, 0 as id_state
- FROM `'.bqSQL($this->prefix).'address_book` LIMIT '.(int)($limit).' , '.(int)$nrb_import);
- return $this->autoFormat($addresses, $identifier);
- }
-
- public function getCategories($limit = 0, $nrb_import = 100)
- {
- $multiLangFields = array('name', 'link_rewrite');
- $keyLanguage = 'id_lang';
- $identifier = 'id_category';
- $categories = $this->executeS('
- SELECT c.categories_id as id_category, c.parent_id as id_parent, level as level_depth, cd.language_id as id_lang, cd.categories_name as name , 1 as active, categories_image as images, c.date_added as date_add
- FROM `'.bqSQL($this->prefix).'categories` c
- LEFT JOIN `'.bqSQL($this->prefix).'categories_description` cd ON (c.categories_id = cd.categories_id)
- WHERE cd.categories_name IS NOT NULL AND cd.language_id IS NOT NULL
- ORDER BY c.level ASC , c.`categories_id`
- LIMIT '.(int)($limit).' , '.(int)$nrb_import);
- foreach($categories as& $cat)
- {
- $cat['link_rewrite'] = Tools::link_rewrite($cat['name']);
- $cat['images'] = array(Tools::getProtocol().Tools::getValue('shop_url').'/images/'.$cat['images']);
- }
-
- return $this->autoFormat($categories, $identifier, $keyLanguage, $multiLangFields);
- }
-
- public function getAttributesGroups($limit = 0, $nrb_import = 100)
- {
- $multiLangFields = array('name', 'public_name');
- $keyLanguage = 'id_lang';
- $identifier = 'id_attribute_group';
- $countries = $this->executeS('
- SELECT products_options_id as id_attribute_group, products_options_name as name , products_options_name as public_name, language_id as id_lang, 0 as is_color_group
- FROM `'.bqSQL($this->prefix).'products_options`
- LIMIT '.(int)($limit).' , '.(int)$nrb_import);
- return $this->autoFormat($countries, $identifier, $keyLanguage, $multiLangFields);
- }
-
- public function getAttributes($limit = 0, $nrb_import = 100)
- {
- $multiLangFields = array('name');
- $keyLanguage = 'id_lang';
- $identifier = 'id_attribute';
- $countries = $this->executeS('
- SELECT p.`products_options_values_id` as id_attribute, p.`products_options_values_name` as name, p.`language_id` as id_lang , po.`products_options_id` as id_attribute_group
- FROM `'.bqSQL($this->prefix).'products_options_values` p
- LEFT JOIN `'.bqSQL($this->prefix).'products_options_values_to_products_options` po ON (po.products_options_values_id = p.products_options_values_id)
- ORDER BY p.`products_options_values_id`
- LIMIT '.(int)($limit).' , '.(int)$nrb_import);
- return $this->autoFormat($countries, $identifier, $keyLanguage, $multiLangFields);
- }
-
- public function getProducts($limit = 0, $nrb_import = 100)
- {
- $multiLangFields = array('name', 'link_rewrite', 'description');
- $keyLanguage = 'id_lang';
- $identifier = 'id_product';
- $products = $this->executeS('
- SELECT p.`products_id` as id_product, p.`products_quantity` as quantity, p.`products_model` as reference, p.`products_price` as price, p.`products_weight` as weight,
- IFNULL(STRCMP(p.`products_status`, \'\') , 0 ) as active, p.`manufacturers_id` as id_manufacturer, pd.language_id as id_lang, pd.products_name as name,
- pd.products_description as description, CONCAT(\''.pSQL(Tools::getProtocol()).pSQL(Tools::getValue('shop_url')).'\/images/\',p.`products_image`) as images,
- (SELECT ptc.categories_id FROM `'.bqSQL($this->prefix).'products_to_categories` ptc WHERE ptc.`products_id` = p.`products_id` LIMIT 1) as id_category_default,
- p.`products_date_added` as date_add
- FROM `'.bqSQL($this->prefix).'products` p
- LEFT JOIN `'.bqSQL($this->prefix).'products_description` pd ON (p.products_id = pd.products_id)
- WHERE pd.products_name IS NOT NULL AND pd.language_id IS NOT NULL
- ORDER BY p.`products_id`
- LIMIT '.(int)($limit).' , '.(int)$nrb_import);
-
- $this->execute('CREATE TABLE IF NOT EXISTS`products_images` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `products_id` int(11) NOT NULL,
- `image` varchar(64) DEFAULT NULL,
- `htmlcontent` text,
- `sort_order` int(11) NOT NULL,
- PRIMARY KEY (`id`),
- KEY `products_images_prodid` (`products_id`)
- )');
- foreach($products as& $product)
- {
- $result = $this->executeS('SELECT `image` FROM `'.bqSQL($this->prefix).'products_images` WHERE products_id = '.(int)$product['id_product']);
- $images = array();
- foreach($result as $res)
- $images[] = Tools::getProtocol().Tools::getValue('shop_url').'/images/'.$res['image'];
- $product['images'] = array_merge(array($product['images']), $images);
- $product['link_rewrite'] = Tools::link_rewrite($product['name']);
-
-
- $result = $this->executeS('SELECT `categories_id` FROM `'.bqSQL($this->prefix).'products_to_categories` WHERE products_id = '.(int)$product['id_product']);
- $category_product = array('category_product' => array($product['id_category_default'] => $product['id_product']));
- foreach($result as $res)
- $category_product['category_product'][$res['categories_id']] = $product['id_product'];
- $product['association'] = $category_product;
- }
- return $this->autoFormat($products, $identifier, $keyLanguage, $multiLangFields);
- }
-
- public function getProductsCombination($limit = 0, $nrb_import = 100)
- {
- $identifier = 'id_product_attribute';
- $combinations = $this->executeS('
- SELECT products_attributes_id as id_product_attribute, products_id as id_product, options_values_price as price, options_values_id
- FROM `'.bqSQL($this->prefix).'products_attributes` LIMIT '.(int)($limit).' , '.(int)$nrb_import);
- foreach($combinations as& $combination)
- {
- $combination['association'] = array('product_attribute_combination' => array($combination['options_values_id'] => $combination['id_product_attribute']));
- unset($combination['options_values_id']);
- }
- return $this->autoFormat($combinations, $identifier);
- }
-
- public function getManufacturers($limit = 0, $nrb_import = 100)
- {
- $identifier = 'id_manufacturer';
- $manufacturers = $this->executeS('
- SELECT manufacturers_id as id_manufacturer, manufacturers_name as name, 1 as active, manufacturers_image as images
- FROM `'.bqSQL($this->prefix).'manufacturers` LIMIT '.(int)($limit).' , '.(int)$nrb_import);
- foreach($manufacturers as& $manufacturer)
- $manufacturer['images'] = array(Tools::getProtocol().Tools::getValue('shop_url').'/images/'.$manufacturer['images']);
-
- return $this->autoFormat($manufacturers, $identifier);
- }
-
- public function getOrdersStates($limit = 0, $nrb_import = 100)
- {
- $multiLangFields = array('name');
- $keyLanguage = 'id_lang';
- $identifier = 'id_order_state';
- $ordersStates = $this->executeS('
- SELECT `orders_status_id` as id_order_state, `language_id` as id_lang, `orders_status_name` as name , 1 as hidden
- FROM `'.bqSQL($this->prefix).'orders_status`
- LIMIT '.(int)($limit).' , '.(int)$nrb_import);//IF(`public_flag` = 0, 1, 0) as hidden
- return $this->autoFormat($ordersStates, $identifier, $keyLanguage, $multiLangFields);
- }
-
- public function getOrders($limit = 0, $nrb_import = 100)
- {
- $orders = array();
- $addresses = $this->executeS('SELECT customers_id as id_customer, address_book_id as id_address FROM `'.bqSQL($this->prefix).'address_book` GROUP BY customers_id');
- $matchAddresses = array();
- foreach($addresses as $address)
- $matchAddresses[$address['id_customer']] = $address['id_address'];
- $psCarrierDefault = (int)Configuration::get('PS_CARRIER_DEFAULT');
- $psCurrency = Currency::getCurrencies();
-
- foreach($psCurrency as $key => $currency)
- {
- $psCurrency[$currency['iso_code']] = $currency['id_currency'];
- unset($psCurrency[$key]);
- }
-
- $orders = $this->executeS('
- SELECT orders_id as id_cart, '.$psCarrierDefault.' as id_carrier, 1 as id_lang, currency as id_currency, customers_id as id_customer, payment_method as payment, 1 as valid,
- date_purchased as date_add, last_modified as date_upd
- FROM `'.bqSQL($this->prefix).'orders` LIMIT '.(int)($limit).' , '.(int)$nrb_import);
- foreach($orders as $key => $order)
- {
- $orders[$key]['id_currency'] = (array_key_exists($order['id_currency'], $psCurrency) ? $psCurrency[$order['id_currency']] : 0);
- $orders[$key]['id_address_delivery'] = (array_key_exists($order['id_customer'], $matchAddresses) ? $matchAddresses[$order['id_customer']] : 0);
- $orders[$key]['id_address_invoice'] = (array_key_exists($order['id_customer'], $matchAddresses) ? $matchAddresses[$order['id_customer']] : 0);
- $orders[$key]['total_paid'] = $this->getValue('SELECT value FROM `'.bqSQL($this->prefix).'orders_total` WHERE `orders_id` = '.(int)$order['id_cart'].' AND class=\'ot_total\'');
- $orders[$key]['total_paid_real'] = $this->getValue('SELECT value FROM `'.bqSQL($this->prefix).'orders_total` WHERE `orders_id` = '.(int)$order['id_cart'].' AND class=\'ot_total\'');
- $orders[$key]['total_products'] = $this->getValue('SELECT value FROM `'.bqSQL($this->prefix).'orders_total` WHERE `orders_id` = '.(int)$order['id_cart'].' AND class=\'ot_shipping\'');
- $tax = $this->getValue('SELECT value FROM `'.bqSQL($this->prefix).'orders_total` WHERE `orders_id` = '.(int)$order['id_cart'].' AND class=\'ot_tax\'');
- $orders[$key]['total_products_wt'] = $this->getValue('SELECT value FROM `'.bqSQL($this->prefix).'orders_total` WHERE `orders_id` = '.(int)$order['id_cart'].' AND class=\'ot_total\'') - $tax;
- $orders[$key]['total_shipping'] = $this->getValue('SELECT value FROM `'.bqSQL($this->prefix).'orders_total` WHERE `orders_id` = '.(int)$order['id_cart'].' AND class=\'ot_shipping\'');
- $orders[$key]['total_discounts'] = 0;
- $orders[$key]['total_wrapping'] = 0;
- $orders[$key]['cart_products'] = $this->executeS('
- SELECT `orders_id` as id_cart, `products_id` as id_product, 0 as id_product_attribute, `products_quantity` as quantity
- FROM `'.bqSQL($this->prefix).'orders_products` WHERE `orders_id` = '.(int)$order['id_cart']);
- $orders[$key]['order_products'] = $this->executeS('
- SELECT `orders_id` as id_order, `products_id` as product_id, 0 as product_attribute_id, `products_name` as product_name, `products_quantity` as product_quantity,
- `final_price` as product_price, 0 as product_weight
- FROM `'.bqSQL($this->prefix).'orders_products` WHERE `orders_id` = '.(int)$order['id_cart']);
- $orders[$key]['order_history'] = $this->executeS('
- SELECT `orders_status_history_id` as id_order_history, 0 as id_employee, `orders_id` as id_order, `orders_status_id` as id_order_state, `date_added` as date_add
- FROM `'.bqSQL($this->prefix).'orders_status_history` WHERE `orders_id` = '.(int)$order['id_cart']);
-
- }
- return $orders;
- }
-
- private function autoFormat($items, $identifier, $keyLanguage = NULL, $multiLangFields = array())
- {
- $array = array();
- foreach ($items AS $item)
- if (sizeof($multiLangFields) && is_array($multiLangFields) && isset($array[$item[$identifier]][$multiLangFields[0]]))
- foreach ($multiLangFields AS $key)
- $array[$item[$identifier]][$key][$item[$keyLanguage]] = $item[$key];
- else
- foreach ($item AS $key => $value)
- if (sizeof($multiLangFields) AND in_array($key, $multiLangFields))
- $array[$item[$identifier]][$key] = array($item[$keyLanguage] => $value);
- elseif (sizeof($multiLangFields) AND $key == $keyLanguage)
- continue;
- else
- $array[$item[$identifier]][$key] = $value;
- return $array;
- }
-
- public function hookbeforeAuthentication($params)
- {
- $passwd = trim(Tools::getValue('passwd'));
- $email = trim(Tools::getValue('email'));
- $result = Db::getInstance()->GetRow('
- SELECT *
- FROM `'._DB_PREFIX_ .'customer`
- WHERE `active` = 1 AND `email` = \''.pSQL($email).'\'');
- if ($result && !empty($result['passwd_'.$this->name]))
- {
- if($this->checkPwd($passwd, $result['passwd_'.pSQL($this->name)]))
- {
- $ps_passwd = md5(pSQL(_COOKIE_KEY_.$passwd));
- Db::getInstance()->execute('
- UPDATE `'._DB_PREFIX_.'customer`
- SET `passwd` = \''.pSQL($ps_passwd).'\', `passwd_'.bqSQL($this->name).'` = \'\'
- WHERE `'._DB_PREFIX_.'customer`.`id_customer` ='.(int)$result['id_customer'].' LIMIT 1');
- }
- }
-
- }
-
- private function checkPwd($passwd, $encrypt_pwd)
- {
- //checks the type of encryption password
- if (preg_match('/^[A-Z0-9]{32}\:[A-Z0-9]{2}$/i', $encrypt_pwd) === 1)
- {
- //salt
- $stack = explode(':', $encrypt_pwd);
- if (sizeof($stack) != 2)
- return false;
-
- if (md5($stack[1] . $passwd) == $stack[0])
- return true;
- else
- return false;
- }
- else
- {
- //phpass
- if (file_exists(dirname(__FILE__).'/passwordhash.php'))
- {
- include(dirname(__FILE__).'/passwordhash.php');
- $hasher = new PasswordHash(10, true);
- return $hasher->CheckPassword($passwd, $encrypt_pwd);
- }
- else
- return false;
- }
-
- }
-
- public function displayConfigConnector()
- {
- $content = '
-
-
-
-
'.$this->l('(eg : mysql.mydomain.com)').'
-
-
-
-
-
-
-
-
-
'.$this->l('(password can be empty)').'
-
-
-
-
-
-
-
-
-
'.$this->l('(The prefix is optional. If all of your database tables start with "pref_", your prefix is "pref_")').'
-
';
- return $content;
-}
-
- public function checkCategoriesLevel()
- {
- $columns = $this->executeS('SHOW COLUMNS FROM `'.bqSQL($this->prefix).'categories` ');
- foreach($columns as $field)
- if ($field['Field'] == 'level')
- return true;
- return false;
-}
-
- public function displayCategoriesLevelConf()
- {
- $html = '
-
- '.$this->l('You are trying to import categories and we\'ve detected, that your oscommerce database don\'t have the field "level" in the table categorie. You must have this field to continue the import of categories.');
-
- $html .= '
-
'.$this->l('Level field\'s has been created and calculated, You can continue').'
';
-
- $html .= '
- ';
-
- return $html;
- }
-
- public function createLevelAndCalculate()
- {
- if ($this->checkCategoriesLevel())
- die('{"hasError" : false}');
-
- if ($this->createLevel())
- $this->calculateLevel();
- else
- die('{"hasError" : true, "error" : "'.$this->l('Can not ALTER TABLE').'"}');
- }
-
- public function createLevel()
- {
- return $this->execute('ALTER TABLE `'.bqSQL($this->prefix).'categories` ADD `level` INT NOT NULL');
- }
-
- public function calculateLevel()
- {
- $this->updateLevel($this->getSubCat(0), 1);
- die('{"hasError" : false}');
- }
-
- public function updateLevel($ids_cat, $level = 1)
- {
- $this->execute('
- UPDATE `'.bqSQL($this->prefix).'categories`
- SET level = '.(int)$level.'
- WHERE categories_id IN ('.implode(',', $ids_cat).')');
- foreach($ids_cat as $id)
- if ($sub_cat = $this->getSubCat($id))
- $this->updateLevel($sub_cat, $level + 1);
-
- }
-
- public function getSubCat($id_parent)
- {
- $result = $this->executeS('SELECT `categories_id` FROM `'.bqSQL($this->prefix).'categories` WHERE `parent_id`='.(int)$id_parent);
- if (!is_array($result) OR empty($result))
- return false;
- return $this->formatCategoriesIds($result);
- }
-
- public function formatCategoriesIds($result)
- {
- $return = array();
- foreach($result as $key => $val)
- $return[] = $val['categories_id'];
- return $return;
- }
-}
-
-?>
diff --git a/modules/importerosc/index.php b/modules/importerosc/index.php
deleted file mode 100644
index 3f6561f72..000000000
--- a/modules/importerosc/index.php
+++ /dev/null
@@ -1,35 +0,0 @@
-
-* @copyright 2007-2013 PrestaShop SA
-* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
-* International Registered Trademark & Property of PrestaShop SA
-*/
-
-header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
-
-header("Cache-Control: no-store, no-cache, must-revalidate");
-header("Cache-Control: post-check=0, pre-check=0", false);
-header("Pragma: no-cache");
-
-header("Location: ../");
-exit;
\ No newline at end of file
diff --git a/modules/importerosc/logo.gif b/modules/importerosc/logo.gif
deleted file mode 100644
index cabfae43e..000000000
Binary files a/modules/importerosc/logo.gif and /dev/null differ
diff --git a/modules/importerosc/logo.png b/modules/importerosc/logo.png
deleted file mode 100644
index 20cf15b70..000000000
Binary files a/modules/importerosc/logo.png and /dev/null differ
diff --git a/modules/importerosc/passwordhash.php b/modules/importerosc/passwordhash.php
deleted file mode 100755
index 55e80ceab..000000000
--- a/modules/importerosc/passwordhash.php
+++ /dev/null
@@ -1,254 +0,0 @@
- in 2004-2006 and placed in
-# the public domain. Revised in subsequent years, still public domain.
-#
-# There's absolutely no warranty.
-#
-# The homepage URL for this framework is:
-#
-# http://www.openwall.com/phpass/
-#
-# Please be sure to update the Version line if you edit this file in any way.
-# It is suggested that you leave the main version number intact, but indicate
-# your project name (after the slash) and add your own revision information.
-#
-# Please do not change the "private" password hashing method implemented in
-# here, thereby making your hashes incompatible. However, if you must, please
-# change the hash type identifier (the "$P$") to something different.
-#
-# Obviously, since this code is in the public domain, the above are not
-# requirements (there can be none), but merely suggestions.
-#
-class PasswordHash {
- var $itoa64;
- var $iteration_count_log2;
- var $portable_hashes;
- var $random_state;
-
- function PasswordHash($iteration_count_log2, $portable_hashes)
- {
- $this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
-
- if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
- $iteration_count_log2 = 8;
- $this->iteration_count_log2 = $iteration_count_log2;
-
- $this->portable_hashes = $portable_hashes;
-
- $this->random_state = microtime();
- if (function_exists('getmypid'))
- $this->random_state .= getmypid();
- }
-
- function get_random_bytes($count)
- {
- $output = '';
- if (@is_readable('/dev/urandom') &&
- ($fh = @fopen('/dev/urandom', 'rb'))) {
- $output = fread($fh, $count);
- fclose($fh);
- }
-
- if (strlen($output) < $count) {
- $output = '';
- for ($i = 0; $i < $count; $i += 16) {
- $this->random_state =
- md5(microtime() . $this->random_state);
- $output .=
- pack('H*', md5($this->random_state));
- }
- $output = substr($output, 0, $count);
- }
-
- return $output;
- }
-
- function encode64($input, $count)
- {
- $output = '';
- $i = 0;
- do {
- $value = ord($input[$i++]);
- $output .= $this->itoa64[$value & 0x3f];
- if ($i < $count)
- $value |= ord($input[$i]) << 8;
- $output .= $this->itoa64[($value >> 6) & 0x3f];
- if ($i++ >= $count)
- break;
- if ($i < $count)
- $value |= ord($input[$i]) << 16;
- $output .= $this->itoa64[($value >> 12) & 0x3f];
- if ($i++ >= $count)
- break;
- $output .= $this->itoa64[($value >> 18) & 0x3f];
- } while ($i < $count);
-
- return $output;
- }
-
- function gensalt_private($input)
- {
- $output = '$P$';
- $output .= $this->itoa64[min($this->iteration_count_log2 +
- ((PHP_VERSION >= '5') ? 5 : 3), 30)];
- $output .= $this->encode64($input, 6);
-
- return $output;
- }
-
- function crypt_private($password, $setting)
- {
- $output = '*0';
- if (substr($setting, 0, 2) == $output)
- $output = '*1';
-
- $id = substr($setting, 0, 3);
- # We use "$P$", phpBB3 uses "$H$" for the same thing
- if ($id != '$P$' && $id != '$H$')
- return $output;
-
- $count_log2 = strpos($this->itoa64, $setting[3]);
- if ($count_log2 < 7 || $count_log2 > 30)
- return $output;
-
- $count = 1 << $count_log2;
-
- $salt = substr($setting, 4, 8);
- if (strlen($salt) != 8)
- return $output;
-
- # We're kind of forced to use MD5 here since it's the only
- # cryptographic primitive available in all versions of PHP
- # currently in use. To implement our own low-level crypto
- # in PHP would result in much worse performance and
- # consequently in lower iteration counts and hashes that are
- # quicker to crack (by non-PHP code).
- if (PHP_VERSION >= '5') {
- $hash = md5($salt . $password, TRUE);
- do {
- $hash = md5($hash . $password, TRUE);
- } while (--$count);
- } else {
- $hash = pack('H*', md5($salt . $password));
- do {
- $hash = pack('H*', md5($hash . $password));
- } while (--$count);
- }
-
- $output = substr($setting, 0, 12);
- $output .= $this->encode64($hash, 16);
-
- return $output;
- }
-
- function gensalt_extended($input)
- {
- $count_log2 = min($this->iteration_count_log2 + 8, 24);
- # This should be odd to not reveal weak DES keys, and the
- # maximum valid value is (2**24 - 1) which is odd anyway.
- $count = (1 << $count_log2) - 1;
-
- $output = '_';
- $output .= $this->itoa64[$count & 0x3f];
- $output .= $this->itoa64[($count >> 6) & 0x3f];
- $output .= $this->itoa64[($count >> 12) & 0x3f];
- $output .= $this->itoa64[($count >> 18) & 0x3f];
-
- $output .= $this->encode64($input, 3);
-
- return $output;
- }
-
- function gensalt_blowfish($input)
- {
- # This one needs to use a different order of characters and a
- # different encoding scheme from the one in encode64() above.
- # We care because the last character in our encoded string will
- # only represent 2 bits. While two known implementations of
- # bcrypt will happily accept and correct a salt string which
- # has the 4 unused bits set to non-zero, we do not want to take
- # chances and we also do not want to waste an additional byte
- # of entropy.
- $itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
-
- $output = '$2a$';
- $output .= chr(ord('0') + $this->iteration_count_log2 / 10);
- $output .= chr(ord('0') + $this->iteration_count_log2 % 10);
- $output .= '$';
-
- $i = 0;
- do {
- $c1 = ord($input[$i++]);
- $output .= $itoa64[$c1 >> 2];
- $c1 = ($c1 & 0x03) << 4;
- if ($i >= 16) {
- $output .= $itoa64[$c1];
- break;
- }
-
- $c2 = ord($input[$i++]);
- $c1 |= $c2 >> 4;
- $output .= $itoa64[$c1];
- $c1 = ($c2 & 0x0f) << 2;
-
- $c2 = ord($input[$i++]);
- $c1 |= $c2 >> 6;
- $output .= $itoa64[$c1];
- $output .= $itoa64[$c2 & 0x3f];
- } while (1);
-
- return $output;
- }
-
- function HashPassword($password)
- {
- $random = '';
-
- if (CRYPT_BLOWFISH == 1 && !$this->portable_hashes) {
- $random = $this->get_random_bytes(16);
- $hash =
- crypt($password, $this->gensalt_blowfish($random));
- if (strlen($hash) == 60)
- return $hash;
- }
-
- if (CRYPT_EXT_DES == 1 && !$this->portable_hashes) {
- if (strlen($random) < 3)
- $random = $this->get_random_bytes(3);
- $hash =
- crypt($password, $this->gensalt_extended($random));
- if (strlen($hash) == 20)
- return $hash;
- }
-
- if (strlen($random) < 6)
- $random = $this->get_random_bytes(6);
- $hash =
- $this->crypt_private($password,
- $this->gensalt_private($random));
- if (strlen($hash) == 34)
- return $hash;
-
- # Returning '*' on error is safe here, but would _not_ be safe
- # in a crypt(3)-like function used _both_ for generating new
- # hashes and for validating passwords against existing hashes.
- return '*';
- }
-
- function CheckPassword($password, $stored_hash)
- {
- $hash = $this->crypt_private($password, $stored_hash);
- if ($hash[0] == '*')
- $hash = crypt($password, $stored_hash);
-
- return $hash == $stored_hash;
- }
-}
-
-?>
diff --git a/modules/importerosc/translations/index.php b/modules/importerosc/translations/index.php
deleted file mode 100644
index 3f6561f72..000000000
--- a/modules/importerosc/translations/index.php
+++ /dev/null
@@ -1,35 +0,0 @@
-
-* @copyright 2007-2013 PrestaShop SA
-* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
-* International Registered Trademark & Property of PrestaShop SA
-*/
-
-header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
-
-header("Cache-Control: no-store, no-cache, must-revalidate");
-header("Cache-Control: post-check=0, pre-check=0", false);
-header("Pragma: no-cache");
-
-header("Location: ../");
-exit;
\ No newline at end of file
diff --git a/modules/shopimporter/ajax.php b/modules/shopimporter/ajax.php
deleted file mode 100644
index ad972cb56..000000000
--- a/modules/shopimporter/ajax.php
+++ /dev/null
@@ -1,214 +0,0 @@
-supportedImports as $key => $import)
- if (array_key_exists('alterTable', $import))
- $columns = Db::getInstance()->executeS('SHOW COLUMNS FROM `'._DB_PREFIX_.bqSQL($import['table']).'`');
- foreach ($columns as $column)
- if ($column['Field'] == $import['identifier'].'_'.$moduleName)
- Db::getInstance()->execute('ALTER IGNORE TABLE `'._DB_PREFIX_.bqSQL($import['table']).'` DROP `'.bqSQL($import['identifier'].'_'.$moduleName).'`');
- if ($link = @mysql_connect(Tools::getValue('server'), Tools::getValue('user'), Tools::getValue('password')))
- {
- if (!@mysql_select_db(Tools::getValue('database'), $link))
- die('{"hasError" : true, "error" : ["'.$shop_importer->l('The database selection cannot be made.', 'ajax').'"]}');
- else
- {
- @mysql_close($link);
- die('{"hasError" : false, "error" : []}');
- }
- }
- else
- die('{"hasError" : true, "error" : ["'.$shop_importer->l('Link to database cannot be established.', 'ajax').'"]}');
-
-}
-
-if (Tools::isSubmit('getData') || Tools::isSubmit('syncLang') || Tools::isSubmit('syncCurrency'))
-{
- if (Tools::isSubmit('syncLang'))
- $save = true;
-
- if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
- {
- require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
- $importModule = new $moduleName();
- $importModule->server = $server;
- $importModule->user = $user;
- $importModule->passwd = $password;
- $importModule->database = $database;
- $importModule->prefix = $prefix;
- if (!method_exists($importModule, $getMethod))
- die('{"hasError" : true, "error" : ["not_exist"], "datas" : []}');
- else
- {
- $return = call_user_func_array(array($importModule, $getMethod), array($limit, $nbr_import));
- $shop_importer = new shopImporter();
- $shop_importer->genericImport($className, $return, (bool)$save);
- }
- }
-}
-if (Tools::isSubmit('getDataWS') || Tools::isSubmit('syncLangWS') || Tools::isSubmit('syncCurrencyWS'))
-{
- if (Tools::isSubmit('syncLangWS'))
- $save = true;
-
- if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
- {
- require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
-
- try
- {
- $importModule = new $moduleName();
- $importModule->connect($url,$loginws,$apikey);
-
- if (!method_exists($importModule, $getMethod))
- die('{"hasError" : true, "error" : ["not_exist"], "datas" : []}');
- else
- {
- $return = call_user_func_array(array($importModule, $getMethod), array($limit, $nbr_import));
- $shop_importer = new shopImporter();
- $shop_importer->genericImport($className, $return, (bool)$save);
- }
- die('{"hasError" : false, "error" : []}');
- } catch (Exception $e)
- {
- die('{"hasError" : true, "error" : ['.json_encode($e->getMessage()).'], "datas" : []}');
- }
- }
-}
-
-if (Tools::isSubmit('truncatTable'))
-{
- $shop_importer = new shopImporter();
- if ($shop_importer->truncateTable($className))
- die('{"hasError" : false, "error" : []}');
- else
- die('{"hasError" : true, "error" : ["'.$className.'"]}');
-
-}
-
-if (Tools::isSubmit('alterTable'))
-{
- $shop_importer = new shopImporter();
- if ($shop_importer->alterTable($className))
- die('{"hasError" : false, "error" : []}');
- else
- die('{"hasError" : true, "error" : ["'.$className.'"]}');
-
-}
-
-if (Tools::isSubmit('displaySpecificOptions'))
-{
- if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
- {
- $shop_importer = new shopImporter();
- require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
- $importModule = new $moduleName();
- $importModule->server = $server;
- $importModule->user = $user;
- $importModule->passwd = $password;
- $importModule->database = $database;
- $importModule->prefix = $prefix;
- if ($link = @mysql_connect(Tools::getValue('server'), Tools::getValue('user'), Tools::getValue('password')))
- {
- if(!@mysql_select_db(Tools::getValue('database'), $link))
- die($shop_importer->l('The database selection cannot be made.', 'ajax'));
- elseif (method_exists($importModule, 'displaySpecificOptions'))
- die($importModule->displaySpecificOptions());
- else
- die('not_exist');
- }
- else
- die($shop_importer->l('Link to database cannot be established.', 'ajax'));
- }
-}
-elseif (Tools::isSubmit('displaySpecificOptionsWsdl'))
-{
- if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
- {
- require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
- $importModule = new $moduleName();
-
- try
- {
- if (method_exists($importModule, 'displaySpecificOptions'))
- die($importModule->displaySpecificOptions());
- else
- die('not_exist');
- } catch (Exception $e)
- {
- die('{"hasError" : true, "error" : ['.json_encode($e->getMessage()).'], "datas" : []}');
- }
- }
-}
-if (Tools::isSubmit('connexionWs'))
-{
- if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
- {
- require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
- try
- {
-
- $importModule = new $moduleName();
- $importModule->connect($url,$loginws,$apikey);
- die('{"hasError" : false, "error" : []}');
- } catch (Exception $e)
- {
- die('{"hasError" : true, "error" : ['.json_encode($e->getMessage()).'], "datas" : []}');
- }
- }
-}
-
-if (Tools::isSubmit('validateSpecificOptions'))
-{
- if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
- {
- require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
- $importModule = new $moduleName();
- if (!method_exists($importModule, 'validateSpecificOptions'))
- die('{"hasError" : true, "error" : ["not_exist"]}');
- else
- die($importModule->validateSpecificOptions());
- }
-}
-if (Tools::isSubmit('displayConfigConnector'))
-{
- if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
- {
- require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
- $importModule = new $moduleName();
- if (!method_exists($importModule, 'displayConfigConnector'))
- die('{"hasError" : true, "error" : ["not_exist"]}');
- else
- die($importModule->displayConfigConnector());
- }
-}
-?>
\ No newline at end of file
diff --git a/modules/shopimporter/config.xml b/modules/shopimporter/config.xml
deleted file mode 100644
index ba6f59e5f..000000000
--- a/modules/shopimporter/config.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- shopimporter
-
-
-
-
-
- 1
- 0
-
-
\ No newline at end of file
diff --git a/modules/shopimporter/img/ajax-loader.gif b/modules/shopimporter/img/ajax-loader.gif
deleted file mode 100644
index 3dba96d65..000000000
Binary files a/modules/shopimporter/img/ajax-loader.gif and /dev/null differ
diff --git a/modules/shopimporter/img/delete.gif b/modules/shopimporter/img/delete.gif
deleted file mode 100644
index 20874bb38..000000000
Binary files a/modules/shopimporter/img/delete.gif and /dev/null differ
diff --git a/modules/shopimporter/img/error.png b/modules/shopimporter/img/error.png
deleted file mode 100644
index 5d52e2f1d..000000000
Binary files a/modules/shopimporter/img/error.png and /dev/null differ
diff --git a/modules/shopimporter/img/file.png b/modules/shopimporter/img/file.png
deleted file mode 100644
index 207dc4cd8..000000000
Binary files a/modules/shopimporter/img/file.png and /dev/null differ
diff --git a/modules/shopimporter/img/force.gif b/modules/shopimporter/img/force.gif
deleted file mode 100644
index d876e5e9c..000000000
Binary files a/modules/shopimporter/img/force.gif and /dev/null differ
diff --git a/modules/shopimporter/img/index.php b/modules/shopimporter/img/index.php
deleted file mode 100644
index 3f6561f72..000000000
--- a/modules/shopimporter/img/index.php
+++ /dev/null
@@ -1,35 +0,0 @@
-
-* @copyright 2007-2013 PrestaShop SA
-* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
-* International Registered Trademark & Property of PrestaShop SA
-*/
-
-header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
-
-header("Cache-Control: no-store, no-cache, must-revalidate");
-header("Cache-Control: post-check=0, pre-check=0", false);
-header("Pragma: no-cache");
-
-header("Location: ../");
-exit;
\ No newline at end of file
diff --git a/modules/shopimporter/img/ok.png b/modules/shopimporter/img/ok.png
deleted file mode 100644
index 4207a363c..000000000
Binary files a/modules/shopimporter/img/ok.png and /dev/null differ
diff --git a/modules/shopimporter/img/skip.png b/modules/shopimporter/img/skip.png
deleted file mode 100644
index 636b2d6a9..000000000
Binary files a/modules/shopimporter/img/skip.png and /dev/null differ
diff --git a/modules/shopimporter/img/stop.png b/modules/shopimporter/img/stop.png
deleted file mode 100644
index fbc3cee2a..000000000
Binary files a/modules/shopimporter/img/stop.png and /dev/null differ
diff --git a/modules/shopimporter/img/warn.png b/modules/shopimporter/img/warn.png
deleted file mode 100644
index b06d10dc7..000000000
Binary files a/modules/shopimporter/img/warn.png and /dev/null differ
diff --git a/modules/shopimporter/index.php b/modules/shopimporter/index.php
deleted file mode 100644
index 3f6561f72..000000000
--- a/modules/shopimporter/index.php
+++ /dev/null
@@ -1,35 +0,0 @@
-
-* @copyright 2007-2013 PrestaShop SA
-* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
-* International Registered Trademark & Property of PrestaShop SA
-*/
-
-header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
-
-header("Cache-Control: no-store, no-cache, must-revalidate");
-header("Cache-Control: post-check=0, pre-check=0", false);
-header("Pragma: no-cache");
-
-header("Location: ../");
-exit;
\ No newline at end of file
diff --git a/modules/shopimporter/logo.gif b/modules/shopimporter/logo.gif
deleted file mode 100644
index 263b1e430..000000000
Binary files a/modules/shopimporter/logo.gif and /dev/null differ
diff --git a/modules/shopimporter/logo.png b/modules/shopimporter/logo.png
deleted file mode 100755
index 8241eb598..000000000
Binary files a/modules/shopimporter/logo.png and /dev/null differ
diff --git a/modules/shopimporter/shopimporter.js b/modules/shopimporter/shopimporter.js
deleted file mode 100644
index 4fc79c6f9..000000000
--- a/modules/shopimporter/shopimporter.js
+++ /dev/null
@@ -1,910 +0,0 @@
-var shopImporter = {
- token: globalAjaxShopImporterToken,
- moduleName: $('#import_module_name').val(),
- server: $('#server').val(),
- user: $('#user').val(),
- password: $('#password').val(),
- database: $('#database').val(),
- prefix: $('#prefix').val(),
- url: $('#url').val(),
- loginws: $('#loginws').val(),
- apikey: $('#apikey').val(),
- specificOptions : '',
- imagesOptions : '',
- output : 1,
- hasErrors : 0,
- limit: 0,
- nbr_import: parseInt($('#nbr_import').val()),
- idMethod: 0,
- nbrMethod: 0,
- save : 0,
- srcError : '../modules/shopimporter/img/error.png',
- srcConf : '../modules/shopimporter/img/ok.png',
- srcImport : '../modules/shopimporter/img/ajax-loader.gif',
- srcWarn : '../modules/shopimporter/img/warn.png',
- srcDelete : '../modules/shopimporter/img/delete.gif',
-
-
- syncLangWS : function (onComplete)
- {
- $.ajax({
- type: 'GET',
- url: '../modules/shopimporter/ajax.php',
- async: false,
- cache: false,
- dataType : "json",
- data: 'ajax=true&syncLangWS&getMethod=getLangagues&token='+this.token+'&className=Language&moduleName='+this.moduleName+'&url='+this.url+'&loginws='+this.loginws+'&apikey='+this.apikey+'&nbr_import='+this.nbr_import ,
- success: function(jsonData)
- {
- if (jsonData.hasError)
- {
- $('#steps').html('