// Merge -> revision 9124
This commit is contained in:
+4
-4
@@ -561,11 +561,11 @@ if (Tools::isSubmit('getHookableList'))
|
||||
{
|
||||
if (!strlen(Tools::getValue('hooks_list')))
|
||||
die('{"hasError" : true, "errors" : ["Live Edit : no module on this page"]}');
|
||||
|
||||
|
||||
$modules_list = explode(',', Tools::getValue('modules_list'));
|
||||
$hooks_list = explode(',', Tools::getValue('hooks_list'));
|
||||
$hookableList = array();
|
||||
|
||||
|
||||
foreach ($modules_list as $module)
|
||||
{
|
||||
$module = trim($module);
|
||||
@@ -718,7 +718,7 @@ if (Tools::isSubmit('getAdminHomeElement'))
|
||||
|
||||
if (Tools::isSubmit('getChildrenCategories') && Tools::getValue('id_category_parent'))
|
||||
{
|
||||
$children_categories = Category::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat', array()), Context::getContext()->language->id);
|
||||
$children_categories = Category::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat'), Context::getContext()->language->id);
|
||||
die(Tools::jsonEncode($children_categories));
|
||||
}
|
||||
|
||||
@@ -937,7 +937,7 @@ if (Tools::isSubmit('getParentCategoriesId') AND $id_category = Tools::getValue(
|
||||
$output = array();
|
||||
foreach($results as $result)
|
||||
$output[] = $result;
|
||||
|
||||
|
||||
die(Tools::jsonEncode($output));
|
||||
}
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ class AdminStores extends AdminTab
|
||||
$_POST[$kp] = trim($vp);
|
||||
|
||||
/* If the selected country does not contain states */
|
||||
$id_state = (int)(Tools::getValue('id_state'));
|
||||
$id_state = (int)Tools::getValue('id_state');
|
||||
if ($id_country = Tools::getValue('id_country') AND $country = new Country((int)($id_country)) AND !(int)($country->contains_states) AND $id_state)
|
||||
$this->_errors[] = Tools::displayError('You have selected a state for a country that does not contain states.');
|
||||
|
||||
@@ -115,8 +115,8 @@ class AdminStores extends AdminTab
|
||||
if ((int)($country->contains_states) AND !$id_state)
|
||||
$this->_errors[] = Tools::displayError('An address located in a country containing states must have a state selected.');
|
||||
|
||||
$latitude = (float)(Tools::getValue('latitude'));
|
||||
$longitude = (float)(Tools::getValue('longitude'));
|
||||
$latitude = (float)Tools::getValue('latitude');
|
||||
$longitude = (float)Tools::getValue('longitude');
|
||||
|
||||
if(empty($latitude) OR empty($longitude))
|
||||
$this->_errors[] = Tools::displayError('Latitude and longitude are required.');
|
||||
|
||||
Vendored
+79
-79
@@ -1,10 +1,10 @@
|
||||
<?php return array (
|
||||
'AbstractLoggerCore' => 'classes/AbstractLogger.php',
|
||||
'AbstractLogger' => 'override/classes/AbstractLogger.php',
|
||||
'AddressFormatCore' => 'classes/AddressFormat.php',
|
||||
'AddressFormat' => 'override/classes/AddressFormat.php',
|
||||
'AddressCore' => 'classes/Address.php',
|
||||
'Address' => 'override/classes/Address.php',
|
||||
'AddressFormatCore' => 'classes/AddressFormat.php',
|
||||
'AddressFormat' => 'override/classes/AddressFormat.php',
|
||||
'AdminControllerCore' => 'classes/AdminController.php',
|
||||
'AdminController' => 'override/classes/AdminController.php',
|
||||
'AdminTabCore' => 'classes/AdminTab.php',
|
||||
@@ -13,33 +13,33 @@
|
||||
'Alias' => 'override/classes/Alias.php',
|
||||
'AttachmentCore' => 'classes/Attachment.php',
|
||||
'Attachment' => 'override/classes/Attachment.php',
|
||||
'AttributeGroupCore' => 'classes/AttributeGroup.php',
|
||||
'AttributeGroup' => 'override/classes/AttributeGroup.php',
|
||||
'AttributeCore' => 'classes/Attribute.php',
|
||||
'Attribute' => 'override/classes/Attribute.php',
|
||||
'AttributeGroupCore' => 'classes/AttributeGroup.php',
|
||||
'AttributeGroup' => 'override/classes/AttributeGroup.php',
|
||||
'Autoload' => 'classes/Autoload.php',
|
||||
'BackupCore' => 'classes/Backup.php',
|
||||
'Backup' => 'override/classes/Backup.php',
|
||||
'BlowfishCore' => 'classes/Blowfish.php',
|
||||
'Blowfish' => 'override/classes/Blowfish.php',
|
||||
'CacheFSCore' => 'classes/CacheFS.php',
|
||||
'CacheFS' => 'override/classes/CacheFS.php',
|
||||
'CMSCore' => 'classes/CMS.php',
|
||||
'CMS' => 'override/classes/CMS.php',
|
||||
'CMSCategoryCore' => 'classes/CMSCategory.php',
|
||||
'CMSCategory' => 'override/classes/CMSCategory.php',
|
||||
'CacheCore' => 'classes/Cache.php',
|
||||
'Cache' => 'override/classes/Cache.php',
|
||||
'CarrierModuleCore' => 'classes/CarrierModule.php',
|
||||
'CarrierModule' => 'override/classes/CarrierModule.php',
|
||||
'CacheFSCore' => 'classes/CacheFS.php',
|
||||
'CacheFS' => 'override/classes/CacheFS.php',
|
||||
'CarrierCore' => 'classes/Carrier.php',
|
||||
'Carrier' => 'override/classes/Carrier.php',
|
||||
'CarrierModuleCore' => 'classes/CarrierModule.php',
|
||||
'CarrierModule' => 'override/classes/CarrierModule.php',
|
||||
'CartCore' => 'classes/Cart.php',
|
||||
'Cart' => 'override/classes/Cart.php',
|
||||
'CategoryCore' => 'classes/Category.php',
|
||||
'Category' => 'override/classes/Category.php',
|
||||
'ChartCore' => 'classes/Chart.php',
|
||||
'Chart' => 'override/classes/Chart.php',
|
||||
'CMSCategoryCore' => 'classes/CMSCategory.php',
|
||||
'CMSCategory' => 'override/classes/CMSCategory.php',
|
||||
'CMSCore' => 'classes/CMS.php',
|
||||
'CMS' => 'override/classes/CMS.php',
|
||||
'CombinationCore' => 'classes/Combination.php',
|
||||
'Combination' => 'override/classes/Combination.php',
|
||||
'CompareProductCore' => 'classes/CompareProduct.php',
|
||||
@@ -56,10 +56,10 @@
|
||||
'Contact' => 'override/classes/Contact.php',
|
||||
'ContextCore' => 'classes/Context.php',
|
||||
'Context' => 'override/classes/Context.php',
|
||||
'ControllerFactoryCore' => 'classes/ControllerFactory.php',
|
||||
'ControllerFactory' => 'override/classes/ControllerFactory.php',
|
||||
'ControllerCore' => 'classes/Controller.php',
|
||||
'Controller' => 'override/classes/Controller.php',
|
||||
'ControllerFactoryCore' => 'classes/ControllerFactory.php',
|
||||
'ControllerFactory' => 'override/classes/ControllerFactory.php',
|
||||
'CookieCore' => 'classes/Cookie.php',
|
||||
'Cookie' => 'override/classes/Cookie.php',
|
||||
'CountryCore' => 'classes/Country.php',
|
||||
@@ -68,26 +68,16 @@
|
||||
'County' => 'override/classes/County.php',
|
||||
'CurrencyCore' => 'classes/Currency.php',
|
||||
'Currency' => 'override/classes/Currency.php',
|
||||
'CustomerMessageCore' => 'classes/CustomerMessage.php',
|
||||
'CustomerMessage' => 'override/classes/CustomerMessage.php',
|
||||
'CustomerCore' => 'classes/Customer.php',
|
||||
'Customer' => 'override/classes/Customer.php',
|
||||
'CustomerMessageCore' => 'classes/CustomerMessage.php',
|
||||
'CustomerMessage' => 'override/classes/CustomerMessage.php',
|
||||
'CustomerThreadCore' => 'classes/CustomerThread.php',
|
||||
'CustomerThread' => 'override/classes/CustomerThread.php',
|
||||
'CustomizationCore' => 'classes/Customization.php',
|
||||
'Customization' => 'override/classes/Customization.php',
|
||||
'DateRangeCore' => 'classes/DateRange.php',
|
||||
'DateRange' => 'override/classes/DateRange.php',
|
||||
'DbMySQLiCore' => 'classes/db/DbMySQLi.php',
|
||||
'DbMySQLi' => 'override/classes/db/DbMySQLi.php',
|
||||
'DbPDOCore' => 'classes/db/DbPDO.php',
|
||||
'DbPDO' => 'override/classes/db/DbPDO.php',
|
||||
'DbCore' => 'classes/db/Db.php',
|
||||
'Db' => 'override/classes/db/Db.php',
|
||||
'DbQueryCore' => 'classes/db/DbQuery.php',
|
||||
'DbQuery' => 'override/classes/db/DbQuery.php',
|
||||
'MySQLCore' => 'classes/db/MySQL.php',
|
||||
'MySQL' => 'override/classes/db/MySQL.php',
|
||||
'DeliveryCore' => 'classes/Delivery.php',
|
||||
'Delivery' => 'override/classes/Delivery.php',
|
||||
'DiscountCore' => 'classes/Discount.php',
|
||||
@@ -96,14 +86,6 @@
|
||||
'Dispatcher' => 'override/classes/Dispatcher.php',
|
||||
'EmployeeCore' => 'classes/Employee.php',
|
||||
'Employee' => 'override/classes/Employee.php',
|
||||
'PrestashopDatabaseExceptionCore' => 'classes/exception/PrestashopDatabaseException.php',
|
||||
'PrestashopDatabaseException' => 'override/classes/exception/PrestashopDatabaseException.php',
|
||||
'PrestashopExceptionCore' => 'classes/exception/PrestashopException.php',
|
||||
'PrestashopException' => 'override/classes/exception/PrestashopException.php',
|
||||
'PrestashopModuleExceptionCore' => 'classes/exception/PrestashopModuleException.php',
|
||||
'PrestashopModuleException' => 'override/classes/exception/PrestashopModuleException.php',
|
||||
'PrestashopPaymentExceptionCore' => 'classes/exception/PrestashopPaymentException.php',
|
||||
'PrestashopPaymentException' => 'override/classes/exception/PrestashopPaymentException.php',
|
||||
'FeatureCore' => 'classes/Feature.php',
|
||||
'Feature' => 'override/classes/Feature.php',
|
||||
'FeatureValueCore' => 'classes/FeatureValue.php',
|
||||
@@ -124,10 +106,10 @@
|
||||
'Guest' => 'override/classes/Guest.php',
|
||||
'HelpAccessCore' => 'classes/HelpAccess.php',
|
||||
'HelpAccess' => 'override/classes/HelpAccess.php',
|
||||
'HelperListCore' => 'classes/HelperList.php',
|
||||
'HelperList' => '',
|
||||
'HelperCore' => 'classes/Helper.php',
|
||||
'Helper' => 'override/classes/Helper.php',
|
||||
'HelperListCore' => 'classes/HelperList.php',
|
||||
'HelperList' => '',
|
||||
'HookCore' => 'classes/Hook.php',
|
||||
'Hook' => 'override/classes/Hook.php',
|
||||
'ImageCore' => 'classes/Image.php',
|
||||
@@ -144,32 +126,34 @@
|
||||
'LocalizationPack' => 'override/classes/LocalizationPack.php',
|
||||
'LoggerCore' => 'classes/Logger.php',
|
||||
'Logger' => 'override/classes/Logger.php',
|
||||
'MCachedCore' => 'classes/MCached.php',
|
||||
'MCached' => 'override/classes/MCached.php',
|
||||
'MailCore' => 'classes/Mail.php',
|
||||
'Mail' => 'override/classes/Mail.php',
|
||||
'ManufacturerCore' => 'classes/Manufacturer.php',
|
||||
'Manufacturer' => 'override/classes/Manufacturer.php',
|
||||
'MCachedCore' => 'classes/MCached.php',
|
||||
'MCached' => 'override/classes/MCached.php',
|
||||
'MediaCore' => 'classes/Media.php',
|
||||
'Media' => '',
|
||||
'MessageCore' => 'classes/Message.php',
|
||||
'Message' => 'override/classes/Message.php',
|
||||
'MetaCore' => 'classes/Meta.php',
|
||||
'Meta' => 'override/classes/Meta.php',
|
||||
'ModuleGraphEngineCore' => 'classes/ModuleGraphEngine.php',
|
||||
'ModuleGraphEngine' => 'override/classes/ModuleGraphEngine.php',
|
||||
'ModuleGraphCore' => 'classes/ModuleGraph.php',
|
||||
'ModuleGraph' => 'override/classes/ModuleGraph.php',
|
||||
'ModuleGridEngineCore' => 'classes/ModuleGridEngine.php',
|
||||
'ModuleGridEngine' => 'override/classes/ModuleGridEngine.php',
|
||||
'ModuleGridCore' => 'classes/ModuleGrid.php',
|
||||
'ModuleGrid' => 'override/classes/ModuleGrid.php',
|
||||
'ModuleCore' => 'classes/Module.php',
|
||||
'Module' => 'override/classes/Module.php',
|
||||
'ModuleGraphCore' => 'classes/ModuleGraph.php',
|
||||
'ModuleGraph' => 'override/classes/ModuleGraph.php',
|
||||
'ModuleGraphEngineCore' => 'classes/ModuleGraphEngine.php',
|
||||
'ModuleGraphEngine' => 'override/classes/ModuleGraphEngine.php',
|
||||
'ModuleGridCore' => 'classes/ModuleGrid.php',
|
||||
'ModuleGrid' => 'override/classes/ModuleGrid.php',
|
||||
'ModuleGridEngineCore' => 'classes/ModuleGridEngine.php',
|
||||
'ModuleGridEngine' => 'override/classes/ModuleGridEngine.php',
|
||||
'NotificationCore' => 'classes/Notification.php',
|
||||
'Notification' => 'override/classes/Notification.php',
|
||||
'ObjectModelCore' => 'classes/ObjectModel.php',
|
||||
'ObjectModel' => 'override/classes/ObjectModel.php',
|
||||
'OrderCore' => 'classes/Order.php',
|
||||
'Order' => 'override/classes/Order.php',
|
||||
'OrderDetailCore' => 'classes/OrderDetail.php',
|
||||
'OrderDetail' => 'override/classes/OrderDetail.php',
|
||||
'OrderDiscountCore' => 'classes/OrderDiscount.php',
|
||||
@@ -178,8 +162,6 @@
|
||||
'OrderHistory' => 'override/classes/OrderHistory.php',
|
||||
'OrderMessageCore' => 'classes/OrderMessage.php',
|
||||
'OrderMessage' => 'override/classes/OrderMessage.php',
|
||||
'OrderCore' => 'classes/Order.php',
|
||||
'Order' => 'override/classes/Order.php',
|
||||
'OrderReturnCore' => 'classes/OrderReturn.php',
|
||||
'OrderReturn' => 'override/classes/OrderReturn.php',
|
||||
'OrderReturnStateCore' => 'classes/OrderReturnState.php',
|
||||
@@ -188,6 +170,8 @@
|
||||
'OrderSlip' => 'override/classes/OrderSlip.php',
|
||||
'OrderStateCore' => 'classes/OrderState.php',
|
||||
'OrderState' => 'override/classes/OrderState.php',
|
||||
'PDFCore' => 'classes/PDF.php',
|
||||
'PDF' => 'override/classes/PDF.php',
|
||||
'PackCore' => 'classes/Pack.php',
|
||||
'Pack' => 'override/classes/Pack.php',
|
||||
'PageCore' => 'classes/Page.php',
|
||||
@@ -196,12 +180,10 @@
|
||||
'PaymentCC' => 'override/classes/PaymentCC.php',
|
||||
'PaymentModuleCore' => 'classes/PaymentModule.php',
|
||||
'PaymentModule' => 'override/classes/PaymentModule.php',
|
||||
'PDFCore' => 'classes/PDF.php',
|
||||
'PDF' => 'override/classes/PDF.php',
|
||||
'ProductDownloadCore' => 'classes/ProductDownload.php',
|
||||
'ProductDownload' => 'override/classes/ProductDownload.php',
|
||||
'ProductCore' => 'classes/Product.php',
|
||||
'Product' => 'override/classes/Product.php',
|
||||
'ProductDownloadCore' => 'classes/ProductDownload.php',
|
||||
'ProductDownload' => 'override/classes/ProductDownload.php',
|
||||
'ProductSaleCore' => 'classes/ProductSale.php',
|
||||
'ProductSale' => 'override/classes/ProductSale.php',
|
||||
'ProfileCore' => 'classes/Profile.php',
|
||||
@@ -220,26 +202,20 @@
|
||||
'Rijndael' => 'override/classes/Rijndael.php',
|
||||
'SceneCore' => 'classes/Scene.php',
|
||||
'Scene' => 'override/classes/Scene.php',
|
||||
'SearchEngineCore' => 'classes/SearchEngine.php',
|
||||
'SearchEngine' => 'override/classes/SearchEngine.php',
|
||||
'SearchCore' => 'classes/Search.php',
|
||||
'Search' => 'override/classes/Search.php',
|
||||
'GroupShopCore' => 'classes/shop/GroupShop.php',
|
||||
'GroupShop' => 'override/classes/shop/GroupShop.php',
|
||||
'ShopCore' => 'classes/shop/Shop.php',
|
||||
'Shop' => 'override/classes/shop/Shop.php',
|
||||
'ShopUrlCore' => 'classes/shop/ShopUrl.php',
|
||||
'ShopUrl' => 'override/classes/shop/ShopUrl.php',
|
||||
'SearchEngineCore' => 'classes/SearchEngine.php',
|
||||
'SearchEngine' => 'override/classes/SearchEngine.php',
|
||||
'SpecificPriceCore' => 'classes/SpecificPrice.php',
|
||||
'SpecificPrice' => 'override/classes/SpecificPrice.php',
|
||||
'StateCore' => 'classes/State.php',
|
||||
'State' => 'override/classes/State.php',
|
||||
'StockCore' => 'classes/Stock.php',
|
||||
'Stock' => 'override/classes/Stock.php',
|
||||
'StockMvtCore' => 'classes/StockMvt.php',
|
||||
'StockMvt' => 'override/classes/StockMvt.php',
|
||||
'StockMvtReasonCore' => 'classes/StockMvtReason.php',
|
||||
'StockMvtReason' => 'override/classes/StockMvtReason.php',
|
||||
'StockCore' => 'classes/Stock.php',
|
||||
'Stock' => 'override/classes/Stock.php',
|
||||
'StoreCore' => 'classes/Store.php',
|
||||
'Store' => 'override/classes/Store.php',
|
||||
'SubDomainCore' => 'classes/SubDomain.php',
|
||||
@@ -250,21 +226,6 @@
|
||||
'Tab' => 'override/classes/Tab.php',
|
||||
'TagCore' => 'classes/Tag.php',
|
||||
'Tag' => 'override/classes/Tag.php',
|
||||
'TaxCalculatorCore' => 'classes/tax/TaxCalculator.php',
|
||||
'TaxCalculator' => 'override/classes/tax/TaxCalculator.php',
|
||||
'TaxManagerFactoryCore' => 'classes/tax/TaxManagerFactory.php',
|
||||
'TaxManagerFactory' => 'override/classes/tax/TaxManagerFactory.php',
|
||||
'TaxManagerInterface' => 'classes/tax/TaxManagerInterface.php',
|
||||
'TaxManagerModuleCore' => 'classes/tax/TaxManagerModule.php',
|
||||
'TaxManagerModule' => 'override/classes/tax/TaxManagerModule.php',
|
||||
'TaxCore' => 'classes/tax/Tax.php',
|
||||
'Tax' => 'override/classes/tax/Tax.php',
|
||||
'TaxRuleCore' => 'classes/tax/TaxRule.php',
|
||||
'TaxRule' => 'override/classes/tax/TaxRule.php',
|
||||
'TaxRulesGroupCore' => 'classes/tax/TaxRulesGroup.php',
|
||||
'TaxRulesGroup' => 'override/classes/tax/TaxRulesGroup.php',
|
||||
'TaxRulesTaxManagerCore' => 'classes/tax/TaxRulesTaxManager.php',
|
||||
'TaxRulesTaxManager' => 'override/classes/tax/TaxRulesTaxManager.php',
|
||||
'ThemeCore' => 'classes/Theme.php',
|
||||
'Theme' => 'override/classes/Theme.php',
|
||||
'ToolsCore' => 'classes/Tools.php',
|
||||
@@ -275,6 +236,47 @@
|
||||
'Upgrader' => 'override/classes/Upgrader.php',
|
||||
'ValidateCore' => 'classes/Validate.php',
|
||||
'Validate' => 'override/classes/Validate.php',
|
||||
'ZoneCore' => 'classes/Zone.php',
|
||||
'Zone' => 'override/classes/Zone.php',
|
||||
'DbCore' => 'classes/db/Db.php',
|
||||
'Db' => 'override/classes/db/Db.php',
|
||||
'DbMySQLiCore' => 'classes/db/DbMySQLi.php',
|
||||
'DbMySQLi' => 'override/classes/db/DbMySQLi.php',
|
||||
'DbPDOCore' => 'classes/db/DbPDO.php',
|
||||
'DbPDO' => 'override/classes/db/DbPDO.php',
|
||||
'DbQueryCore' => 'classes/db/DbQuery.php',
|
||||
'DbQuery' => 'override/classes/db/DbQuery.php',
|
||||
'MySQLCore' => 'classes/db/MySQL.php',
|
||||
'MySQL' => 'override/classes/db/MySQL.php',
|
||||
'PrestashopDatabaseExceptionCore' => 'classes/exception/PrestashopDatabaseException.php',
|
||||
'PrestashopDatabaseException' => 'override/classes/exception/PrestashopDatabaseException.php',
|
||||
'PrestashopExceptionCore' => 'classes/exception/PrestashopException.php',
|
||||
'PrestashopException' => 'override/classes/exception/PrestashopException.php',
|
||||
'PrestashopModuleExceptionCore' => 'classes/exception/PrestashopModuleException.php',
|
||||
'PrestashopModuleException' => 'override/classes/exception/PrestashopModuleException.php',
|
||||
'PrestashopPaymentExceptionCore' => 'classes/exception/PrestashopPaymentException.php',
|
||||
'PrestashopPaymentException' => 'override/classes/exception/PrestashopPaymentException.php',
|
||||
'GroupShopCore' => 'classes/shop/GroupShop.php',
|
||||
'GroupShop' => 'override/classes/shop/GroupShop.php',
|
||||
'ShopCore' => 'classes/shop/Shop.php',
|
||||
'Shop' => 'override/classes/shop/Shop.php',
|
||||
'ShopUrlCore' => 'classes/shop/ShopUrl.php',
|
||||
'ShopUrl' => 'override/classes/shop/ShopUrl.php',
|
||||
'TaxCore' => 'classes/tax/Tax.php',
|
||||
'Tax' => 'override/classes/tax/Tax.php',
|
||||
'TaxCalculatorCore' => 'classes/tax/TaxCalculator.php',
|
||||
'TaxCalculator' => 'override/classes/tax/TaxCalculator.php',
|
||||
'TaxManagerFactoryCore' => 'classes/tax/TaxManagerFactory.php',
|
||||
'TaxManagerFactory' => 'override/classes/tax/TaxManagerFactory.php',
|
||||
'TaxManagerInterface' => 'classes/tax/TaxManagerInterface.php',
|
||||
'TaxManagerModuleCore' => 'classes/tax/TaxManagerModule.php',
|
||||
'TaxManagerModule' => 'override/classes/tax/TaxManagerModule.php',
|
||||
'TaxRuleCore' => 'classes/tax/TaxRule.php',
|
||||
'TaxRule' => 'override/classes/tax/TaxRule.php',
|
||||
'TaxRulesGroupCore' => 'classes/tax/TaxRulesGroup.php',
|
||||
'TaxRulesGroup' => 'override/classes/tax/TaxRulesGroup.php',
|
||||
'TaxRulesTaxManagerCore' => 'classes/tax/TaxRulesTaxManager.php',
|
||||
'TaxRulesTaxManager' => 'override/classes/tax/TaxRulesTaxManager.php',
|
||||
'WebserviceExceptionCore' => 'classes/webservice/WebserviceException.php',
|
||||
'WebserviceException' => 'override/classes/webservice/WebserviceException.php',
|
||||
'WebserviceKeyCore' => 'classes/webservice/WebserviceKey.php',
|
||||
@@ -291,8 +293,6 @@
|
||||
'WebserviceSpecificManagementInterface' => 'classes/webservice/WebserviceSpecificManagementInterface.php',
|
||||
'WebserviceSpecificManagementSearchCore' => 'classes/webservice/WebserviceSpecificManagementSearch.php',
|
||||
'WebserviceSpecificManagementSearch' => 'override/classes/webservice/WebserviceSpecificManagementSearch.php',
|
||||
'ZoneCore' => 'classes/Zone.php',
|
||||
'Zone' => 'override/classes/Zone.php',
|
||||
'FB' => 'override/classes/fb.php',
|
||||
'AdminAddressesControllerCore' => 'controllers/admin/AdminAddressesController.php',
|
||||
'AdminAddressesController' => '',
|
||||
|
||||
+44
-43
@@ -73,11 +73,11 @@ class CategoryCore extends ObjectModel
|
||||
|
||||
/** @var string Object last modification date */
|
||||
public $date_upd;
|
||||
|
||||
|
||||
protected $langMultiShop = true;
|
||||
|
||||
public $groupBox;
|
||||
|
||||
|
||||
protected static $_links = array();
|
||||
|
||||
protected $tables = array ('category', 'category_lang');
|
||||
@@ -132,12 +132,12 @@ class CategoryCore extends ObjectModel
|
||||
$fields['date_upd'] = pSQL($this->date_upd);
|
||||
return $fields;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Allows to display the category description without HTML tags and slashes
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
*/
|
||||
public static function getDescriptionClean($description)
|
||||
{
|
||||
return strip_tags(stripslashes($description));
|
||||
@@ -176,8 +176,8 @@ class CategoryCore extends ObjectModel
|
||||
|
||||
/**
|
||||
* update category positions in parent
|
||||
*
|
||||
* @param mixed $nullValues
|
||||
*
|
||||
* @param mixed $nullValues
|
||||
* @return void
|
||||
*/
|
||||
public function update($nullValues = false)
|
||||
@@ -332,7 +332,7 @@ class CategoryCore extends ObjectModel
|
||||
self::regenerateEntireNtree();
|
||||
|
||||
Module::hookExec('categoryDeletion', array('category' => $this));
|
||||
|
||||
|
||||
/* Delete Categories in GroupReduction */
|
||||
foreach ($toDelete AS $category)
|
||||
if (GroupReduction::getGroupReductionByCategoryId((int)$category))
|
||||
@@ -420,8 +420,8 @@ class CategoryCore extends ObjectModel
|
||||
{
|
||||
Db::getInstance(_PS_USE_SQL_SLAVE_)->Execute('
|
||||
UPDATE '._DB_PREFIX_.'category
|
||||
SET level_depth = '.($level['level_depth'] + 1).'
|
||||
WHERE id_category = '.$sub_category['id_category']);
|
||||
SET level_depth = '.(int)($level['level_depth'] + 1).'
|
||||
WHERE id_category = '.(int)$sub_category['id_category']);
|
||||
/* Recursive call */
|
||||
$this->recalculateLevelDepth($sub_category['id_category']);
|
||||
}
|
||||
@@ -522,7 +522,7 @@ class CategoryCore extends ObjectModel
|
||||
if (!$context)
|
||||
$context = Context::getContext();
|
||||
if (!$checkAccess OR !$this->checkAccess($context->customer->id))
|
||||
return false;
|
||||
return false;
|
||||
|
||||
if ($p < 1) $p = 1;
|
||||
|
||||
@@ -531,7 +531,7 @@ class CategoryCore extends ObjectModel
|
||||
else
|
||||
/* Fix for all modules which are now using lowercase values for 'orderBy' parameter */
|
||||
$orderBy = strtolower($orderBy);
|
||||
|
||||
|
||||
if (empty($orderWay))
|
||||
$orderWay = 'ASC';
|
||||
if ($orderBy == 'id_product' OR $orderBy == 'date_add')
|
||||
@@ -635,7 +635,7 @@ class CategoryCore extends ObjectModel
|
||||
* @param int $id_parent
|
||||
* @param int $id_lang
|
||||
* @param bool $active
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public static function getChildren($id_parent, $id_lang, $active = true)
|
||||
{
|
||||
@@ -653,7 +653,7 @@ class CategoryCore extends ObjectModel
|
||||
}
|
||||
|
||||
/** return an array of all children of the current category
|
||||
*
|
||||
*
|
||||
* @return array rows of table category
|
||||
* @todo return hydrateCollection
|
||||
*/
|
||||
@@ -667,27 +667,28 @@ class CategoryCore extends ObjectModel
|
||||
|
||||
/**
|
||||
* This method allow to return children categories with the number of sub children selected for a product
|
||||
*
|
||||
*
|
||||
* @param int $id_parent
|
||||
* @param int $id_product
|
||||
* @param int $id_lang
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public static function getChildrenWithNbSelectedSubCat($id_parent, $selectedCat, $id_lang, Shop $shop = null)
|
||||
{
|
||||
if (!$shop)
|
||||
$shop = Context::getContext()->shop;
|
||||
|
||||
$selectedCat = explode(',', str_replace(' ', '', $selectedCat));
|
||||
$sql = 'SELECT c.`id_category`, c.`level_depth`, cl.`name`, IF((
|
||||
SELECT COUNT(*)
|
||||
SELECT COUNT(*)
|
||||
FROM `'._DB_PREFIX_.'category` c2
|
||||
WHERE c2.`id_parent` = c.`id_category`
|
||||
) > 0, 1, 0) AS has_children, '.($selectedCat ? '(
|
||||
SELECT count(c3.`id_category`)
|
||||
FROM `'._DB_PREFIX_.'category` c3
|
||||
WHERE c3.`nleft` > c.`nleft`
|
||||
SELECT count(c3.`id_category`)
|
||||
FROM `'._DB_PREFIX_.'category` c3
|
||||
WHERE c3.`nleft` > c.`nleft`
|
||||
AND c3.`nright` < c.`nright`
|
||||
AND c3.`id_category` IN ('.pSQL($selectedCat).')
|
||||
AND c3.`id_category` IN ('.implode(',', array_map('intval', $selectedCat)).')
|
||||
)' : '0').' AS nbSelectedSubCat
|
||||
FROM `'._DB_PREFIX_.'category` c
|
||||
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON c.`id_category` = cl.`id_category`'.$shop->sqlLang('cl').'
|
||||
@@ -696,7 +697,7 @@ class CategoryCore extends ObjectModel
|
||||
ORDER BY `position` ASC';
|
||||
return Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sql);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Copy products from a category to another
|
||||
*
|
||||
@@ -894,7 +895,7 @@ class CategoryCore extends ObjectModel
|
||||
$groups[] = $group['id_group'];
|
||||
return $groups;
|
||||
}
|
||||
|
||||
|
||||
public function addGroupsIfNoExist($id_group)
|
||||
{
|
||||
$groups = $this->getGroups();
|
||||
@@ -909,8 +910,8 @@ class CategoryCore extends ObjectModel
|
||||
|
||||
/**
|
||||
* checkAccess return true if id_customer is in a group allowed to see this category.
|
||||
*
|
||||
* @param mixed $id_customer
|
||||
*
|
||||
* @param mixed $id_customer
|
||||
* @access public
|
||||
* @return boolean true if access allowed for customer $id_customer
|
||||
*/
|
||||
@@ -966,7 +967,7 @@ class CategoryCore extends ObjectModel
|
||||
foreach ($res AS $category)
|
||||
if ((int)($category['id_category']) == (int)($this->id))
|
||||
$movedCategory = $category;
|
||||
|
||||
|
||||
if (!isset($movedCategory) || !isset($position))
|
||||
return false;
|
||||
// < and > statements rather than BETWEEN operator
|
||||
@@ -992,8 +993,8 @@ class CategoryCore extends ObjectModel
|
||||
* cleanPositions keep order of category in $id_category_parent,
|
||||
* but remove duplicate position. Should not be used if positions
|
||||
* are clean at the beginning !
|
||||
*
|
||||
* @param mixed $id_category_parent
|
||||
*
|
||||
* @param mixed $id_category_parent
|
||||
* @return boolean true if succeed
|
||||
*/
|
||||
public static function cleanPositions($id_category_parent)
|
||||
@@ -1018,7 +1019,7 @@ class CategoryCore extends ObjectModel
|
||||
}
|
||||
|
||||
/** this function return the number of category + 1 having $id_category_parent as parent.
|
||||
*
|
||||
*
|
||||
* @todo rename that function to make it understandable (getNewLastPosition for example)
|
||||
* @param int $id_category_parent the parent category
|
||||
* @return int
|
||||
@@ -1027,7 +1028,7 @@ class CategoryCore extends ObjectModel
|
||||
{
|
||||
return (Db::getInstance()->getValue('SELECT MAX(position)+1 FROM `'._DB_PREFIX_.'category` WHERE `id_parent` = '.(int)($id_category_parent)));
|
||||
}
|
||||
|
||||
|
||||
public static function getUrlRewriteInformations($id_category)
|
||||
{
|
||||
return Db::getInstance()->ExecuteS('
|
||||
@@ -1038,10 +1039,10 @@ class CategoryCore extends ObjectModel
|
||||
AND l.`active` = 1'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return nleft and nright fields for a given category
|
||||
*
|
||||
*
|
||||
* @since 1.5.0
|
||||
* @param int $id
|
||||
* @return array
|
||||
@@ -1072,7 +1073,7 @@ class CategoryCore extends ObjectModel
|
||||
return false;
|
||||
return ($this->nleft >= $interval['nleft'] && $this->nright <= $interval['nright']);
|
||||
}
|
||||
|
||||
|
||||
public function getChildrenWs()
|
||||
{
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
|
||||
@@ -1083,7 +1084,7 @@ class CategoryCore extends ObjectModel
|
||||
ORDER BY `position` ASC');
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
public function getProductsWs()
|
||||
{
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
|
||||
@@ -1093,10 +1094,10 @@ class CategoryCore extends ObjectModel
|
||||
ORDER BY `position` ASC');
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Search for another category with the same parent and the same position
|
||||
*
|
||||
*
|
||||
* @return array first category found
|
||||
*/
|
||||
public function getDuplicatePosition()
|
||||
@@ -1108,7 +1109,7 @@ class CategoryCore extends ObjectModel
|
||||
AND `position` = '.(int)($this->position).'
|
||||
AND c.`id_category` != '.(int)($this->id));
|
||||
}
|
||||
|
||||
|
||||
public function getWsNbProductsRecursive()
|
||||
{
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
|
||||
@@ -1121,12 +1122,12 @@ class CategoryCore extends ObjectModel
|
||||
return -1;
|
||||
return $result[0]['nb_product_recursive'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Array $ids_category
|
||||
* @param int $id_lang
|
||||
* @return Array
|
||||
* @return Array
|
||||
*/
|
||||
public static function getCategoryInformations($ids_category, $id_lang = null)
|
||||
{
|
||||
@@ -1135,19 +1136,19 @@ class CategoryCore extends ObjectModel
|
||||
|
||||
if (!is_array($ids_category) || !sizeof($ids_category))
|
||||
return;
|
||||
|
||||
|
||||
$categories = array();
|
||||
$results = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
|
||||
SELECT c.`id_category`, cl.`name`, cl.`link_rewrite`, cl.`id_lang`
|
||||
FROM `'._DB_PREFIX_.'category` c
|
||||
SELECT c.`id_category`, cl.`name`, cl.`link_rewrite`, cl.`id_lang`
|
||||
FROM `'._DB_PREFIX_.'category` c
|
||||
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category`'.Context::getContext()->shop->sqlLang('cl').')
|
||||
WHERE cl.`id_lang` = '.(int)$id_lang.'
|
||||
AND c.`id_category` IN ('.implode(',', array_map('intval', $ids_category)).')
|
||||
');
|
||||
|
||||
|
||||
foreach($results as $category)
|
||||
$categories[$category['id_category']] = $category;
|
||||
|
||||
|
||||
return $categories;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,7 +412,7 @@ class FrontControllerCore extends Controller
|
||||
|
||||
protected function canonicalRedirection($canonicalURL = '')
|
||||
{
|
||||
if (!$canonicalURL || !Configuration::get('PS_CANONICAL_REDIRECT'))
|
||||
if (!$canonicalURL || !Configuration::get('PS_CANONICAL_REDIRECT') || strtoupper($_SERVER['REQUEST_METHOD']) != 'GET')
|
||||
return;
|
||||
|
||||
$matchUrl = (($this->ssl && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
|
||||
|
||||
+1
-1
@@ -339,7 +339,7 @@ class SearchCore
|
||||
protected static function getProductsToIndex($nbLanguages, $limit = 50)
|
||||
{
|
||||
// Adjust the limit to get only "whole" products, in every languages (and at least one)
|
||||
$limit = min(1, round($limit / $nbLanguages) * $nbLanguages);
|
||||
$limit = max(1, round($limit / $nbLanguages) * $nbLanguages);
|
||||
return Db::getInstance()->ExecuteS('
|
||||
SELECT p.id_product, pl.id_lang, pl.name pname, p.reference, p.ean13, p.upc, pl.description_short, pl.description, cl.name cname, m.name mname
|
||||
FROM '._DB_PREFIX_.'product p
|
||||
|
||||
@@ -120,6 +120,13 @@ class StoreCore extends ObjectModel
|
||||
return $fields;
|
||||
}
|
||||
|
||||
public function __construct($id_store = NULL, $id_lang = NULL)
|
||||
{
|
||||
parent::__construct($id_store, $id_lang);
|
||||
$this->id_image = ($this->id AND file_exists(_PS_STORE_IMG_DIR_.(int)$this->id.'.jpg')) ? (int)$this->id : false;
|
||||
$this->image_dir = _PS_STORE_IMG_DIR_;
|
||||
}
|
||||
|
||||
public function getWsHours()
|
||||
{
|
||||
return implode(';', unserialize($this->hours));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
@@ -25,20 +25,16 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Lucas Cherifi - Nans Pellicari - Anatole Korczak - PrestaShop Team
|
||||
*/
|
||||
|
||||
class WebserviceExceptionCore extends Exception
|
||||
{
|
||||
protected $status;
|
||||
protected $wrong_value;
|
||||
protected $available_values;
|
||||
protected $type;
|
||||
|
||||
|
||||
const SIMPLE = 0;
|
||||
const DID_YOU_MEAN = 1;
|
||||
|
||||
|
||||
public function __construct($message, $code)
|
||||
{
|
||||
$exception_code = $code;
|
||||
@@ -52,12 +48,12 @@ class WebserviceExceptionCore extends Exception
|
||||
}
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
return $this->type;
|
||||
}
|
||||
public function setType($type)
|
||||
{
|
||||
$this->type = $type;
|
||||
return $this;
|
||||
return $this;
|
||||
}
|
||||
public function setStatus($status)
|
||||
{
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
|
||||
/**
|
||||
* @todo : Create typed exception for more finer errors check
|
||||
* @author Lucas Cherifi - Nans Pellicari - Anatole Korczak - PrestaShop Team
|
||||
*/
|
||||
class WebserviceOutputBuilderCore
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
@@ -25,10 +25,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Lucas Cherifi - Nans Pellicari - Anatole Korczak - PrestaShop Team
|
||||
*/
|
||||
|
||||
interface WebserviceOutputInterface
|
||||
{
|
||||
public function __construct($languages = array());
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
@@ -25,29 +25,25 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Lucas Cherifi - Nans Pellicari - Anatole Korczak - PrestaShop Team
|
||||
*/
|
||||
|
||||
class WebserviceOutputXMLCore implements WebserviceOutputInterface
|
||||
{
|
||||
public $docUrl = '';
|
||||
public $languages = array();
|
||||
protected $wsUrl;
|
||||
protected $schemaToDisplay;
|
||||
|
||||
|
||||
public function setSchemaToDisplay($schema)
|
||||
{
|
||||
if (is_string($schema))
|
||||
$this->schemaToDisplay = $schema;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getSchemaToDisplay()
|
||||
{
|
||||
return $this->schemaToDisplay;
|
||||
}
|
||||
|
||||
|
||||
public function setWsUrl($url)
|
||||
{
|
||||
$this->wsUrl = $url;
|
||||
@@ -98,10 +94,10 @@ class WebserviceOutputXMLCore implements WebserviceOutputInterface
|
||||
foreach ($this->languages as $language)
|
||||
{
|
||||
$more_attr = '';
|
||||
if (isset($field['synopsis_details']) || (isset($field['value']) AND is_array($field['value'])))
|
||||
if (isset($field['synopsis_details']) || (isset($field['value']) AND is_array($field['value'])))
|
||||
{
|
||||
$more_attr .= ' xlink:href="'.$this->getWsUrl().'languages/'.$language.'"';
|
||||
if (isset($field['synopsis_details']) && $this->schemaToDisplay != 'blank')
|
||||
if (isset($field['synopsis_details']) && $this->schemaToDisplay != 'blank')
|
||||
$more_attr .= ' format="isUnsignedId" ';
|
||||
}
|
||||
$node_content .= '<language id="'.$language.'"'.$more_attr.'>';
|
||||
@@ -121,11 +117,11 @@ class WebserviceOutputXMLCore implements WebserviceOutputInterface
|
||||
$ret .= ' xlink:href="'.$this->getWsUrl().$field['xlink_resource']['resourceName'].'/'.
|
||||
(isset($field['xlink_resource']['subResourceName']) ? $field['xlink_resource']['subResourceName'].'/'.$field['object_id'].'/' : '').$field['value'].'"';
|
||||
}
|
||||
|
||||
|
||||
if (isset($field['getter']) && $this->schemaToDisplay != 'blank')
|
||||
$ret .= ' not_filterable="true"';
|
||||
|
||||
if ($field['value'] != '')
|
||||
|
||||
if ($field['value'] != '')
|
||||
$node_content .= '<![CDATA['.$field['value'].']]>';
|
||||
}
|
||||
if (isset($field['synopsis_details']) && !empty($field['synopsis_details']) && $this->schemaToDisplay !== 'blank')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
@@ -25,21 +25,17 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Lucas Cherifi - Nans Pellicari - Anatole Korczak - PrestaShop Team
|
||||
*/
|
||||
|
||||
class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManagementInterface
|
||||
{
|
||||
protected $objOutput;
|
||||
protected $output;
|
||||
protected $wsObject;
|
||||
|
||||
|
||||
/**
|
||||
* @var string The extension of the image to display
|
||||
*/
|
||||
protected $imgExtension = 'jpg';
|
||||
|
||||
|
||||
/**
|
||||
* @var array The type of images (general, categories, manufacturers, suppliers, stores...)
|
||||
*/
|
||||
@@ -56,64 +52,64 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
'suppliers' => array(),
|
||||
'stores' => array()
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* @var string The image type (product, category, general,...)
|
||||
*/
|
||||
private $imageType = NULL;
|
||||
|
||||
|
||||
/**
|
||||
* @var int The maximum size supported when uploading images, in bytes
|
||||
*/
|
||||
private $imgMaxUploadSize = 3000000;
|
||||
|
||||
|
||||
/**
|
||||
* @var array The list of supported mime types
|
||||
*/
|
||||
protected $acceptedImgMimeTypes = array('image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');
|
||||
|
||||
|
||||
/**
|
||||
* @var string The product image declination id
|
||||
*/
|
||||
protected $productImageDeclinationId = NULL;
|
||||
|
||||
|
||||
/**
|
||||
* @var boolean If the current image management has to manage a "default" image (i.e. "No product available")
|
||||
*/
|
||||
protected $defaultImage = false;
|
||||
|
||||
|
||||
/**
|
||||
* @var string The file path of the image to display. If not null, the image will be displayed, even if the XML output was not empty
|
||||
*/
|
||||
public $imgToDisplay = null;
|
||||
public $imageResource = null;
|
||||
|
||||
|
||||
// ------------------------------------------------
|
||||
// GETTERS & SETTERS
|
||||
// ------------------------------------------------
|
||||
|
||||
|
||||
public function setObjectOutput(WebserviceOutputBuilderCore $obj)
|
||||
{
|
||||
$this->objOutput = $obj;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getObjectOutput()
|
||||
{
|
||||
return $this->objOutput;
|
||||
}
|
||||
|
||||
|
||||
public function setWsObject(WebserviceRequestCore $obj)
|
||||
{
|
||||
$this->wsObject = $obj;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getWsObject()
|
||||
{
|
||||
return $this->wsObject;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This method need $this->imgToDisplay to be set if output don't needs to be XML
|
||||
*/
|
||||
@@ -142,23 +138,23 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function manage()
|
||||
{
|
||||
$this->manageImages();
|
||||
return $this->wsObject->getOutputEnabled();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Management of images URL segment
|
||||
*
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
private function manageImages()
|
||||
{
|
||||
/*
|
||||
* available cases api/... :
|
||||
*
|
||||
*
|
||||
* images ("types_list") (N-1)
|
||||
* GET (xml)
|
||||
* images/general ("general_list") (N-2)
|
||||
@@ -166,9 +162,9 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
* images/general/[header,+] ("general") (N-3)
|
||||
* GET (bin)
|
||||
* PUT (bin)
|
||||
*
|
||||
*
|
||||
* images/[categories,+] ("normal_list") (N-2) ([categories,+] = categories, manufacturers, ...)
|
||||
*
|
||||
*
|
||||
* images/[categories,+] ("normal_list") (N-2) ([categories,+] = categories, manufacturers, ...)
|
||||
* GET (xml)
|
||||
* images/[categories,+]/[1,+] ("normal") (N-3)
|
||||
* GET (bin)
|
||||
@@ -186,7 +182,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
* DELETE
|
||||
* images/[categories,+]/default/[en,+]/[small,+] ("normal_default_i18n_resized") (N-5)
|
||||
* GET (bin)
|
||||
*
|
||||
*
|
||||
* images/product ("product_list") (N-2)
|
||||
* GET (xml) (list of image)
|
||||
* images/product/[1,+] ("product_description") (N-3)
|
||||
@@ -214,10 +210,10 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
* DELETE
|
||||
* images/product/default/[en,+]/[small,+] ("product_default_i18n_resized") (N-5)
|
||||
* GET (bin)
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/* Declinated
|
||||
*ok GET (bin)
|
||||
*ok images/product ("product_list") (N-2)
|
||||
@@ -247,18 +243,18 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
* DELETE
|
||||
*ok images/product/default/[en,+]/[small,+] ("product_default_i18n_resized") (N-5)
|
||||
*ok GET (bin)
|
||||
*
|
||||
*
|
||||
* */
|
||||
|
||||
|
||||
|
||||
|
||||
// Pre configuration...
|
||||
if(isset($this->wsObject->urlSegment))
|
||||
for ($i = 1; $i < 6; $i++)
|
||||
if (count($this->wsObject->urlSegment) == $i)
|
||||
$this->wsObject->urlSegment[$i] = '';
|
||||
|
||||
|
||||
$this->imageType = $this->wsObject->urlSegment[1];
|
||||
|
||||
|
||||
switch ($this->wsObject->urlSegment[1])
|
||||
{
|
||||
// general images management : like header's logo, invoice logo, etc...
|
||||
@@ -287,12 +283,12 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
}
|
||||
return $this->manageDeclinatedImages($directory);
|
||||
break;
|
||||
|
||||
|
||||
// product image management : many image for one entity (product)
|
||||
case 'products':
|
||||
return $this->manageProductImages();
|
||||
break;
|
||||
|
||||
|
||||
// images root node management : many image for one entity (product)
|
||||
case '':
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeHeader('image_types', array());
|
||||
@@ -308,7 +304,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeFooter('image_types', array());
|
||||
return true;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
$exception = new WebserviceException(sprintf('Image of type "%s" does not exists', $this->wsObject->urlSegment[1]), array(48, 400));
|
||||
throw $exception->setDidYouMean($this->wsObject->urlSegment[1], array_keys($this->imageTypes));
|
||||
@@ -316,7 +312,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
}
|
||||
/**
|
||||
* Management of general images
|
||||
*
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
private function manageGeneralImages()
|
||||
@@ -332,7 +328,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
else
|
||||
throw new WebserviceException('This method is not allowed with general image resources.', array(49, 405));
|
||||
break;
|
||||
|
||||
|
||||
// Set the image path on display in relation to the mail image
|
||||
case 'mail':
|
||||
if (in_array($this->wsObject->method, array('GET','HEAD','PUT')))
|
||||
@@ -343,7 +339,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
else
|
||||
throw new WebserviceException('This method is not allowed with general image resources.', array(50, 405));
|
||||
break;
|
||||
|
||||
|
||||
// Set the image path on display in relation to the invoice image
|
||||
case 'invoice':
|
||||
if (in_array($this->wsObject->method, array('GET','HEAD','PUT')))
|
||||
@@ -354,7 +350,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
else
|
||||
throw new WebserviceException('This method is not allowed with general image resources.', array(51, 405));
|
||||
break;
|
||||
|
||||
|
||||
// Set the image path on display in relation to the icon store image
|
||||
case 'store_icon':
|
||||
if (in_array($this->wsObject->method, array('GET','HEAD','PUT')))
|
||||
@@ -365,7 +361,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
else
|
||||
throw new WebserviceException('This method is not allowed with general image resources.', array(52, 405));
|
||||
break;
|
||||
|
||||
|
||||
// List the general image types
|
||||
case '':
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeHeader('general_image_types', array());
|
||||
@@ -381,7 +377,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeFooter('general_image_types', array());
|
||||
return true;
|
||||
break;
|
||||
|
||||
|
||||
// If the image type does not exist...
|
||||
default:
|
||||
$exception = new WebserviceException(sprintf('General image of type "%s" does not exists', $this->wsObject->urlSegment[2]), array(53, 400));
|
||||
@@ -396,7 +392,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
return true;
|
||||
break;
|
||||
case 'PUT':
|
||||
|
||||
|
||||
if ($this->writePostedImageOnDisk($path, NULL, NULL))
|
||||
{
|
||||
if ($this->wsObject->urlSegment[2] == 'header')
|
||||
@@ -413,7 +409,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function manageDefaultDeclinatedImages($directory, $normal_image_sizes)
|
||||
{
|
||||
$this->defaultImage = true;
|
||||
@@ -427,7 +423,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$defaultLang = $lang['iso_code'];
|
||||
$langs[] = $lang['iso_code'];
|
||||
}
|
||||
|
||||
|
||||
// Display list of languages
|
||||
if($this->wsObject->urlSegment[3] == '' && $this->wsObject->method == 'GET')
|
||||
{
|
||||
@@ -442,7 +438,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
);
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeHeader('language', array(), $more_attr, false);
|
||||
}
|
||||
|
||||
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeFooter('languages', array());
|
||||
return true;
|
||||
}
|
||||
@@ -458,19 +454,19 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
return $this->manageDeclinatedImagesCRUD($filename_exists, $filename, $normal_image_sizes, $directory);// @todo : [feature] @see todo#1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function manageListDeclinatedImages($directory, $normal_image_sizes)
|
||||
{
|
||||
// Check if method is allowed
|
||||
if ($this->wsObject->method != 'GET')
|
||||
throw new WebserviceException('This method is not allowed for listing category images.', array(55, 405));
|
||||
|
||||
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeHeader('image_types', array());
|
||||
foreach ($normal_image_sizes as $image_size)
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeHeader('image_type', array(), array('id' => $image_size['id_image_type'], 'name' => $image_size['name'], 'xlink_resource'=>$this->wsObject->wsUrl.'image_types/'.$image_size['id_image_type']), false);
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeFooter('image_types', array());
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeHeader('images', array());
|
||||
|
||||
|
||||
if ($this->imageType == 'products')
|
||||
{
|
||||
$ids = array();
|
||||
@@ -505,7 +501,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$this->output .= $this->objOutput->getObjectRender()->renderNodeFooter('images', array());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private function manageEntityDeclinatedImages($directory, $normal_image_sizes)
|
||||
{
|
||||
$normal_image_size_names = array();
|
||||
@@ -515,20 +511,20 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$object_id = $this->wsObject->urlSegment[2];
|
||||
if (!Validate::isUnsignedId($object_id))
|
||||
throw new WebserviceException('The image id is invalid. Please set a valid id or the "default" value', array(60, 400));
|
||||
|
||||
|
||||
// For the product case
|
||||
if ($this->imageType == 'products')
|
||||
{
|
||||
// Get available image ids
|
||||
$available_image_ids = array();
|
||||
|
||||
|
||||
// New Behavior
|
||||
$languages = Language::getLanguages();
|
||||
foreach ($languages as $language)
|
||||
foreach (Image::getImages($language['id_lang'], $object_id) as $image)
|
||||
$available_image_ids[] = $image['id_image'];
|
||||
|
||||
|
||||
|
||||
|
||||
// Old Behavior
|
||||
$nodes = scandir($directory);
|
||||
foreach ($nodes as $node)
|
||||
@@ -539,7 +535,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
if (isset($matches[1]))
|
||||
$available_image_ids[] = $matches[1];
|
||||
}
|
||||
|
||||
|
||||
// If an image id is specified
|
||||
if ($this->wsObject->urlSegment[3] != '')
|
||||
{
|
||||
@@ -552,7 +548,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
throw new WebserviceException('This image id does not exist', array(57, 400));
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
// Check for new image system
|
||||
$image_id = $this->wsObject->urlSegment[3];
|
||||
$path = implode('/', str_split((string)$image_id));
|
||||
@@ -586,7 +582,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$this->wsObject->setOutputEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// for all other cases
|
||||
else
|
||||
@@ -595,16 +591,16 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$image_size = $this->wsObject->urlSegment[3];
|
||||
$filename = $directory.$object_id.'-'.$image_size.'.jpg';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// in case of declinated images list of a product is get
|
||||
if ($this->output != '')
|
||||
return true;
|
||||
|
||||
|
||||
// If a size was given try to display it
|
||||
elseif (isset($image_size) && $image_size != '')
|
||||
{
|
||||
|
||||
|
||||
// Check the given size
|
||||
if ($this->imageType == 'products' && $image_size == 'bin')
|
||||
$filename = $directory.$object_id.'-'.$image_id.'.jpg';
|
||||
@@ -615,7 +611,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
}
|
||||
if (!file_exists($filename))
|
||||
throw new WebserviceException('This image does not exist on disk', array(59, 500));
|
||||
|
||||
|
||||
// Display the resized specific image
|
||||
$this->imgToDisplay = $filename;
|
||||
return true;
|
||||
@@ -634,7 +630,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
|
||||
/**
|
||||
* Management of normal images (as categories, suppliers, manufacturers and stores)
|
||||
*
|
||||
*
|
||||
* @param string $directory the file path of the root of the images folder type
|
||||
* @return boolean
|
||||
*/
|
||||
@@ -656,17 +652,17 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
return $this->manageEntityDeclinatedImages($directory, $normal_image_sizes);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function manageProductImages()
|
||||
{
|
||||
$this->manageDeclinatedImages(_PS_PROD_IMG_DIR_);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Management of normal images CRUD
|
||||
*
|
||||
*
|
||||
* @param boolean $filename_exists if the filename exists
|
||||
* @param string $filename the image path
|
||||
* @param array $imageSizes The
|
||||
@@ -726,14 +722,14 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
throw new WebserviceException('Unable to save this image', array(66, 500));
|
||||
}
|
||||
break;
|
||||
default :
|
||||
default :
|
||||
throw new WebserviceException('This method is not allowed', array(67, 405));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Delete the image on disk
|
||||
*
|
||||
*
|
||||
* @param string $filePath the image file path
|
||||
* @param array $imageTypes The differents sizes
|
||||
* @param string $parentPath The parent path
|
||||
@@ -770,10 +766,10 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write the image on disk
|
||||
*
|
||||
*
|
||||
* @param string $basePath
|
||||
* @param string $newPath
|
||||
* @param int $destWidth
|
||||
@@ -802,10 +798,10 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$sourceImage = imagecreatefromjpeg($basePath);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$widthDiff = $destWidth / $sourceWidth;
|
||||
$heightDiff = $destHeight / $sourceHeight;
|
||||
|
||||
|
||||
if ($widthDiff > 1 AND $heightDiff > 1)
|
||||
{
|
||||
$nextWidth = $sourceWidth;
|
||||
@@ -826,10 +822,10 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$destHeight = ((int)(Configuration::get('PS_IMAGE_GENERATION_METHOD')) == 0 ? $destHeight : $nextHeight);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$borderWidth = (int)(($destWidth - $nextWidth) / 2);
|
||||
$borderHeight = (int)(($destHeight - $nextHeight) / 2);
|
||||
|
||||
|
||||
// Build the image
|
||||
if (
|
||||
!($destImage = imagecreatetruecolor($destWidth, $destHeight)) ||
|
||||
@@ -839,7 +835,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
!imagecolortransparent($destImage, $white)
|
||||
)
|
||||
throw new WebserviceException(sprintf('Unable to build the image "%s".', str_replace(_PS_ROOT_DIR_, '[SHOP_ROOT_DIR]', $newPath)), array(69, 500));
|
||||
|
||||
|
||||
// Write it on disk
|
||||
$imaged = false;
|
||||
switch ($this->imgExtension)
|
||||
@@ -858,7 +854,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
imagedestroy($destImage);
|
||||
if (!$imaged)
|
||||
throw new WebserviceException(sprintf('Unable to write the image "%s".', str_replace(_PS_ROOT_DIR_, '[SHOP_ROOT_DIR]', $newPath)), array(70, 500));
|
||||
|
||||
|
||||
// Write image declinations if present
|
||||
if ($imageTypes)
|
||||
{
|
||||
@@ -881,10 +877,10 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
}
|
||||
return $newPath;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write the posted image on disk
|
||||
*
|
||||
*
|
||||
* @param string $sreceptionPath
|
||||
* @param int $destWidth
|
||||
* @param int $destHeight
|
||||
@@ -918,14 +914,14 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
$mime_type = $file['type'];
|
||||
if (($pos = strpos($mime_type, ';')) !== false)
|
||||
$mime_type = substr($mime_type, 0, $pos);
|
||||
|
||||
|
||||
// Check mime content type
|
||||
if(!$mime_type || !in_array($mime_type, $this->acceptedImgMimeTypes))
|
||||
throw new WebserviceException('This type of image format not recognized, allowed formats are: '.implode('", "', $this->acceptedImgMimeTypes), array(73, 400));
|
||||
// Check error while uploading
|
||||
elseif ($file['error'])
|
||||
throw new WebserviceException('Error while uploading image. Please change your server\'s settings', array(74, 400));
|
||||
|
||||
|
||||
// Try to copy image file to a temporary file
|
||||
if (!$tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS') OR !move_uploaded_file($_FILES['image']['tmp_name'], $tmpName))
|
||||
throw new WebserviceException('Error while copying image to the temporary directory', array(75, 400));
|
||||
@@ -965,19 +961,19 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage
|
||||
if (!Validate::isLoadedObject($product))
|
||||
throw new WebserviceException('Product '.(int)$this->wsObject->urlSegment[2].' doesn\'t exists', array(76, 400));
|
||||
}
|
||||
|
||||
|
||||
// copy image
|
||||
if (!isset($file['tmp_name']))
|
||||
return false;
|
||||
if ($error = checkImage($file, $this->imgMaxUploadSize))
|
||||
throw new WebserviceException('Bad image : '.$error, array(76, 400));
|
||||
|
||||
|
||||
if ($this->imageType == 'products')
|
||||
{
|
||||
$image = new Image($image->id);
|
||||
if (!(Configuration::get('PS_OLD_FILESYSTEM') && file_exists(_PS_PROD_IMG_DIR_.$product->id.'-'.$image->id.'.jpg')))
|
||||
$image->createImgFolder();
|
||||
|
||||
|
||||
if (!$tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS') OR !move_uploaded_file($file['tmp_name'], $tmpName))
|
||||
throw new WebserviceException('An error occurred during the image upload', array(76, 400));
|
||||
elseif (!imageResize($tmpName, _PS_PROD_IMG_DIR_.$image->getExistingImgPath().'.'.$image->image_format))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
@@ -25,22 +25,18 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Lucas Cherifi - Nans Pellicari - Anatole Korczak - PrestaShop Team
|
||||
*/
|
||||
|
||||
interface WebserviceSpecificManagementInterface
|
||||
{
|
||||
public function setObjectOutput(WebserviceOutputBuilderCore $obj);
|
||||
public function getObjectOutput();
|
||||
public function setWsObject(WebserviceRequestCore $obj);
|
||||
public function getWsObject();
|
||||
|
||||
|
||||
public function manage();
|
||||
|
||||
|
||||
/**
|
||||
* This must be return an array with specific values as WebserviceRequest expects.
|
||||
*
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getContent();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
@@ -25,32 +25,28 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Lucas Cherifi - Nans Pellicari - Anatole Korczak - PrestaShop Team
|
||||
*/
|
||||
|
||||
class WebserviceSpecificManagementSearchCore implements WebserviceSpecificManagementInterface
|
||||
{
|
||||
protected $objOutput;
|
||||
protected $output;
|
||||
protected $wsObject;
|
||||
|
||||
|
||||
// ------------------------------------------------
|
||||
// GETTERS & SETTERS
|
||||
// ------------------------------------------------
|
||||
|
||||
|
||||
public function setObjectOutput(WebserviceOutputBuilderCore $obj)
|
||||
{
|
||||
$this->objOutput = $obj;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function setWsObject(WebserviceRequestCore $obj)
|
||||
{
|
||||
$this->wsObject = $obj;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getWsObject()
|
||||
{
|
||||
return $this->wsObject;
|
||||
@@ -59,36 +55,36 @@ class WebserviceSpecificManagementSearchCore implements WebserviceSpecificManage
|
||||
{
|
||||
return $this->objOutput;
|
||||
}
|
||||
|
||||
|
||||
public function setUrlSegment($segments)
|
||||
{
|
||||
$this->urlSegment = $segments;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getUrlSegment()
|
||||
{
|
||||
return $this->urlSegment;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Management of search
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function manage()
|
||||
{
|
||||
if (!isset($this->wsObject->urlFragments['query']) || !isset($this->wsObject->urlFragments['language']))
|
||||
throw new WebserviceException('You have to set both the \'language\' and \'query\' parameters to get a result', array(100, 400));
|
||||
$objects_products = array();
|
||||
$objects_categories = array();
|
||||
$objects_categories = array();
|
||||
$objects_products['empty'] = new Product();
|
||||
$objects_categories['empty'] = new Category();
|
||||
|
||||
|
||||
$this->_resourceConfiguration = $objects_products['empty']->getWebserviceParameters();
|
||||
|
||||
|
||||
if (!$this->wsObject->setFieldsToDisplay())
|
||||
return false;
|
||||
|
||||
|
||||
$results = Search::find($this->wsObject->urlFragments['language'], $this->wsObject->urlFragments['query'], 1, 1, 'position', 'desc', true, false);
|
||||
$categories = array();
|
||||
foreach ($results AS $result)
|
||||
@@ -109,13 +105,13 @@ class WebserviceSpecificManagementSearchCore implements WebserviceSpecificManage
|
||||
// $this->_resourceConfiguration = $objects_categories['empty']->getWebserviceParameters();
|
||||
// if (!$this->setFieldsToDisplay())
|
||||
// return false;
|
||||
|
||||
|
||||
$this->output .= $this->objOutput->getContent($objects_categories, null, $this->wsObject->fieldsToDisplay, $this->wsObject->depth, WebserviceOutputBuilder::VIEW_LIST, false);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This must be return an array with specific values as WebserviceRequest expects.
|
||||
*
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getContent()
|
||||
|
||||
+28
-28
@@ -73,7 +73,7 @@ if (file_exists(INSTALL_PATH.'/../config/settings.inc.php'))
|
||||
{
|
||||
require_once(INSTALL_PATH.'/../config/settings.inc.php');
|
||||
$oldversion =_PS_VERSION_;
|
||||
|
||||
|
||||
// fix : complete version number if there is not all 4 numbers
|
||||
// for example replace 1.4.3 by 1.4.3.0
|
||||
// consequences : file 1.4.3.0.sql will be skipped if oldversion = 1.4.3
|
||||
@@ -86,7 +86,7 @@ if (file_exists(INSTALL_PATH.'/../config/settings.inc.php'))
|
||||
|
||||
$oldversion = implode('.', $arrayVersion);
|
||||
// end of fix
|
||||
|
||||
|
||||
$tooOld = (version_compare($oldversion, MINIMUM_VERSION_TO_UPDATE) == -1);
|
||||
$sameVersions = (version_compare($oldversion, INSTALL_VERSION) == 0);
|
||||
$installOfOldVersion = (version_compare($oldversion, INSTALL_VERSION) == 1);
|
||||
@@ -230,7 +230,7 @@ if ($lm->getIncludeTradFilename())
|
||||
{
|
||||
$.ajax({
|
||||
url: 'model.php?method=getVersionFromDb&language='+id_lang,
|
||||
success: function (xml)
|
||||
success: function (xml)
|
||||
{
|
||||
var action = $(xml).find('action');
|
||||
if (action.attr('result') == 'ko')
|
||||
@@ -276,7 +276,7 @@ if ($lm->getIncludeTradFilename())
|
||||
</ul>
|
||||
|
||||
<div id="PrestaShopLogo">PrestaShop</div>
|
||||
|
||||
|
||||
<div id="infosSup">
|
||||
<div class="installerVersion" id="installerVersion-<?php echo $lm->getIsoCodeSelectedLang()?>">PrestaShop <?php echo INSTALL_VERSION.'<br />'.lang('Installer'); ?></div>
|
||||
<div class="updaterVersion" id="updaterVersion-<?php echo $lm->getIsoCodeSelectedLang()?>">PrestaShop <?php echo INSTALL_VERSION.'<br />'.lang('Updater'); ?></div>
|
||||
@@ -306,7 +306,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<div class="sheet shown" id="sheet_lang">
|
||||
<div class="contentTitle">
|
||||
<h1><?php echo lang('Welcome')?></h1>
|
||||
|
||||
|
||||
<ul id="stepList_1" class="stepList clearfix">
|
||||
<li>Etape 1</li>
|
||||
<li>Etape 2</li>
|
||||
@@ -315,7 +315,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<li>Etape 5</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<h2 id="welcome-title"><?php echo lang('Welcome to the PrestaShop '.INSTALL_VERSION.' Installer.'); ?></h2>
|
||||
<script type="text/javascript">$('#welcome-title').html(Step1Title);</script>
|
||||
<p><?php echo lang('Please allow 5-15 minutes to complete the installation process.')?></p>
|
||||
@@ -381,7 +381,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<p><strong>14. Definition of "You" in This License.</strong> "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.</p>
|
||||
<p><strong>15. Right to Use.</strong> You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You.</p>
|
||||
<p><strong>16. Modification of This License.</strong> This License is Copyright © 2005 Lawrence Rosen. Permission is granted to copy, distribute, or communicate this License without modification. Nothing in this License permits You to modify this License as applied to the Original Work or to Derivative Works. However, You may modify the text of this License and copy, distribute or communicate your modified version (the "Modified License") and apply it to other original works of authorship subject to the following conditions: (i) You may not indicate in any way that your Modified License is the "Open Software License" or "OSL" and you may not use those names in the name of your Modified License; (ii) You must replace the notice specified in the first paragraph above with the notice "Licensed under Open Software License ("OSL") v. 3.0" or with a notice of your own that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process.</p>
|
||||
|
||||
|
||||
<h3>Modules and Themes: Academic Free License ("AFL") v. 3.0</h3>
|
||||
<p>This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following licensing notice adjacent to the copyright notice for the Original Work:</p>
|
||||
<h4>Licensed under the Academic Free License version 3.0</h4>
|
||||
@@ -488,7 +488,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<li>Etape 5</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="dbPart">
|
||||
<h2><?php echo lang('Configure your database by filling out the following fields:')?></h2>
|
||||
<p><?php echo lang('You have to create a database, help available in readme_en.txt'); ?></p>
|
||||
@@ -517,7 +517,7 @@ if ($lm->getIncludeTradFilename())
|
||||
</select>
|
||||
</p>
|
||||
<p class="last">
|
||||
<label for="db_prefix"><?php echo lang('Tables prefix:')?></label>
|
||||
<label for="db_prefix"><?php echo lang('Tables prefix:')?></label>
|
||||
<input class="text" type="text" id="db_prefix" value="ps_"/>
|
||||
</p>
|
||||
<p class="aligned">
|
||||
@@ -537,7 +537,7 @@ if ($lm->getIncludeTradFilename())
|
||||
</form>
|
||||
<p id="dbCreateResultCheck"></p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="mailPart">
|
||||
<h2><?php echo lang('E-mail delivery set-up')?></h2>
|
||||
|
||||
@@ -579,7 +579,7 @@ if ($lm->getIncludeTradFilename())
|
||||
</form>
|
||||
</div>
|
||||
<p>
|
||||
<input class="text" id="testEmail" type="text" size="15" value="<?php echo lang('enter@your.email'); ?>" />
|
||||
<input class="text" id="testEmail" type="text" size="15" value="<?php echo lang('enter@your.email'); ?>" />
|
||||
<input id="btVerifyMail" class="button" type="submit" value="<?php echo lang('Send me a test email!'); ?>" />
|
||||
</p>
|
||||
|
||||
@@ -664,7 +664,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<p id="alignedLogo"><img id="uploadedImage" src="<?php echo PS_BASE_URI ?>img/logo.jpg" alt="Logo" /></p>
|
||||
</span>
|
||||
<p class="userInfos aligned"><?php echo lang('recommended dimensions: 230px X 75px'); ?></p>
|
||||
|
||||
|
||||
<span id="inputFileLogo" class="contentinput">
|
||||
<input type="file" onchange="uploadLogo()" name="fileToUpload" id="fileToUpload"/>
|
||||
</span>
|
||||
@@ -725,7 +725,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<input type="checkbox" id="infosNotification" class="aligned" style="vertical-align: middle;" /><label for="infosNotification"><?php echo lang('Receive notifications by e-mail'); ?></label><br/>
|
||||
<span id="resultInfosNotification" class="result aligned"></span>
|
||||
</span>
|
||||
|
||||
|
||||
<p class="userInfos aligned"><?php echo lang('If you check this box and your mail configuration is wrong, your installation might be blocked. If so, please uncheck the box to go to the next step.'); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -757,7 +757,7 @@ if ($lm->getIncludeTradFilename())
|
||||
$("select#infosTimezone").val(timezone);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
autoCheckField("#infosCountry", "#resultInfosCountry", "required");
|
||||
autoCheckField("#infosTimezone", "#resultInfosTimezone", "required");
|
||||
});
|
||||
@@ -797,7 +797,7 @@ if ($lm->getIncludeTradFilename())
|
||||
foreach ($p->prechecked AS $country_iso_code)
|
||||
$modulesPrechecked[trim($p->key)][trim($country_iso_code)] = 1;
|
||||
}
|
||||
|
||||
|
||||
if (sizeof($modulesHelpInstall))
|
||||
{
|
||||
echo '
|
||||
@@ -946,7 +946,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<?php }} ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -957,10 +957,10 @@ if ($lm->getIncludeTradFilename())
|
||||
</div>
|
||||
|
||||
<div class="sheet clearfix" id="sheet_end">
|
||||
|
||||
|
||||
<div class="contentTitle">
|
||||
<h1><?php echo lang('PrestaShop is ready!'); ?></h1>
|
||||
|
||||
|
||||
<ul id="stepList_5" class="stepList clearfix">
|
||||
<li class="ok">Etape 1 ok</li>
|
||||
<li class="ok">Etape 2 ok</li>
|
||||
@@ -994,7 +994,7 @@ if ($lm->getIncludeTradFilename())
|
||||
</table>
|
||||
|
||||
<h3 class="infosBlock"><?php echo lang('WARNING: For more security, you must delete the \'install\' folder and readme files(readme_fr.txt, readme_en.txt, readme_es.txt, readme_de.txt, readme_it.txt, CHANGELOG).'); ?></h3>
|
||||
|
||||
|
||||
<div id="boBlock" class="blockInfoEnd clearfix">
|
||||
<img src="img/visu_boBlock.png" />
|
||||
<h3><?php echo lang('Back Office'); ?></h3>
|
||||
@@ -1007,7 +1007,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<p class="description"><?php echo lang('Find your store as your future customers will see!'); ?></p>
|
||||
<a href="../" id="access" class="FO" target="_blank"><span><?php echo lang('Discover your store'); ?></span></a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="resultEnd"></div>
|
||||
</div>
|
||||
<?php
|
||||
@@ -1023,7 +1023,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<div class="sheet clearfix" id="sheet_disclaimer">
|
||||
<div class="contentTitle">
|
||||
<h1><?php echo lang('Disclaimer'); ?></h1>
|
||||
|
||||
|
||||
<ul id="stepList_6" class="stepList clearfix">
|
||||
<li class="ok">Etape 1</li>
|
||||
<li>Etape 2</li>
|
||||
@@ -1054,7 +1054,7 @@ if ($lm->getIncludeTradFilename())
|
||||
url: 'xml/getNonNativeModules.php',
|
||||
async: true,
|
||||
dataType: "json",
|
||||
success: function (json)
|
||||
success: function (json)
|
||||
{
|
||||
if (json.length == 0)
|
||||
$('#nonNativeModules').hide();
|
||||
@@ -1073,7 +1073,7 @@ if ($lm->getIncludeTradFilename())
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<div id="nonNativeModules" style="font-weight: bold; background-color: #ffdeb7; color: #000; padding: 10px; border: 1px solid #999; margin-top: 10px;">
|
||||
<p><img src="../img/admin/warning.gif" alt="" style="vertical-align: middle;" /> <?php echo lang('It\'s dangerous to keep non-native modules activated during the update. If you really want to take this risk, uncheck the following box.'); ?></p>
|
||||
|
||||
@@ -1083,13 +1083,13 @@ if ($lm->getIncludeTradFilename())
|
||||
<?php echo lang('Ok, please desactivate the following modules, I will reactivate them later:'); ?>
|
||||
</label>
|
||||
<ul id="nonNativeModulesLi">
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
function sortnatversion($a, $b)
|
||||
{
|
||||
return strnatcmp($a['version'], $b['version']);
|
||||
@@ -1286,9 +1286,9 @@ if ($lm->getIncludeTradFilename())
|
||||
<li>Etape 4</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><?php echo lang('One or more errors have occurred, you can find more informations below or in the log/installation.log file.'); ?></h3>
|
||||
|
||||
|
||||
<p id="resultUpdate" class="errorBlock"></p>
|
||||
<br />
|
||||
<p id="detailsError" class="infosBlock"><?php echo lang('No more informations'); ?></p>
|
||||
@@ -1330,7 +1330,7 @@ if ($lm->getIncludeTradFilename())
|
||||
<div class="infosBlock">
|
||||
<?php echo lang('WARNING: For more security, you must delete the \'install\' folder and readme files (readme_fr.txt, readme_en.txt, readme_es.txt, readme_de.txt, readme_it.txt, CHANGELOG).'); ?>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="foBlock" class="blockInfoEnd clearfix">
|
||||
<img src="img/visu_foBlock.png" />
|
||||
<h3><?php echo lang('Front Office'); ?></h3>
|
||||
|
||||
@@ -33,7 +33,7 @@ function alter_productcomments_guest_index()
|
||||
return;
|
||||
|
||||
DB::getInstance()->Execute('
|
||||
ALTER TABLE `'._DB_PREFIX_.'product_comment` DROP INDEX `id_guest`,
|
||||
ADD INDEX `id_guest` USING BTREE(`id_guest`);');
|
||||
ALTER TABLE `'._DB_PREFIX_.'product_comment`
|
||||
DROP INDEX `id_guest`, ADD INDEX `id_guest` (`id_guest`);');
|
||||
}
|
||||
|
||||
|
||||
@@ -587,9 +587,9 @@ INSERT INTO `PREFIX_meta_lang` (`id_lang`, `id_meta`, `title`, `url_rewrite`) VA
|
||||
(3, (SELECT `id_meta` FROM `PREFIX_meta` WHERE `page` = 'order'), 'Carrito', 'carrito');
|
||||
INSERT INTO `PREFIX_meta` (`page`) VALUES ('search');
|
||||
INSERT INTO `PREFIX_meta_lang` (`id_lang`, `id_meta`, `title`, `url_rewrite`) VALUES
|
||||
(1, (SELECT `id_meta` FROM `PREFIX_meta` WHERE `page` = 'search'), 'Search', 'search'),
|
||||
(2, (SELECT `id_meta` FROM `PREFIX_meta` WHERE `page` = 'search'), 'Recherche', 'recherche'),
|
||||
(3, (SELECT `id_meta` FROM `PREFIX_meta` WHERE `page` = 'search'), 'Buscar', 'buscar');
|
||||
(1, (SELECT `id_meta` FROM `PREFIX_meta` WHERE `page` = 'search' LIMIT 1), 'Search', 'search'),
|
||||
(2, (SELECT `id_meta` FROM `PREFIX_meta` WHERE `page` = 'search' LIMIT 1), 'Recherche', 'recherche'),
|
||||
(3, (SELECT `id_meta` FROM `PREFIX_meta` WHERE `page` = 'search' LIMIT 1), 'Buscar', 'buscar');
|
||||
INSERT INTO `PREFIX_meta` (`page`) VALUES ('stores');
|
||||
INSERT INTO `PREFIX_meta_lang` (`id_lang`, `id_meta`, `title`, `url_rewrite`) VALUES
|
||||
(1, (SELECT `id_meta` FROM `PREFIX_meta` WHERE `page` = 'stores'), 'Stores', 'stores'),
|
||||
|
||||
@@ -48,3 +48,8 @@ UPDATE `PREFIX_lang` SET `date_format_lite` = 'd.m.Y' WHERE `iso_code` = 'de';
|
||||
UPDATE `PREFIX_lang` SET `date_format_full` = 'd.m.Y H:i:s' WHERE `iso_code` = 'de';
|
||||
UPDATE `PREFIX_lang` SET `date_format_lite` = 'm/d/Y' WHERE `iso_code` = 'en';
|
||||
UPDATE `PREFIX_lang` SET `date_format_full` = 'm/d/Y H:i:s' WHERE `iso_code` = 'en';
|
||||
|
||||
ALTER IGNORE TABLE `PREFIX_specific_price_priority` ADD UNIQUE (
|
||||
`id_product`
|
||||
);
|
||||
|
||||
|
||||
+3
-3
@@ -7,11 +7,11 @@
|
||||
<language iso_code="it" />
|
||||
</languages>
|
||||
<taxes>
|
||||
<tax id="1" name="IVA IT 20%" rate="20" />
|
||||
<tax id="1" name="IVA IT 21%" rate="21" />
|
||||
<tax id="2" name="IVA IT 10%" rate="10" />
|
||||
<tax id="3" name="IVA IT 4%" rate="4" />
|
||||
|
||||
<taxRulesGroup name="IT Standard Rate (20%)">
|
||||
<taxRulesGroup name="IT Standard Rate (21%)">
|
||||
<taxRule iso_code_country="be" id_tax="1" />
|
||||
<taxRule iso_code_country="bg" id_tax="1" />
|
||||
<taxRule iso_code_country="cz" id_tax="1" />
|
||||
@@ -280,4 +280,4 @@
|
||||
<unit type="base_distance" value="m" />
|
||||
<unit type="long_distance" value="km" />
|
||||
</units>
|
||||
</localizationPack>
|
||||
</localizationPack>
|
||||
@@ -269,6 +269,7 @@ class AdminSelfUpgrade extends AdminSelfTab
|
||||
{
|
||||
$allowed = (ConfigurationTest::test_fopen() && $this->rootWritable);
|
||||
$allowed &= !Configuration::get('PS_SHOP_ENABLE');
|
||||
$allowed &= $this->upgrader->autoupgrade;
|
||||
$allowed &= (Configuration::get('PS_AUTOUP_KEEP_TRAD') !== false);
|
||||
|
||||
return $allowed;
|
||||
|
||||
@@ -284,6 +284,7 @@ function reloadContent(params_plus)
|
||||
reloadContent();
|
||||
return false;
|
||||
});
|
||||
if (typeof(ajaxCart) != "undefined")
|
||||
ajaxCart.overrideButtonsInThePage();
|
||||
|
||||
if (typeof(reloadProductComparison) == 'function')
|
||||
|
||||
@@ -95,8 +95,8 @@ class BlockLayered extends Module
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_friendly_url');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_attribute_group');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_feature');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_attribute_group_lang');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_feature_lang');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_feature_lang_value');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_category');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_filter');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_product_attribute');
|
||||
@@ -143,9 +143,9 @@ class BlockLayered extends Module
|
||||
INSERT INTO `'._DB_PREFIX_.'layered_indexable_attribute_group`
|
||||
SELECT id_attribute_group, 1 FROM `'._DB_PREFIX_.'attribute_group`');
|
||||
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_group_lang`');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_group_lang_value`');
|
||||
Db::getInstance()->Execute('
|
||||
CREATE TABLE `'._DB_PREFIX_.'layered_indexable_attribute_group_lang` (
|
||||
CREATE TABLE `'._DB_PREFIX_.'layered_indexable_attribute_group_lang_value` (
|
||||
`id_attribute_group` INT NOT NULL,
|
||||
`id_lang` INT NOT NULL,
|
||||
`url_name` VARCHAR(20),
|
||||
@@ -153,9 +153,9 @@ class BlockLayered extends Module
|
||||
PRIMARY KEY (`id_attribute_group`, `id_lang`)) ENGINE = '._MYSQL_ENGINE_);
|
||||
|
||||
// Attributes
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_lang`');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_lang_value`');
|
||||
Db::getInstance()->Execute('
|
||||
CREATE TABLE `'._DB_PREFIX_.'layered_indexable_attribute_lang` (
|
||||
CREATE TABLE `'._DB_PREFIX_.'layered_indexable_attribute_lang_value` (
|
||||
`id_attribute` INT NOT NULL,
|
||||
`id_lang` INT NOT NULL,
|
||||
`url_name` VARCHAR(20),
|
||||
@@ -175,9 +175,9 @@ class BlockLayered extends Module
|
||||
INSERT INTO `'._DB_PREFIX_.'layered_indexable_feature`
|
||||
SELECT id_feature, 1 FROM `'._DB_PREFIX_.'feature`');
|
||||
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature_lang`');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature_lang_value`');
|
||||
Db::getInstance()->Execute('
|
||||
CREATE TABLE `'._DB_PREFIX_.'layered_indexable_feature_lang` (
|
||||
CREATE TABLE `'._DB_PREFIX_.'layered_indexable_feature_lang_value` (
|
||||
`id_feature` INT NOT NULL,
|
||||
`id_lang` INT NOT NULL,
|
||||
`url_name` VARCHAR(20) NOT NULL,
|
||||
@@ -185,9 +185,9 @@ class BlockLayered extends Module
|
||||
PRIMARY KEY (`id_feature`, `id_lang`)) ENGINE = '._MYSQL_ENGINE_);
|
||||
|
||||
// Features values
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature_value_lang`');
|
||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature_value_lang_value`');
|
||||
Db::getInstance()->Execute('
|
||||
CREATE TABLE `'._DB_PREFIX_.'layered_indexable_feature_value_lang` (
|
||||
CREATE TABLE `'._DB_PREFIX_.'layered_indexable_feature_value_lang_value` (
|
||||
`id_feature_value` INT NOT NULL,
|
||||
`id_lang` INT NOT NULL,
|
||||
`url_name` VARCHAR(20),
|
||||
@@ -261,9 +261,9 @@ class BlockLayered extends Module
|
||||
INNER JOIN '._DB_PREFIX_.'attribute a ON (a.id_attribute_group = ag.id_attribute_group)
|
||||
INNER JOIN '._DB_PREFIX_.'attribute_lang al ON (al.id_attribute = a.id_attribute)
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_group liag ON (liag.id_attribute_group = a.id_attribute_group)
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_group_lang liagl
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value liagl
|
||||
ON (liagl.id_attribute_group = ag.id_attribute_group AND liagl.id_lang = '.(int)$filter['id_lang'].')
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_lang lial
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_lang_value lial
|
||||
ON (lial.id_attribute = a.id_attribute AND lial.id_lang = '.(int)$filter['id_lang'].')
|
||||
WHERE a.id_attribute_group = '.(int)$filter['id_value'].' AND agl.id_lang = al.id_lang AND agl.id_lang = '.(int)$filter['id_lang']);
|
||||
foreach ($attributes as $attribute)
|
||||
@@ -291,9 +291,9 @@ class BlockLayered extends Module
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature lif ON (lif.id_feature = fl.id_feature)
|
||||
INNER JOIN '._DB_PREFIX_.'feature_value fv ON (fv.id_feature = fl.id_feature)
|
||||
INNER JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = fv.id_feature_value)
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_lang lifl
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_lang_value lifl
|
||||
ON (lifl.id_feature = fl.id_feature AND lifl.id_lang = '.(int)$filter['id_lang'].')
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_value_lang lifvl
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_value_lang_value lifvl
|
||||
ON (lifvl.id_feature_value = fvl.id_feature_value AND lifvl.id_lang = '.(int)$filter['id_lang'].')
|
||||
WHERE fl.id_feature = '.(int)$filter['id_value'].' AND fvl.id_lang = fl.id_lang AND fvl.id_lang = '.(int)$filter['id_lang']);
|
||||
foreach ($features as $feature)
|
||||
@@ -477,13 +477,13 @@ class BlockLayered extends Module
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature WHERE id_feature = '.(int)$params['id_feature']);
|
||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature VALUES ('.(int)$params['id_feature'].', '.(int)Tools::getValue('layered_indexable').')');
|
||||
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_lang WHERE id_feature = '.(int)$params['id_feature']); // don't care about the id_lang
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_lang_value WHERE id_feature = '.(int)$params['id_feature']); // don't care about the id_lang
|
||||
foreach (Language::getLanguages(false) as $language)
|
||||
{
|
||||
// Data are validated by method "hookPostProcessFeature"
|
||||
$id_lang = (int)$language['id_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)).'\',
|
||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_lang_value
|
||||
VALUES ('.(int)$params['id_feature'].', '.$id_lang.', \''.pSQL(Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang))).'\',
|
||||
\''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')');
|
||||
}
|
||||
}
|
||||
@@ -493,13 +493,13 @@ class BlockLayered extends Module
|
||||
if (!$params['id_feature_value'])
|
||||
return;
|
||||
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang WHERE id_feature_value = '.(int)$params['id_feature_value']); // don't care about the id_lang
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang_value WHERE id_feature_value = '.(int)$params['id_feature_value']); // don't care about the id_lang
|
||||
foreach (Language::getLanguages(false) as $language)
|
||||
{
|
||||
// Data are validated by method "hookPostProcessFeatureValue"
|
||||
$id_lang = (int)$language['id_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)).'\',
|
||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_value_lang_value
|
||||
VALUES ('.(int)$params['id_feature_value'].', '.$id_lang.', \''.pSQL(Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang))).'\',
|
||||
\''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')');
|
||||
}
|
||||
}
|
||||
@@ -508,7 +508,7 @@ class BlockLayered extends Module
|
||||
{
|
||||
if (!$params['id_feature_value'])
|
||||
return;
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang WHERE id_feature_value = '.(int)$params['id_feature_value']);
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang_value WHERE id_feature_value = '.(int)$params['id_feature_value']);
|
||||
}
|
||||
|
||||
public function hookPostProcessFeatureValue($params)
|
||||
@@ -523,7 +523,7 @@ class BlockLayered extends Module
|
||||
$langValue = array();
|
||||
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(
|
||||
'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang
|
||||
'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang_value
|
||||
WHERE id_feature_value = '.(int)$params['id_feature_value']);
|
||||
if ($result)
|
||||
foreach ($result as $data)
|
||||
@@ -565,13 +565,13 @@ class BlockLayered extends Module
|
||||
if (!$params['id_attribute'])
|
||||
return;
|
||||
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang WHERE id_attribute = '.(int)$params['id_attribute']); // don't care about the id_lang
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value WHERE id_attribute = '.(int)$params['id_attribute']); // don't care about the id_lang
|
||||
foreach (Language::getLanguages(false) as $language)
|
||||
{
|
||||
// Data are validated by method "hookPostProcessAttribute"
|
||||
$id_lang = (int)$language['id_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)).'\',
|
||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_lang_value
|
||||
VALUES ('.(int)$params['id_attribute'].', '.$id_lang.', \''.pSQL(Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang))).'\',
|
||||
\''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')');
|
||||
}
|
||||
}
|
||||
@@ -580,7 +580,7 @@ class BlockLayered extends Module
|
||||
{
|
||||
if (!$params['id_attribute'])
|
||||
return;
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang WHERE id_attribute = '.(int)$params['id_attribute']);
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value WHERE id_attribute = '.(int)$params['id_attribute']);
|
||||
}
|
||||
|
||||
public function hookPostProcessAttribute($params)
|
||||
@@ -595,7 +595,7 @@ class BlockLayered extends Module
|
||||
$langValue = array();
|
||||
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(
|
||||
'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_attribute_lang
|
||||
'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value
|
||||
WHERE id_attribute = '.(int)$params['id_attribute']);
|
||||
if ($result)
|
||||
foreach ($result as $data)
|
||||
@@ -652,13 +652,13 @@ class BlockLayered extends Module
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group WHERE id_attribute_group = '.(int)$params['id_attribute_group']);
|
||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_group VALUES ('.(int)$params['id_attribute_group'].', '.(int)Tools::getValue('layered_indexable').')');
|
||||
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang WHERE id_attribute_group = '.(int)$params['id_attribute_group']); // don't care about the id_lang
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value WHERE id_attribute_group = '.(int)$params['id_attribute_group']); // don't care about the id_lang
|
||||
foreach (Language::getLanguages(false) as $language)
|
||||
{
|
||||
// Data are validated by method "hookPostProcessAttributeGroup"
|
||||
$id_lang = (int)$language['id_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)).'\',
|
||||
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value
|
||||
VALUES ('.(int)$params['id_attribute_group'].', '.$id_lang.', \''.pSQL(Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang))).'\',
|
||||
\''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')');
|
||||
}
|
||||
}
|
||||
@@ -690,7 +690,7 @@ class BlockLayered extends Module
|
||||
return;
|
||||
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group WHERE id_attribute_group = '.(int)$params['id_attribute_group']);
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang WHERE id_attribute_group = '.(int)$params['id_attribute_group']);
|
||||
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value WHERE id_attribute_group = '.(int)$params['id_attribute_group']);
|
||||
}
|
||||
|
||||
public function hookAttributeGroupForm($params)
|
||||
@@ -702,7 +702,7 @@ class BlockLayered extends Module
|
||||
$langValue = array();
|
||||
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(
|
||||
'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang
|
||||
'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value
|
||||
WHERE id_attribute_group = '.(int)$params['id_attribute_group']);
|
||||
if ($result)
|
||||
foreach ($result as $data)
|
||||
@@ -761,7 +761,7 @@ class BlockLayered extends Module
|
||||
$langValue = array();
|
||||
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(
|
||||
'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_feature_lang
|
||||
'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_feature_lang_value
|
||||
WHERE id_feature = '.(int)$params['id_feature']);
|
||||
if ($result)
|
||||
foreach ($result as $data)
|
||||
@@ -2084,9 +2084,9 @@ class BlockLayered extends Module
|
||||
AND agl.id_lang = '.(int)$cookie->id_lang.'
|
||||
LEFT JOIN '._DB_PREFIX_.'category_product cp ON (cp.id_product = p.id_product)
|
||||
INNER JOIN '._DB_PREFIX_.'category c ON (c.id_category = cp.id_category AND c.nleft >= '.(int)$parent->nleft.' AND c.nright <= '.(int)$parent->nright.')
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_group_lang liagl
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value liagl
|
||||
ON (liagl.id_attribute_group = lpa.id_attribute_group AND liagl.id_lang = '.(int)$cookie->id_lang.')
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_lang lial
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_attribute_lang_value lial
|
||||
ON (lial.id_attribute = lpa.id_attribute AND lial.id_lang = '.(int)$cookie->id_lang.') ';
|
||||
$sqlQuery['where'] = 'WHERE a.id_attribute_group = '.(int)$filter['id_value'].' ';
|
||||
$sqlQuery['group'] = '
|
||||
@@ -2107,9 +2107,9 @@ class BlockLayered extends Module
|
||||
LEFT JOIN '._DB_PREFIX_.'feature_lang fl ON (fl.id_feature = fp.id_feature AND fl.id_lang = '.(int)$cookie->id_lang.')
|
||||
INNER JOIN '._DB_PREFIX_.'feature_value fv ON (fv.id_feature_value = fp.id_feature_value AND (fv.custom IS NULL OR fv.custom = 0))
|
||||
LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = fp.id_feature_value AND fvl.id_lang = '.(int)$cookie->id_lang.')
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_lang lifl
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_lang_value lifl
|
||||
ON (lifl.id_feature = fp.id_feature AND lifl.id_lang = '.(int)$cookie->id_lang.')
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_value_lang lifvl
|
||||
LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_value_lang_value lifvl
|
||||
ON (lifvl.id_feature_value = fp.id_feature_value AND lifvl.id_lang = '.(int)$cookie->id_lang.') ';
|
||||
$sqlQuery['where'] = 'WHERE p.`active` = 1 AND fp.id_feature = '.(int)$filter['id_value'].' ';
|
||||
$sqlQuery['group'] = 'GROUP BY fv.id_feature_value ';
|
||||
@@ -2244,6 +2244,7 @@ class BlockLayered extends Module
|
||||
$conditionArray[$key]['checked'] = true;
|
||||
if (isset($products) && $products)
|
||||
foreach ($products as $product)
|
||||
if(isset($conditionArray[$product['condition']]))
|
||||
$conditionArray[$product['condition']]['nbr']++;
|
||||
$filterBlocks[] = array('type_lite' => 'condition', 'type' => 'condition', 'id_key' => 0, 'name' => $this->l('Condition'), 'values' => $conditionArray);
|
||||
break;
|
||||
|
||||
@@ -53,7 +53,7 @@ class CanadaPost extends CarrierModule
|
||||
{
|
||||
$this->name = 'canadapost';
|
||||
$this->tab = 'shipping_logistics';
|
||||
$this->version = '0.1';
|
||||
$this->version = '0.5';
|
||||
$this->author = 'PrestaShop';
|
||||
$this->limited_countries = array('ca');
|
||||
|
||||
@@ -1390,6 +1390,14 @@ class CanadaPost extends CarrierModule
|
||||
{
|
||||
// Init var
|
||||
$address = new Address($params->id_address_delivery);
|
||||
if (!Validate::isLoadedObject($address))
|
||||
{
|
||||
// If address is not loaded, we take data from shipping estimator module (if installed)
|
||||
global $cookie;
|
||||
$address->id_country = $cookie->id_country;
|
||||
$address->id_state = $cookie->id_state;
|
||||
$address->postcode = $cookie->postcode;
|
||||
}
|
||||
$recipient_country = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)($address->id_country));
|
||||
$recipient_state = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'state` WHERE `id_state` = '.(int)($address->id_state));
|
||||
$shipper_country = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)(Configuration::get('CP_CARRIER_COUNTRY')));
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<module>
|
||||
<name>canadapost</name>
|
||||
<displayName><![CDATA[Canada Post Carrier]]></displayName>
|
||||
<version><![CDATA[0.1]]></version>
|
||||
<version><![CDATA[0.5]]></version>
|
||||
<description><![CDATA[Offer your customers, different delivery methods with Canada Post]]></description>
|
||||
<author><![CDATA[PrestaShop]]></author>
|
||||
<tab><![CDATA[shipping_logistics]]></tab>
|
||||
|
||||
@@ -39,7 +39,7 @@ switch (Tools::getValue('method'))
|
||||
die(Tools::jsonEncode($carrierCompare->getStatesByIdCountry((int)Tools::getValue('id_country'))));
|
||||
break;
|
||||
case 'getCarriers':
|
||||
die(Tools::jsonEncode($carrierCompare->getCarriersListByIdZone((int)Tools::getValue('id_country'), (int)Tools::getValue('id_state', 0))));
|
||||
die(Tools::jsonEncode($carrierCompare->getCarriersListByIdZone((int)Tools::getValue('id_country'), (int)Tools::getValue('id_state', 0), Tools::safeOutput(Tools::getValue('zipcode', 0)))));
|
||||
break;
|
||||
case 'saveSelection':
|
||||
$errors = $carrierCompare->saveSelection((int)Tools::getValue('id_country'), (int)Tools::getValue('id_state', 0), Tools::getValue('zipcode', 0), (int)Tools::getValue('id_carrier', 0));
|
||||
|
||||
@@ -51,7 +51,7 @@ function updateCarriersList()
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: baseDir + 'modules/carriercompare/ajax.php',
|
||||
data: 'method=getCarriers&id_country=' + $('#id_country').val()+'&id_state=' + $('#id_state').val(),
|
||||
data: 'method=getCarriers&id_country=' + $('#id_country').val() + '&id_state=' + $('#id_state').val() + '&zipcode=' + $('#zipcode').val(),
|
||||
dataType: 'json',
|
||||
success: function(json) {
|
||||
$('#carriers_list').children().remove();
|
||||
@@ -135,4 +135,4 @@ $(document).ready(function() {
|
||||
});
|
||||
updateStateByIdCountry();
|
||||
updateCarriersList();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -34,7 +34,7 @@ class CarrierCompare extends Module
|
||||
{
|
||||
$this->name = 'carriercompare';
|
||||
$this->tab = 'shipping_logistics';
|
||||
$this->version = '1.0';
|
||||
$this->version = '1.1';
|
||||
$this->author = 'PrestaShop';
|
||||
$this->need_instance = 0;
|
||||
|
||||
@@ -96,8 +96,15 @@ class CarrierCompare extends Module
|
||||
/*
|
||||
** Get carriers by country id, called by the ajax process
|
||||
*/
|
||||
public function getCarriersListByIdZone($id_country, $id_state = 0)
|
||||
public function getCarriersListByIdZone($id_country, $id_state = 0, $zipcode = 0)
|
||||
{
|
||||
// cookie saving/updating
|
||||
$this->context->cookie->id_country = $id_country;
|
||||
if ($id_state != 0)
|
||||
$this->context->cookie->id_state = $id_state;
|
||||
if ($zipcode != 0)
|
||||
$this->context->cookie->postcode = $zipcode;
|
||||
|
||||
$id_zone = 0;
|
||||
if ($id_state != 0)
|
||||
$id_zone = State::getIdZone($id_state);
|
||||
@@ -106,7 +113,7 @@ class CarrierCompare extends Module
|
||||
|
||||
$carriers = Carrier::getCarriersForOrder((int)$id_zone);
|
||||
|
||||
return (sizeof($carriers) ? $carriers : array());
|
||||
return (count($carriers) ? $carriers : array());
|
||||
}
|
||||
|
||||
public function saveSelection($id_country, $id_state, $zipcode, $id_carrier)
|
||||
@@ -128,7 +135,7 @@ class CarrierCompare extends Module
|
||||
return $errors;
|
||||
|
||||
$ids_carrier = array();
|
||||
foreach (self::getCarriersListByIdZone($id_country, $id_state) as $carrier)
|
||||
foreach (self::getCarriersListByIdZone($id_country, $id_state, $zipcode) as $carrier)
|
||||
$ids_carrier[] = $carrier['id_carrier'];
|
||||
if (!in_array($id_carrier, $ids_carrier))
|
||||
$errors[] = $this->l('This carrier ID isn\'t available for your selection');
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
<p>
|
||||
<label for="zipcode">{l s='Zipcode' mod='carriercompare'}</label>
|
||||
<input type="text" name="zipcode" id="zipcode" value="{$zipcode|escape:'htmlall':'UTF-8'}"/>
|
||||
<input type="text" name="zipcode" id="zipcode" value="{$zipcode|escape:'htmlall':'UTF-8'}"/> ({l s='Needed for certain carriers' mod='carriercompare'})
|
||||
</p>
|
||||
|
||||
<div id="availableCarriers" style="display: none;">
|
||||
@@ -88,8 +88,8 @@
|
||||
<p class="warning center" id="noCarrier" style="display: none;">{l s='No carrier is available for this selection' mod='carriercompare'}</p>
|
||||
|
||||
<p class="center">
|
||||
<input class="exclusive_large" id="carriercompare_submit" type="submit" name="carriercompare_submit" value="{l s='Update my shipping option' mod='carriercompare'}"/>
|
||||
<input class="exclusive_large" id="carriercompare_submit" type="submit" name="carriercompare_submit" value="{l s='Refresh' mod='carriercompare'}"/>
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<module>
|
||||
<name>carriercompare</name>
|
||||
<displayName><![CDATA[Shipping Estimation]]></displayName>
|
||||
<version><![CDATA[1.0]]></version>
|
||||
<version><![CDATA[1.1]]></version>
|
||||
<description><![CDATA[Module to compare carrier possibilities before using the checkout process]]></description>
|
||||
<author><![CDATA[PrestaShop]]></author>
|
||||
<tab><![CDATA[shipping_logistics]]></tab>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<module>
|
||||
<name>fedexcarrier</name>
|
||||
<displayName><![CDATA[Fedex Carrier]]></displayName>
|
||||
<version><![CDATA[1.2.3]]></version>
|
||||
<version><![CDATA[1.2.4]]></version>
|
||||
<description><![CDATA[Offer your customers, different delivery methods with Fedex]]></description>
|
||||
<author><![CDATA[PrestaShop]]></author>
|
||||
<tab><![CDATA[shipping_logistics]]></tab>
|
||||
|
||||
@@ -56,7 +56,7 @@ class FedexCarrier extends CarrierModule
|
||||
{
|
||||
$this->name = 'fedexcarrier';
|
||||
$this->tab = 'shipping_logistics';
|
||||
$this->version = '1.2.3';
|
||||
$this->version = '1.2.4';
|
||||
$this->author = 'PrestaShop';
|
||||
$this->limited_countries = array('us');
|
||||
|
||||
@@ -594,7 +594,7 @@ class FedexCarrier extends CarrierModule
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="margin-form"><input class="button" name="submitSave" type="submit"></div>
|
||||
<div class="margin-form"><input class="button" name="submitSave" type="submit" value="'.$this->l('Configure').'"></div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
@@ -1563,6 +1563,14 @@ class FedexCarrier extends CarrierModule
|
||||
{
|
||||
// Init var
|
||||
$address = new Address($params->id_address_delivery);
|
||||
if (!Validate::isLoadedObject($address))
|
||||
{
|
||||
// If address is not loaded, we take data from shipping estimator module (if installed)
|
||||
global $cookie;
|
||||
$address->id_country = $cookie->id_country;
|
||||
$address->id_state = $cookie->id_state;
|
||||
$address->postcode = $cookie->postcode;
|
||||
}
|
||||
$recipient_country = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)($address->id_country));
|
||||
$recipient_state = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'state` WHERE `id_state` = '.(int)($address->id_state));
|
||||
$shipper_country = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)(Configuration::get('FEDEX_CARRIER_COUNTRY')));
|
||||
|
||||
@@ -63,7 +63,7 @@ class MRManagement extends MondialRelay
|
||||
SET `id_method` = '.(int)$this->_params['id_mr_method'].', ';
|
||||
if (is_array($this->_params['relayPointInfo']))
|
||||
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
||||
$query .= '`MR_Selected_'.pSQL($nameKey).'` = "'.pSQL($value).'", ';
|
||||
$query .= '`MR_Selected_'.MRTools::bqSQL($nameKey).'` = "'.pSQL($value).'", ';
|
||||
else // Clean the existing relay point data
|
||||
$query .= '
|
||||
MR_Selected_Num = NULL,
|
||||
@@ -82,11 +82,11 @@ class MRManagement extends MondialRelay
|
||||
(`id_customer`, `id_method`, `id_cart`, ';
|
||||
if (is_array($this->_params['relayPointInfo']))
|
||||
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
||||
$query .= '`MR_Selected_'.pSQL($nameKey).'`, ';
|
||||
$query .= '`MR_Selected_'.MRTools::bqSQL($nameKey).'`, ';
|
||||
$query = rtrim($query, ', ').') VALUES (
|
||||
'.$this->_params['id_customer'].',
|
||||
'.$this->_params['id_mr_method'].',
|
||||
'.$this->_params['id_cart'].', ';
|
||||
'.(int)$this->_params['id_customer'].',
|
||||
'.(int)$this->_params['id_mr_method'].',
|
||||
'.(int)$this->_params['id_cart'].', ';
|
||||
if (is_array($this->_params['relayPointInfo']))
|
||||
foreach($this->_params['relayPointInfo'] as $nameKey => $value)
|
||||
$query .= '"'.pSQL($value).'", ';
|
||||
|
||||
@@ -30,6 +30,9 @@
|
||||
*/
|
||||
class MRTools
|
||||
{
|
||||
/*
|
||||
** Replace all accented chars to normal
|
||||
*/
|
||||
static public function replaceAccentedCharacters($string)
|
||||
{
|
||||
if (function_exists('iconv'))
|
||||
@@ -46,6 +49,17 @@ class MRTools
|
||||
return $cleanedString;
|
||||
}
|
||||
|
||||
/*
|
||||
** Fix security and compatibility for PS < 1.4.5
|
||||
*/
|
||||
static function bqSQL($string)
|
||||
{
|
||||
return str_replace('`', '\`', pSQL($string));
|
||||
}
|
||||
|
||||
/*
|
||||
** Check zip code by country
|
||||
*/
|
||||
static public function checkZipcodeByCountry($zipcode, $params)
|
||||
{
|
||||
$id_country = $params['id_country'];
|
||||
|
||||
+1248
-1231
File diff suppressed because it is too large
Load Diff
@@ -59,7 +59,7 @@ class MondialRelay extends Module
|
||||
{
|
||||
$this->name = 'mondialrelay';
|
||||
$this->tab = 'shipping_logistics';
|
||||
$this->version = '1.7.5';
|
||||
$this->version = '1.7.5.1';
|
||||
|
||||
parent::__construct();
|
||||
|
||||
|
||||
@@ -138,9 +138,11 @@ class ProductComment extends ObjectModel
|
||||
.($last ? 'LIMIT 1' : '')
|
||||
);
|
||||
|
||||
if ($last)
|
||||
if (!$results)
|
||||
return false;
|
||||
elseif ($last)
|
||||
return array_shift($results);
|
||||
|
||||
else
|
||||
return $results;
|
||||
}
|
||||
|
||||
|
||||
@@ -950,10 +950,10 @@ class shopimporter extends ImportModule
|
||||
INNER JOIN
|
||||
'._DB_PREFIX_.'category c2
|
||||
ON
|
||||
c.id_parent = c2.id_category_'.pSQL($moduleName).'
|
||||
c.id_parent = c2.`id_category_'.bqSQL($moduleName).'`
|
||||
SET
|
||||
c.id_parent = c2.id_category
|
||||
WHERE c.id_category_'.pSQL($moduleName).' != 0');
|
||||
WHERE c.`id_category_'.bqSQL($moduleName).'` != 0');
|
||||
$category = new Category();
|
||||
$cats = $category->getSimpleCategories((int)Configuration::get('PS_LANG_DEFAULT'));
|
||||
foreach($cats as $cat)
|
||||
|
||||
@@ -87,7 +87,7 @@ class StatsSearch extends ModuleGraph
|
||||
function hookSearch($params)
|
||||
{
|
||||
$sql = 'INSERT INTO `'._DB_PREFIX_.'statssearch` (`id_shop`, `id_group_shop`, `keywords`, `results`, `date_add`)
|
||||
VALUES ('.$this->context->shop->getID().', '.$this->context->shop->getGroupID().', \''.pSQL($params['expr']).'\', '.(int)($params['total']).', NOW())';
|
||||
VALUES ('.$this->context->shop->getID(true).', '.$this->context->shop->getGroupID().', \''.pSQL($params['expr']).'\', '.(int)$params['total'].', NOW())';
|
||||
Db::getInstance()->Execute($sql);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,10 +25,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
include_once('../../config/config.inc.php');
|
||||
include_once('../../init.php');
|
||||
include_once(dirname(__FILE__).'/twenga.php');
|
||||
|
||||
@@ -25,10 +25,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class PrestashopStats
|
||||
{
|
||||
/**
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
* - compare an array of values to check if required fields are set.
|
||||
* - use the twenga API method and throw exceptions if error or exceptions occurred.
|
||||
* - Transform the xml response into PHP values.
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
abstract class TwengaFields
|
||||
|
||||
@@ -25,10 +25,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class TwengaFieldsGetSubscriptionLink extends TwengaFields
|
||||
{
|
||||
public function __construct()
|
||||
|
||||
@@ -25,10 +25,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class TwengaFieldsGetTrackingScript extends TwengaFields
|
||||
{
|
||||
public function __construct()
|
||||
|
||||
@@ -24,9 +24,5 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class TwengaFieldsOrderCancel extends TwengaFieldsOrderValidate
|
||||
{}
|
||||
|
||||
@@ -25,9 +25,5 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class TwengaFieldsOrderExist extends TwengaFieldsOrderValidate
|
||||
{}
|
||||
|
||||
@@ -25,10 +25,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class TwengaFieldsOrderValidate extends TwengaFields
|
||||
{
|
||||
public function __construct()
|
||||
|
||||
@@ -25,9 +25,5 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class TwengaFieldsSiteActivate extends TwengaFieldsSiteExist
|
||||
{}
|
||||
@@ -25,10 +25,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
**/
|
||||
|
||||
/**
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class TwengaFieldsSiteExist extends TwengaFields
|
||||
{
|
||||
public function __construct()
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
* This Class allow to use Twenga API.
|
||||
* See details for more infos.
|
||||
*
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
class TwengaObj
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
* 1. subscribe to their Ready to Sell engine,
|
||||
* 2. activate a tracking for order process if user has been used twenga engine,
|
||||
* 3. submit a xml feed of shop products to Twenga.
|
||||
* @author Nans Pellicari - Prestashop
|
||||
* @version 1.3
|
||||
*/
|
||||
|
||||
@@ -524,16 +523,16 @@ class Twenga extends PaymentModule
|
||||
*/
|
||||
public static function getCurrentCountryName()
|
||||
{
|
||||
$id_lang = ((isset(Context::getContext()->language->id)) ? Context::getContext()->language->id :
|
||||
((isset($_POST['id_lang'])) ? $_POST['id_lang'] : NULL));
|
||||
$id_lang = ((Context::getContext()->language) ? Context::getContext()->language->id :
|
||||
((isset($_POST['id_lang'])) ? (int)$_POST['id_lang'] : null));
|
||||
|
||||
if ($id_lang === NULL)
|
||||
return 'Undefined id_lang';
|
||||
$country = Db::getInstance()->ExecuteS('
|
||||
SELECT c.name as name
|
||||
FROM '._DB_PREFIX_.'country_lang as c
|
||||
WHERE c.id_lang = '.$id_lang.'
|
||||
AND c.id_country = '. Configuration::get('PS_COUNTRY_DEFAULT'));
|
||||
WHERE c.id_lang = '.(int)$id_lang.'
|
||||
AND c.id_country = '.(int)Configuration::get('PS_COUNTRY_DEFAULT'));
|
||||
|
||||
if (!isset($country[0]['name']))
|
||||
$country[0]['name'] = 'Undefined';
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<module>
|
||||
<name>upscarrier</name>
|
||||
<displayName><![CDATA[UPS Carrier]]></displayName>
|
||||
<version><![CDATA[1.2.1]]></version>
|
||||
<version><![CDATA[1.2.2]]></version>
|
||||
<description><![CDATA[Offer your customers, different delivery methods with UPS]]></description>
|
||||
<author><![CDATA[PrestaShop]]></author>
|
||||
<tab><![CDATA[shipping_logistics]]></tab>
|
||||
|
||||
@@ -55,7 +55,7 @@ class UpsCarrier extends CarrierModule
|
||||
{
|
||||
$this->name = 'upscarrier';
|
||||
$this->tab = 'shipping_logistics';
|
||||
$this->version = '1.2.1';
|
||||
$this->version = '1.2.2';
|
||||
$this->author = 'PrestaShop';
|
||||
$this->limited_countries = array('us');
|
||||
|
||||
@@ -1539,6 +1539,14 @@ class UpsCarrier extends CarrierModule
|
||||
{
|
||||
// Init var
|
||||
$address = new Address($params->id_address_delivery);
|
||||
if (!Validate::isLoadedObject($address))
|
||||
{
|
||||
// If address is not loaded, we take data from shipping estimator module (if installed)
|
||||
global $cookie;
|
||||
$address->id_country = $cookie->id_country;
|
||||
$address->id_state = $cookie->id_state;
|
||||
$address->postcode = $cookie->postcode;
|
||||
}
|
||||
$recipient_country = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)($address->id_country));
|
||||
$recipient_state = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'state` WHERE `id_state` = '.(int)($address->id_state));
|
||||
$shipper_country = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)(Configuration::get('UPS_CARRIER_COUNTRY')));
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<module>
|
||||
<name>uspscarrier</name>
|
||||
<displayName><![CDATA[U.S.P.S. Rate Calulator]]></displayName>
|
||||
<version><![CDATA[1.2]]></version>
|
||||
<version><![CDATA[1.2.1]]></version>
|
||||
<description><![CDATA[Calculates shipping rates for United States Postal Service for Domestic shipping within the USA.]]></description>
|
||||
<author><![CDATA[PrestaShop]]></author>
|
||||
<tab><![CDATA[shipping_logistics]]></tab>
|
||||
|
||||
@@ -53,7 +53,7 @@ class UspsCarrier extends CarrierModule
|
||||
{
|
||||
$this->name = 'uspscarrier';
|
||||
$this->tab = 'shipping_logistics';
|
||||
$this->version = '1.2';
|
||||
$this->version = '1.2.1';
|
||||
$this->author = 'PrestaShop';
|
||||
$this->limited_countries = array('us');
|
||||
|
||||
@@ -1557,6 +1557,14 @@ class UspsCarrier extends CarrierModule
|
||||
{
|
||||
// Init var
|
||||
$address = new Address($params->id_address_delivery);
|
||||
if (!Validate::isLoadedObject($address))
|
||||
{
|
||||
// If address is not loaded, we take data from shipping estimator module (if installed)
|
||||
global $cookie;
|
||||
$address->id_country = $cookie->id_country;
|
||||
$address->id_state = $cookie->id_state;
|
||||
$address->postcode = $cookie->postcode;
|
||||
}
|
||||
$recipient_country = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)($address->id_country));
|
||||
$recipient_state = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'state` WHERE `id_state` = '.(int)($address->id_state));
|
||||
$shipper_country = Db::getInstance()->getRow('SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)(Configuration::get('USPS_CARRIER_COUNTRY')));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
@@ -33,14 +33,15 @@
|
||||
|
||||
<h3>{l s='To find a product, please type its name in the field below'}</h3>
|
||||
|
||||
<form action="{$link->getPageLink('search')}', " method="post" class="std">
|
||||
<form action="{$link->getPageLink('search')}" method="get" class="std">
|
||||
<fieldset>
|
||||
<p>
|
||||
<label for="search">{l s='Search our product catalog:'}</label>
|
||||
<input id="search_query" name="search_query" type="text" />
|
||||
<input type="submit" name="Submit" value="OK" class="button_small" />
|
||||
<input id="search_query" class="page404_input" name="search_query" type="text" />
|
||||
<input type="submit" name="Submit" value="{l s='Search'}" class="page404_input button_small" />
|
||||
</p>
|
||||
</fieldset>
|
||||
<div class="clear"></div>
|
||||
</form>
|
||||
|
||||
<p><a href="{$base_dir}" title="{l s='Home'}"><img src="{$img_dir}icon/home.gif" alt="{l s='Home'}" class="icon" /></a><a href="{$base_dir}" title="{l s='Home'}">{l s='Home'}</a></p>
|
||||
|
||||
@@ -1507,3 +1507,4 @@ div.star_hover a, div.star a:hover { background-position: 0 -32px }
|
||||
border: 2px solid #D0D3D8;
|
||||
}
|
||||
|
||||
.page404_input { float: left; }
|
||||
Reference in New Issue
Block a user