// Normalize some classes

This commit is contained in:
rMalie
2012-01-23 15:25:43 +00:00
parent 768cf756c8
commit 59e5dfe9bf
19 changed files with 414 additions and 334 deletions
+5 -5
View File
@@ -377,8 +377,9 @@ class ProductCore extends ObjectModel
const CUSTOMIZE_FILE = 0;
const CUSTOMIZE_TEXTFIELD = 1;
// Note: prefix is "PTYPE" because TYPE_ is used in ObjectModel (definition)
/**
* Note: prefix is "PTYPE" because TYPE_ is used in ObjectModel (definition)
*/
const PTYPE_SIMPLE = 0;
const PTYPE_PACK = 1;
const PTYPE_VIRTUAL = 2;
@@ -1245,7 +1246,6 @@ class ProductCore extends ObjectModel
public function updateAttribute($id_product_attribute, $wholesale_price, $price, $weight, $unit, $ecotax,
$id_images, $reference, $ean13, $default, $location = null, $upc = null, $minimal_quantity, $available_date)
{
$price = str_replace(',', '.', $price);
$weight = str_replace(',', '.', $weight);
@@ -2369,7 +2369,7 @@ class ProductCore extends ObjectModel
}
$result = self::$_pricesLevel2[$cache_id_2];
if (!$specific_price || $specific_price['price'] ==0)
if (!$specific_price || $specific_price['price'] == 0)
$price = (float)$result['price'];
else
$price = (float)$specific_price['price'];
@@ -3386,7 +3386,7 @@ class ProductCore extends ObjectModel
$row['attribute_price'] = 0;
if (isset($row['id_product_attribute']) && $row['id_product_attribute'])
$row['attribute_price'] = (float)Product::getProductAttributePrice($row['id_product_attribute']);
$row['attribute_price'] = (float)Product::getProductAttributePrice($row['id_product_attribute']);
$row['price_tax_exc'] = Product::getPriceStatic(
(int)$row['id_product'],
+42 -36
View File
@@ -103,9 +103,9 @@ class ProductDownloadCore extends ObjectModel
return $fields;
}
public function add($autodate = true, $nullValues = false)
public function add($autodate = true, $null_values = false)
{
if (parent::add($autodate, $nullValues))
if (parent::add($autodate, $null_values))
{
// Set cache of feature detachable to true
if ($this->active)
@@ -115,9 +115,9 @@ class ProductDownloadCore extends ObjectModel
return false;
}
public function update($nullValues = false)
public function update($null_values = false)
{
if (parent::update($nullValues))
if (parent::update($null_values))
{
// Refresh cache of feature detachable because the row can be deactive
Configuration::updateGlobalValue('PS_VIRTUAL_PROD_FEATURE_ACTIVE', ProductDownload::isCurrentlyUsed($this->def['table'], true));
@@ -126,9 +126,9 @@ class ProductDownloadCore extends ObjectModel
return false;
}
public function delete($deleteFile = false)
public function delete($delete = false)
{
if ($deleteFile)
if ($delete)
return $this->deleteFile();
return true;
}
@@ -139,14 +139,13 @@ class ProductDownloadCore extends ObjectModel
*
* @return boolean
*/
public function deleteFile($id_product_download = NULL)
public function deleteFile($id_product_download = null)
{
if (!$this->checkFile())
return false;
return unlink(_PS_DOWNLOAD_DIR_.$this->filename) && Db::getInstance()->Execute('DELETE
FROM `'._DB_PREFIX_.'product_download`
WHERE `id_product_download` = '.(int)$id_product_download);
return unlink(_PS_DOWNLOAD_DIR_.$this->filename)
&& Db::getInstance()->delete(_DB_PREFIX_.'product_download', 'id_product_download = '.(int)$id_product_download);
}
/**
@@ -202,13 +201,17 @@ class ProductDownloadCore extends ObjectModel
{
if (!ProductDownload::isFeatureActive())
return false;
if (array_key_exists($id_product_attribute, self::$_productIds))
return self::$_productIds[$id_product];
return self::$_productIds[$id_product];
self::$_productIds[$id_product_attribute] = (int)Db::getInstance()->getValue('
SELECT `id_product_download`
FROM `'._DB_PREFIX_.'product_download`
WHERE `id_product` = '.(int)$id_product.'
AND `id_product_attribute` = '.(int)$id_product_attribute.' AND `active` = 1');
SELECT `id_product_download`
FROM `'._DB_PREFIX_.'product_download`
WHERE `id_product` = '.(int)$id_product.'
AND `id_product_attribute` = '.(int)$id_product_attribute.'
AND `active` = 1'
);
return self::$_productIds[$id_product_attribute];
}
@@ -228,7 +231,7 @@ class ProductDownloadCore extends ObjectModel
FROM `'._DB_PREFIX_.'product_download`
WHERE `id_product` = '.(int)$id_product.' AND `active` = 1');
}
/**
* Return the result from an id_product_attribute
*
@@ -272,12 +275,13 @@ class ProductDownloadCore extends ObjectModel
public static function getFilenameFromIdProduct($id_product)
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `filename`
FROM `'._DB_PREFIX_.'product_download`
WHERE `id_product` = '.(int)$id_product.'
AND `active` = 1');
SELECT `filename`
FROM `'._DB_PREFIX_.'product_download`
WHERE `id_product` = '.(int)$id_product.'
AND `active` = 1
');
}
/**
* Return the filename from an id_product_attribute
*
@@ -288,11 +292,12 @@ class ProductDownloadCore extends ObjectModel
public static function getFilenameFromIdAttribute($id_product, $id_product_attribute)
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `filename`
FROM `'._DB_PREFIX_.'product_download`
WHERE `id_product` = '.(int)$id_product.'
AND `id_product_attribute` = '.(int)$id_product_attribute.'
AND `active` = 1');
SELECT `filename`
FROM `'._DB_PREFIX_.'product_download`
WHERE `id_product` = '.(int)$id_product.'
AND `id_product_attribute` = '.(int)$id_product_attribute.'
AND `active` = 1
');
}
/**
@@ -319,7 +324,7 @@ class ProductDownloadCore extends ObjectModel
*/
public function getTextLink($admin = true, $hash = false)
{
$key = $this->filename . '-' . ($hash ? $hash : 'orderdetail');
$key = $this->filename.'-'.($hash ? $hash : 'orderdetail');
$link = ($admin) ? 'get-file-admin.php?' : _PS_BASE_URL_.__PS_BASE_URI__.'index.php?controller=get-file&';
$link .= ($admin) ? 'file='.$this->filename : 'key='.$key;
return $link;
@@ -328,17 +333,18 @@ class ProductDownloadCore extends ObjectModel
/**
* Return html link
*
* @param string $class CSS selector (optionnal)
* @param bool $admin specific to backend (optionnal)
* @param string $hash hash code in table order detail (optionnal)
* @param string $class CSS selector
* @param bool $admin specific to backend
* @param bool $hash hash code in table order detail
* @return string Html all the code for print a link to the file
*/
public function getHtmlLink($class=false, $admin=true, $hash=false)
public function getHtmlLink($class = false, $admin = true, $hash = false)
{
$link = $this->getTextLink($admin, $hash);
$html = '<a href="'.$link.'" title=""';
if ($class) $html.= ' class="'.$class.'"';
$html.= '>'.$this->display_filename.'</a>';
if ($class)
$html .= ' class="'.$class.'"';
$html .= '>'.$this->display_filename.'</a>';
return $html;
}
@@ -349,9 +355,9 @@ class ProductDownloadCore extends ObjectModel
*/
public function getDeadline()
{
if (!(int)($this->nb_days_accessible))
if (!(int)$this->nb_days_accessible)
return '0000-00-00 00:00:00';
$timestamp = strtotime('+'.(int)($this->nb_days_accessible).' day');
$timestamp = strtotime('+'.(int)$this->nb_days_accessible.' day');
return date('Y-m-d H:i:s', $timestamp);
}
+54 -39
View File
@@ -44,7 +44,7 @@ class ProductSaleCore
** Get number of actives products sold
** @return int number of actives products listed in product_sales
*/
static public function getNbSales(Context $context = null)
public static function getNbSales(Context $context = null)
{
if (!$context)
$context = Context::getContext();
@@ -61,32 +61,38 @@ class ProductSaleCore
** Get required informations on best sales products
**
** @param integer $id_lang Language id
** @param integer $pageNumber Start from (optional)
** @param integer $nbProducts Number of products to return (optional)
** @param integer $page_number Start from (optional)
** @param integer $nb_products Number of products to return (optional)
** @return array from Product::getProductProperties
*/
static public function getBestSales($id_lang, $pageNumber = 0, $nbProducts = 10, $orderBy = NULL, $orderWay = NULL, Context $context = null)
public static function getBestSales($id_lang, $page_number = 0, $nb_products = 10, $order_by = null, $order_way = null, Context $context = null)
{
if (!$context)
$context = Context::getContext();
if ($pageNumber < 0) $pageNumber = 0;
if ($nbProducts < 1) $nbProducts = 10;
if (empty($orderBy) || $orderBy == 'position') $orderBy = 'sales';
if (empty($orderWay)) $orderWay = 'DESC';
if ($page_number < 0) $page_number = 0;
if ($nb_products < 1) $nb_products = 10;
if (empty($order_by) || $order_by == 'position') $order_by = 'sales';
if (empty($order_way)) $order_way = 'DESC';
$groups = FrontController::getCurrentCustomerGroups();
$sqlGroups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
$sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
$interval = Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20;
$sql = 'SELECT p.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity,
pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, m.`name` AS manufacturer_name, p.`id_manufacturer` as id_manufacturer,
pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`,
pl.`meta_keywords`, pl.`meta_title`, pl.`name`,
m.`name` AS manufacturer_name, p.`id_manufacturer` as id_manufacturer,
i.`id_image`, il.`legend`,
ps.`quantity` AS sales, t.`rate`, pl.`meta_keywords`, pl.`meta_title`, pl.`meta_description`,
DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new
DATEDIFF(p.`date_add`, DATE_SUB(NOW(),
INTERVAL '.$interval.' DAY)) > 0 AS new
FROM `'._DB_PREFIX_.'product_sale` ps
LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product`
'.$context->shop->addSqlAssociation('product', 'p', false).'
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.$context->shop->addSqlRestrictionOnLang('pl').')
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
ON p.`id_product` = pl.`id_product`
AND pl.`id_lang` = '.(int)$id_lang.$context->shop->addSqlRestrictionOnLang('pl').'
LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`)
@@ -100,15 +106,15 @@ class ProductSaleCore
SELECT cp.`id_product`
FROM `'._DB_PREFIX_.'category_group` cg
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
WHERE cg.`id_group` '.$sqlGroups.'
WHERE cg.`id_group` '.$sql_groups.'
)
ORDER BY `'.pSQL($orderBy).'` '.pSQL($orderWay).'
LIMIT '.(int)($pageNumber * $nbProducts).', '.(int)$nbProducts;
ORDER BY `'.pSQL($order_by).'` '.pSQL($order_way).'
LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products;
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
if ($orderBy == 'price')
Tools::orderbyPrice($result,$orderWay);
if ($order_by == 'price')
Tools::orderbyPrice($result, $order_way);
if (!$result)
return false;
return Product::getProductsProperties($id_lang, $result);
@@ -118,41 +124,46 @@ class ProductSaleCore
** Get required informations on best sales products
**
** @param integer $id_lang Language id
** @param integer $pageNumber Start from (optional)
** @param integer $nbProducts Number of products to return (optional)
** @param integer $page_number Start from (optional)
** @param integer $nb_products Number of products to return (optional)
** @return array keys : id_product, link_rewrite, name, id_image, legend, sales, ean13, upc, link
*/
static public function getBestSalesLight($id_lang, $pageNumber = 0, $nbProducts = 10, Context $context = null)
public static function getBestSalesLight($id_lang, $page_number = 0, $nb_products = 10, Context $context = null)
{
if (!$context)
$context = Context::getContext();
if ($pageNumber < 0) $pageNumber = 0;
if ($nbProducts < 1) $nbProducts = 10;
if ($page_number < 0) $page_number = 0;
if ($nb_products < 1) $nb_products = 10;
$groups = FrontController::getCurrentCustomerGroups();
$sqlGroups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
$sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
$sql = 'SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, i.`id_image`, il.`legend`, ps.`quantity` AS sales, p.`ean13`, p.`upc`, cl.`link_rewrite` AS category
$sql = 'SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, i.`id_image`, il.`legend`,
ps.`quantity` AS sales, p.`ean13`, p.`upc`, cl.`link_rewrite` AS category
FROM `'._DB_PREFIX_.'product_sale` ps
LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product`
'.$context->shop->addSqlAssociation('product', 'p').'
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.$context->shop->addSqlRestrictionOnLang('pl').')
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
ON p.`id_product` = pl.`id_product`
AND pl.`id_lang` = '.(int)$id_lang.$context->shop->addSqlRestrictionOnLang('pl').'
LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (cl.`id_category` = p.`id_category_default` AND cl.`id_lang` = '.(int)$id_lang.$context->shop->addSqlRestrictionOnLang('cl').')
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl
ON cl.`id_category` = p.`id_category_default`
AND cl.`id_lang` = '.(int)$id_lang.$context->shop->addSqlRestrictionOnLang('cl').'
WHERE p.`active` = 1
AND p.`id_product` IN (
SELECT cp.`id_product`
FROM `'._DB_PREFIX_.'category_group` cg
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
WHERE cg.`id_group` '.$sqlGroups.'
WHERE cg.`id_group` '.$sql_groups.'
)
ORDER BY sales DESC
LIMIT '.(int)($pageNumber * $nbProducts).', '.(int)$nbProducts;
LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products;
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql))
return false;
foreach ($result AS &$row)
foreach ($result as &$row)
{
$row['link'] = $context->link->getProductLink($row['id_product'], $row['link_rewrite'], $row['category'], $row['ean13']);
$row['id_image'] = Product::defineProductImage($row, $id_lang);
@@ -165,25 +176,29 @@ class ProductSaleCore
return Db::getInstance()->execute('
INSERT INTO '._DB_PREFIX_.'product_sale
(`id_product`, `quantity`, `sale_nbr`, `date_upd`)
VALUES ('.(int)($product_id).', '.(int)($qty).', 1, NOW())
ON DUPLICATE KEY UPDATE `quantity` = `quantity` + '.(int)($qty).', `sale_nbr` = `sale_nbr` + 1, `date_upd` = NOW()');
VALUES ('.(int)$product_id.', '.(int)$qty.', 1, NOW())
ON DUPLICATE KEY UPDATE `quantity` = `quantity` + '.(int)$qty.', `sale_nbr` = `sale_nbr` + 1, `date_upd` = NOW()');
}
public static function getNbrSales($id_product)
{
$result = Db::getInstance()->getRow('SELECT `sale_nbr` FROM '._DB_PREFIX_.'product_sale WHERE `id_product` = '.(int)($id_product));
if (!$result OR empty($result) OR !key_exists('sale_nbr', $result))
$result = Db::getInstance()->getRow('SELECT `sale_nbr` FROM '._DB_PREFIX_.'product_sale WHERE `id_product` = '.(int)$id_product);
if (!$result || empty($result) || !key_exists('sale_nbr', $result))
return -1;
return (int)($result['sale_nbr']);
return (int)$result['sale_nbr'];
}
public static function removeProductSale($id_product, $qty = 1)
{
$nbrSales = ProductSale::getNbrSales($id_product);
if ($nbrSales > 1)
return Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product_sale SET `quantity` = `quantity` - '.(int)($qty).', `sale_nbr` = `sale_nbr` - 1, `date_upd` = NOW() WHERE `id_product` = '.(int)($id_product));
elseif ($nbrSales == 1)
return Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'product_sale WHERE `id_product` = '.(int)($id_product));
$total_sales = ProductSale::getNbrSales($id_product);
if ($total_sales > 1)
return Db::getInstance()->execute('
UPDATE '._DB_PREFIX_.'product_sale
SET `quantity` = `quantity` - '.(int)$qty.', `sale_nbr` = `sale_nbr` - 1, `date_upd` = NOW()
WHERE `id_product` = '.(int)$id_product
);
elseif ($total_sales == 1)
return Db::getInstance()->delete(_DB_PREFIX_.'product_sale', 'id_product = '.(int)$id_product);
return true;
}
}
+25 -19
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
@@ -28,7 +28,7 @@
class ProfileCore extends ObjectModel
{
/** @var string Name */
public $name;
public $name;
/**
* @see ObjectModel::$definition
@@ -55,7 +55,7 @@ class ProfileCore extends ObjectModel
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT p.`id_profile`, `name`
FROM `'._DB_PREFIX_.'profile` p
LEFT JOIN `'._DB_PREFIX_.'profile_lang` pl ON (p.`id_profile` = pl.`id_profile` AND `id_lang` = '.(int)($id_lang).')
LEFT JOIN `'._DB_PREFIX_.'profile_lang` pl ON (p.`id_profile` = pl.`id_profile` AND `id_lang` = '.(int)$id_lang.')
ORDER BY `id_profile` ASC');
}
@@ -64,29 +64,35 @@ class ProfileCore extends ObjectModel
*
* @return string Profile
*/
public static function getProfile($id_profile, $id_lang = NULL)
public static function getProfile($id_profile, $id_lang = null)
{
if ($id_lang == NULL)
if (!$id_lang)
$id_lang = Configuration::get('PS_LANG_DEFAULT');
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `name`
FROM `'._DB_PREFIX_.'profile` p
LEFT JOIN `'._DB_PREFIX_.'profile_lang` pl ON (p.`id_profile` = pl.`id_profile`)
WHERE p.`id_profile` = '.(int)$id_profile.'
AND pl.`id_lang` = '.(int)$id_lang);
SELECT `name`
FROM `'._DB_PREFIX_.'profile` p
LEFT JOIN `'._DB_PREFIX_.'profile_lang` pl ON (p.`id_profile` = pl.`id_profile`)
WHERE p.`id_profile` = '.(int)$id_profile.'
AND pl.`id_lang` = '.(int)$id_lang
);
}
public function add($autodate = true, $nullValues = false)
public function add($autodate = true, $null_values = false)
{
if (parent::add($autodate, true))
return (
Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'access (SELECT '.(int)$this->id.', id_tab, 0, 0, 0, 0 FROM '._DB_PREFIX_.'tab)')
&& Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'module_access (`id_profile`, `id_module`, `configure`, `view`) (SELECT '.(int)$this->id.', id_module, 0, 1 FROM '._DB_PREFIX_.'module)')
);
if (parent::add($autodate, true))
{
$result = Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'access (SELECT '.(int)$this->id.', id_tab, 0, 0, 0, 0 FROM '._DB_PREFIX_.'tab)');
$result &= Db::getInstance()->execute('
INSERT INTO '._DB_PREFIX_.'module_access
(`id_profile`, `id_module`, `configure`, `view`)
(SELECT '.(int)$this->id.', id_module, 0, 1 FROM '._DB_PREFIX_.'module)
');
return $result;
}
return false;
}
public function delete()
{
if (parent::delete())
@@ -114,7 +120,7 @@ class ProfileCore extends ObjectModel
WHERE `id_profile` = '.(int)$id_profile);
self::$_cache_accesses[$id_profile] = array();
foreach ($result AS $row)
foreach ($result as $row)
{
if (!isset(self::$_cache_accesses[$id_profile][$row['id_tab']]))
self::$_cache_accesses[$id_profile][$row['id_tab']] = array();
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
+12 -13
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
@@ -27,9 +27,9 @@
class RangePriceCore extends ObjectModel
{
public $id_carrier;
public $delimiter1;
public $delimiter2;
public $id_carrier;
public $delimiter1;
public $delimiter2;
/**
* @see ObjectModel::$definition
@@ -62,10 +62,10 @@ class RangePriceCore extends ObjectModel
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT *
FROM `'._DB_PREFIX_.'range_price`
WHERE `id_carrier` = '.(int)($id_carrier).'
WHERE `id_carrier` = '.(int)$id_carrier.'
ORDER BY `delimiter1` ASC');
}
/**
* Override add to create delivery value for all zones
* @see classes/ObjectModelCore::add()
@@ -78,20 +78,19 @@ class RangePriceCore extends ObjectModel
{
if (!parent::add($autodate, $null_values) || !Validate::isLoadedObject($this))
return false;
$carrier = new Carrier((int)$this->id_carrier);
$priceList = array();
$price_list = array();
foreach ($carrier->getZones() as $zone)
$priceList[] = array(
$price_list[] = array(
'id_range_price' => (int)$this->id,
'id_range_weight' => 0,
'id_carrier' => (int)$this->id_carrier,
'id_zone' => (int)$zone['id_zone'],
'price' => 0,
);
$carrier->addDeliveryPrice($priceList);
$carrier->addDeliveryPrice($price_list);
return true;
}
}
}
+11 -12
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
@@ -27,9 +27,9 @@
class RangeWeightCore extends ObjectModel
{
public $id_carrier;
public $delimiter1;
public $delimiter2;
public $id_carrier;
public $delimiter1;
public $delimiter2;
/**
* @see ObjectModel::$definition
@@ -62,10 +62,10 @@ class RangeWeightCore extends ObjectModel
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT *
FROM `'._DB_PREFIX_.'range_weight`
WHERE `id_carrier` = '.(int)($id_carrier).'
WHERE `id_carrier` = '.(int)$id_carrier.'
ORDER BY `delimiter1` ASC');
}
/**
* Override add to create delivery value for all zones
* @see classes/ObjectModelCore::add()
@@ -78,20 +78,19 @@ class RangeWeightCore extends ObjectModel
{
if (!parent::add($autodate, $null_values) || !Validate::isLoadedObject($this))
return false;
$carrier = new Carrier((int)$this->id_carrier);
$priceList = array();
$price_list = array();
foreach ($carrier->getZones() as $zone)
$priceList[] = array(
$price_list[] = array(
'id_range_price' => 0,
'id_range_weight' => (int)$this->id,
'id_carrier' => (int)$this->id_carrier,
'id_zone' => (int)$zone['id_zone'],
'price' => 0,
);
$carrier->addDeliveryPrice($priceList);
$carrier->addDeliveryPrice($price_list);
return true;
}
}
+22 -20
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
@@ -79,9 +79,9 @@ class ReferrerCore extends ObjectModel
AND (r.http_referer_regexp_not IS NULL OR r.http_referer_regexp_not = \'\' OR cs.http_referer NOT REGEXP r.http_referer_regexp_not)
AND (r.request_uri_regexp_not IS NULL OR r.request_uri_regexp_not = \'\' OR cs.request_uri NOT REGEXP r.request_uri_regexp_not)';
public function add($autodate = true, $nullValues = false)
public function add($autodate = true, $null_values = false)
{
if (!($result = parent::add($autodate, $nullValues)))
if (!($result = parent::add($autodate, $null_values)))
return false;
Referrer::refreshCache(array(array('id_referrer' => $this->id)));
Referrer::refreshIndex(array(array('id_referrer' => $this->id)));
@@ -334,22 +334,24 @@ class ReferrerCore extends ObjectModel
if ((int)$id_product && !$stats_visits['visits'] && !$stats_sales['orders'])
exit;
$json_array = array();
$json_array[] = '"id_product":"'.(int)$product->id.'"';
$json_array[] = '"product_name":"'.addslashes($product->name).'"';
$json_array[] = '"uniqs":"'.(int)$stats_visits['uniqs'].'"';
$json_array[] = '"visitors":"'.(int)$stats_visits['visitors'].'"';
$json_array[] = '"visits":"'.(int)$stats_visits['visits'].'"';
$json_array[] = '"pages":"'.(int)$stats_visits['pages'].'"';
$json_array[] = '"registrations":"'.(int)$registrations.'"';
$json_array[] = '"orders":"'.(int)$stats_sales['orders'].'"';
$json_array[] = '"sales":"'.Tools::displayPrice($stats_sales['sales'], $currency).'"';
$json_array[] = '"cart":"'.Tools::displayPrice(((int)$stats_sales['orders'] ? $stats_sales['sales'] / (int)$stats_sales['orders'] : 0), $currency).'"';
$json_array[] = '"reg_rate":"'.number_format((int)$stats_visits['uniqs'] ? (int)$registrations / (int)$stats_visits['uniqs'] : 0, 4, '.', '').'"';
$json_array[] = '"order_rate":"'.number_format((int)$stats_visits['uniqs'] ? (int)$stats_sales['orders'] / (int)$stats_visits['uniqs'] : 0, 4, '.', '').'"';
$json_array[] = '"click_fee":"'.Tools::displayPrice((int)$stats_visits['visits'] * $referrer->click_fee, $currency).'"';
$json_array[] = '"base_fee":"'.Tools::displayPrice($stats_sales['orders'] * $referrer->base_fee, $currency).'"';
$json_array[] = '"percent_fee":"'.Tools::displayPrice($stats_sales['sales'] * $referrer->percent_fee / 100, $currency).'"';
die ('[{'.implode(',', $json_array).'}]');
$json_array = array(
'id_product' => (int)$product->id,
'product_name' => addslashes($product->name),
'uniqs' => (int)$stats_visits['uniqs'],
'visitors' => (int)$stats_visits['visitors'],
'visits' => (int)$stats_visits['visits'],
'pages' => (int)$stats_visits['pages'],
'registrations' => (int)$registrations,
'orders' => (int)$stats_sales['orders'],
'sales' => Tools::displayPrice($stats_sales['sales'], $currency),
'cart' => Tools::displayPrice(((int)$stats_sales['orders'] ? $stats_sales['sales'] / (int)$stats_sales['orders'] : 0), $currency),
'reg_rate' => number_format((int)$stats_visits['uniqs'] ? (int)$registrations / (int)$stats_visits['uniqs'] : 0, 4, '.', ''),
'order_rate' => number_format((int)$stats_visits['uniqs'] ? (int)$stats_sales['orders'] / (int)$stats_visits['uniqs'] : 0, 4, '.', ''),
'click_fee' => Tools::displayPrice((int)$stats_visits['visits'] * $referrer->click_fee, $currency),
'base_fee' => Tools::displayPrice($stats_sales['orders'] * $referrer->base_fee, $currency),
'percent_fee' => Tools::displayPrice($stats_sales['sales'] * $referrer->percent_fee / 100, $currency),
);
die ('['.Tools::jsonEncode($json_array).']');
}
}
+18 -8
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
@@ -29,14 +29,19 @@ class RijndaelCore
{
protected $_key;
protected $_iv;
public function __construct($key, $iv)
{
$this->_key = $key;
$this->_iv = base64_decode($iv);
}
// Base64 is not required, but it is be more compact than urlencode
/**
* Base64 is not required, but it is be more compact than urlencode
*
* @param string $plaintext
* @return bool|string
*/
public function encrypt($plaintext)
{
$length = (ini_get('mbstring.func_overload') & 2) ? mb_strlen($plaintext, ini_get('default_charset')) : strlen($plaintext);
@@ -50,15 +55,20 @@ class RijndaelCore
{
if (ini_get('mbstring.func_overload') & 2)
{
$plainTextLength = intval(mb_substr($ciphertext, -6, 6, ini_get('default_charset')));
$length = intval(mb_substr($ciphertext, -6, 6, ini_get('default_charset')));
$ciphertext = mb_substr($ciphertext, 0, -6, ini_get('default_charset'));
return mb_substr(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->_key, base64_decode($ciphertext), MCRYPT_MODE_ECB, $this->_iv), 0, $plainTextLength, ini_get('default_charset'));
return mb_substr(
mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->_key, base64_decode($ciphertext), MCRYPT_MODE_ECB, $this->_iv),
0,
$length,
ini_get('default_charset')
);
}
else
{
$plainTextLength = intval(substr($ciphertext, -6));
$length = intval(substr($ciphertext, -6));
$ciphertext = substr($ciphertext, 0, -6);
return substr(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->_key, base64_decode($ciphertext), MCRYPT_MODE_ECB, $this->_iv), 0, $plainTextLength);
return substr(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->_key, base64_decode($ciphertext), MCRYPT_MODE_ECB, $this->_iv), 0, $length);
}
}
}
+58 -47
View File
@@ -28,19 +28,19 @@
class SceneCore extends ObjectModel
{
/** @var string Name */
public $name;
public $name;
/** @var boolean Active Scene */
public $active = true;
public $active = true;
/** @var array Zone for image map */
public $zones = array();
public $zones = array();
/** @var array list of category where this scene is available */
public $categories = array();
public $categories = array();
/** @var array Products */
public $products;
public $products;
/**
* @see ObjectModel::$definition
@@ -59,25 +59,25 @@ class SceneCore extends ObjectModel
protected static $feature_active = null;
public function __construct($id = NULL, $id_lang = NULL, $liteResult = true, $hideScenePosition = false)
public function __construct($id = null, $id_lang = null, $lite_result = true, $hide_scene_position = false)
{
parent::__construct($id, $id_lang);
if (!$liteResult)
$this->products = $this->getProducts(true, (int)($id_lang), false);
if ($hideScenePosition)
if (!$lite_result)
$this->products = $this->getProducts(true, (int)$id_lang, false);
if ($hide_scene_position)
$this->name = Scene::hideScenePosition($this->name);
$this->image_dir = _PS_SCENE_IMG_DIR_;
}
public function update($nullValues = false)
public function update($null_values = false)
{
if (!$this->updateZoneProducts())
return false;
if (!$this->updateCategories())
return false;
if (parent::update($nullValues))
if (parent::update($null_values))
{
// Refresh cache of feature detachable
Configuration::updateGlobalValue('PS_SCENE_FEATURE_ACTIVE', Scene::isCurrentlyUsed($this->def['table'], true));
@@ -87,14 +87,14 @@ class SceneCore extends ObjectModel
}
public function add($autodate = true, $nullValues = false)
public function add($autodate = true, $null_values = false)
{
if (!empty($this->zones))
$this->addZoneProducts($this->zones);
if (!empty($this->categories))
$this->addCategories($this->categories);
if (parent::add($autodate, $nullValues))
if (parent::add($autodate, $null_values))
{
// Put cache of feature detachable only if this new scene is active else we keep the old value
if ($this->active)
@@ -131,67 +131,73 @@ class SceneCore extends ObjectModel
public function addCategories($categories)
{
$result = true;
foreach ($categories AS $category)
$data = array();
foreach ($categories as $category)
{
if (!Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'scene_category` ( `id_scene` , `id_category`) VALUES ('.(int)($this->id).', '.(int)($category).')'))
$result = false;
$data[] = array(
'id_scene' => (int)$this->id,
'id_category' => (int)$category,
);
}
return $result;
return Db::getInstance()->autoExecute(_DB_PREFIX_.'scene_category', $data, 'INSERT');
}
public function deleteCategories()
{
return Db::getInstance()->execute('
DELETE FROM `'._DB_PREFIX_.'scene_category`
WHERE `id_scene` = '.(int)($this->id));
WHERE `id_scene` = '.(int)$this->id);
}
public function updateCategories()
{
if (!$this->deleteCategories())
return false;
if (!empty($this->categories) AND !$this->addCategories($this->categories))
if (!empty($this->categories) && !$this->addCategories($this->categories))
return false;
return true;
}
public function addZoneProducts($zones)
{
$result = true;
foreach ($zones AS $zone)
$data = array();
foreach ($zones as $zone)
{
// @todo use multiple insert
$sql = 'INSERT INTO `'._DB_PREFIX_.'scene_products` ( `id_scene` , `id_product` , `x_axis` , `y_axis` , `zone_width` , `zone_height`) VALUES
('.(int)($this->id).', '.(int)($zone['id_product']).', '.(int)($zone['x1']).', '.(int)($zone['y1']).', '.(int)($zone['width']).', '.(int)($zone['height']).')';
if (!Db::getInstance()->execute($sql))
$result = false;
$data[] = array(
'id_scene' => (int)$this->id,
'id_product' => (int)$zone['id_product'],
'x_axis' => (int)$zone['x1'],
'y_axis' => (int)$zone['y1'],
'zone_width' => (int)$zone['width'],
'zone_height' => (int)$zone['height'],
);
}
return $result;
return Db::getInstance()->autoExecute(_DB_PREFIX_.'scene_products', $data, 'INSERT');
}
public function deleteZoneProducts()
{
return Db::getInstance()->execute('
DELETE FROM `'._DB_PREFIX_.'scene_products`
WHERE `id_scene` = '.(int)($this->id));
WHERE `id_scene` = '.(int)$this->id);
}
public function updateZoneProducts()
{
if (!$this->deleteZoneProducts())
return false;
if ($this->zones AND !$this->addZoneProducts($this->zones))
if ($this->zones && !$this->addZoneProducts($this->zones))
return false;
return true;
}
/**
* Get all scenes of a category
*
* @return array Products
*/
public static function getScenes($id_category, $id_lang = NULL, $onlyActive = true, $liteResult = true, $hideScenePosition = true, Context $context = null)
* Get all scenes of a category
*
* @return array Products
*/
public static function getScenes($id_category, $id_lang = null, $only_active = true, $lite_result = true, $hide_scene_position = true, Context $context = null)
{
if (!Scene::isFeatureActive())
return array();
@@ -207,13 +213,13 @@ class SceneCore extends ObjectModel
LEFT JOIN `'._DB_PREFIX_.'scene_lang` sl ON (sl.id_scene = s.id_scene)
WHERE sc.id_category = '.(int)$id_category.'
AND sl.id_lang = '.(int)$id_lang
.($onlyActive ? ' AND s.active = 1' : '').'
.($only_active ? ' AND s.active = 1' : '').'
ORDER BY sl.name ASC';
$scenes = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
if (!$liteResult AND $scenes)
foreach($scenes AS &$scene)
$scene = new Scene($scene['id_scene'], $id_lang, false, $hideScenePosition);
if (!$lite_result && $scenes)
foreach ($scenes as &$scene)
$scene = new Scene($scene['id_scene'], $id_lang, false, $hide_scene_position);
return $scenes;
}
@@ -222,7 +228,7 @@ class SceneCore extends ObjectModel
*
* @return array Products
*/
public function getProducts($onlyActive = true, $id_lang = NULL, $liteResult = true, Context $context = null)
public function getProducts($only_active = true, $id_lang = null, $lite_result = true, Context $context = null)
{
if (!Scene::isFeatureActive())
return array();
@@ -235,15 +241,20 @@ class SceneCore extends ObjectModel
SELECT s.*
FROM `'._DB_PREFIX_.'scene_products` s
LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.id_product = s.id_product)
WHERE s.id_scene = '.(int)$this->id.($onlyActive ? ' AND p.active = 1' : ''));
WHERE s.id_scene = '.(int)$this->id.($only_active ? ' AND p.active = 1' : ''));
if (!$liteResult AND $products)
foreach ($products AS &$product)
if (!$lite_result && $products)
foreach ($products as &$product)
{
$product['details'] = new Product($product['id_product'], !$liteResult, $id_lang);
$product['link'] = $context->link->getProductLink($product['details']->id, $product['details']->link_rewrite, $product['details']->category, $product['details']->ean13);
$product['details'] = new Product($product['id_product'], !$lite_result, $id_lang);
$product['link'] = $context->link->getProductLink(
$product['details']->id,
$product['details']->link_rewrite,
$product['details']->category,
$product['details']->ean13
);
$cover = Product::getCover($product['details']->id);
if(is_array($cover))
if (is_array($cover))
$product = array_merge($cover, $product);
}
return $products;
@@ -260,7 +271,7 @@ class SceneCore extends ObjectModel
return Db::getInstance()->executeS('
SELECT `id_category`
FROM `'._DB_PREFIX_.'scene_category`
WHERE `id_scene` = '.(int)($id_scene));
WHERE `id_scene` = '.(int)$id_scene);
}
/**
+12 -12
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
@@ -26,7 +26,7 @@
*/
class SearchEngineCore extends ObjectModel
{
{
public $server;
public $getvar;
@@ -44,24 +44,24 @@ class SearchEngineCore extends ObjectModel
public static function getKeywords($url)
{
$parsedUrl = @parse_url($url);
if (!isset($parsedUrl['host']) OR !isset($parsedUrl['query']))
$parsed_url = @parse_url($url);
if (!isset($parsed_url['host']) || !isset($parsed_url['query']))
return false;
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT `server`, `getvar` FROM `'._DB_PREFIX_.'search_engine`');
foreach ($result as $row)
{
$host =& $row['server'];
$varname =& $row['getvar'];
if (strstr($parsedUrl['host'], $host))
if (strstr($parsed_url['host'], $host))
{
$kArray = array();
preg_match('/[^a-z]'.$varname.'=.+\&'.'/U', $parsedUrl['query'], $kArray);
if (empty($kArray[0]))
preg_match('/[^a-z]'.$varname.'=.+$'.'/', $parsedUrl['query'], $kArray);
if (empty($kArray[0]))
$array = array();
preg_match('/[^a-z]'.$varname.'=.+\&/U', $parsed_url['query'], $array);
if (empty($array[0]))
preg_match('/[^a-z]'.$varname.'=.+$/', $parsed_url['query'], $array);
if (empty($array[0]))
return false;
$kString = urldecode(str_replace('+', ' ', ltrim(substr(rtrim($kArray[0], '&'), strlen($varname) + 1), '=')));
return $kString;
$str = urldecode(str_replace('+', ' ', ltrim(substr(rtrim($array[0], '&'), strlen($varname) + 1), '=')));
return $str;
}
}
}
+9 -7
View File
@@ -120,7 +120,7 @@ class SpecificPriceCore extends ObjectModel
AND id_product_attribute='.(int)$id_product_attribute.'
AND id_cart='.(int)$id_cart);
}
public static function deleteByIdCart($id_cart, $id_product = false, $id_product_attribute = false)
{
return Db::getInstance()->Execute('
@@ -139,7 +139,9 @@ class SpecificPriceCore extends ObjectModel
AND id_cart='.(int)$id_cart);
}
// score generation for quantity discount
/**
* score generation for quantity discount
*/
protected static function _getScoreQuery($id_product, $id_shop, $id_currency, $id_country, $id_group, $id_customer)
{
$select = '(';
@@ -149,7 +151,7 @@ class SpecificPriceCore extends ObjectModel
$priority = SpecificPrice::getPriority($id_product);
foreach (array_reverse($priority) as $k => $field)
$select .= ' IF (`'.bqSQL($field).'` = '.(int)(${$field}).', '.pow(2, $k + 1).', 0) + ';
$select .= ' IF (`'.bqSQL($field).'` = '.(int)$$field.', '.pow(2, $k + 1).', 0) + ';
return rtrim($select, ' +').') AS `score`';
}
@@ -159,8 +161,8 @@ class SpecificPriceCore extends ObjectModel
if (!SpecificPrice::isFeatureActive())
return explode(';', Configuration::get('PS_SPECIFIC_PRICE_PRIORITIES'));
if (!isset(self::$_cache_priorities[(int)$id_product]))
{
if (!isset(self::$_cache_priorities[(int)$id_product]))
{
self::$_cache_priorities[(int)$id_product] = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `priority`, `id_specific_price_priority`
FROM `'._DB_PREFIX_.'specific_price_priority`
@@ -251,7 +253,7 @@ class SpecificPriceCore extends ObjectModel
return array();
$now = date('Y-m-d H:i:s');
$res = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
$res = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT *,
'.SpecificPrice::_getScoreQuery($id_product, $id_shop, $id_currency, $id_country, $id_group, $id_customer).'
FROM `'._DB_PREFIX_.'specific_price`
@@ -275,7 +277,7 @@ class SpecificPriceCore extends ObjectModel
$targeted_prices = array();
$last_quantity = null;
foreach($res as $specific_price)
foreach ($res as $specific_price)
{
if (!isset($last_quantity))
$last_quantity = $specific_price['from_quantity'];
+26 -11
View File
@@ -80,14 +80,25 @@ class SpecificPriceRuleCore extends ObjectModel
{
if (!is_array($conditions))
return;
if (!Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'specific_price_rule_condition_group` (`id_specific_price_rule_condition_group`, `id_specific_price_rule`)
VALUES(\'\', '.(int)$this->id.')'))
$result = Db::getInstance()->autoExecute(_DB_PREFIX_.'specific_price_rule_condition_group', array(
'id_specific_price_rule_condition_group' => '',
'id_specific_price_rule' => (int)$this->id
), 'INSERT');
if (!$result)
return false;
$id_specific_price_rule_condition_group = (int)Db::getInstance()->Insert_ID();
foreach ($conditions as $condition)
if (!Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'specific_price_rule_condition (id_specific_price_rule_condition, id_specific_price_rule_condition_group, type, value)
VALUES(\'\', '.(int)$id_specific_price_rule_condition_group.', \''.pSQL($condition['type']).'\', \''.pSQL($condition['value']).'\')'))
{
$result = Db::getInstance()->autoExecute(_DB_PREFIX_.'specific_price_rule_condition', array(
'id_specific_price_rule_condition' => '',
'id_specific_price_rule_condition_group' => (int)$id_specific_price_rule_condition_group,
'type' => $condition['type'],
'value' => $condition['value'],
), 'INSERT');
if (!$result)
return false;
}
return true;
}
@@ -113,14 +124,18 @@ class SpecificPriceRuleCore extends ObjectModel
public function getConditions()
{
$conditions = Db::getInstance()->executeS('SELECT sprd.*
FROM '._DB_PREFIX_.'specific_price_rule_condition_group sprdg
LEFT JOIN '._DB_PREFIX_.'specific_price_rule_condition sprd ON (sprd.id_specific_price_rule_condition_group = sprdg.id_specific_price_rule_condition_group)
WHERE sprdg.id_specific_price_rule='.(int)$this->id);
$conditions = Db::getInstance()->executeS('
SELECT g.*
FROM '._DB_PREFIX_.'specific_price_rule_condition_group g
LEFT JOIN '._DB_PREFIX_.'specific_price_rule_condition c
ON (c.id_specific_price_rule_condition_group = g.id_specific_price_rule_condition_group)
WHERE g.id_specific_price_rule='.(int)$this->id
);
$conditions_group = array();
if ($conditions)
{
foreach ($conditions AS &$condition)
foreach ($conditions as &$condition)
{
if ($condition['type'] == 'attribute')
$condition['id_attribute_group'] = Db::getInstance()->getValue('SELECT id_attribute_group
@@ -225,8 +240,8 @@ class SpecificPriceRuleCore extends ObjectModel
$specific_price->id_group = (int)$rule->id_group;
$specific_price->from_quantity = (int)$rule->from_quantity;
$specific_price->price = (int)$rule->price;
$specific_price->reduction_type = pSQL($rule->reduction_type);
$specific_price->reduction = ($rule->reduction_type == 'percentage' ? (float)($rule->reduction / 100) : (float)$rule->reduction);
$specific_price->reduction_type = $rule->reduction_type;
$specific_price->reduction = ($rule->reduction_type == 'percentage' ? $rule->reduction / 100 : (float)$rule->reduction);
$specific_price->from = $rule->from;
$specific_price->to = $rule->to;
+57 -53
View File
@@ -28,19 +28,19 @@
class StateCore extends ObjectModel
{
/** @var integer Country id which state belongs */
public $id_country;
public $id_country;
/** @var integer Zone id which state belongs */
public $id_zone;
public $id_zone;
/** @var string 2 letters iso code */
public $iso_code;
public $iso_code;
/** @var string Name */
public $name;
public $name;
/** @var boolean Status for delivery */
public $active = true;
public $active = true;
/**
* @see ObjectModel::$definition
@@ -74,36 +74,38 @@ class StateCore extends ObjectModel
}
/**
* Get a state name with its ID
*
* @param integer $id_state Country ID
* @return string State name
*/
* Get a state name with its ID
*
* @param integer $id_state Country ID
* @return string State name
*/
public static function getNameById($id_state)
{
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `name`
FROM `'._DB_PREFIX_.'state`
WHERE `id_state` = '.(int)($id_state));
SELECT `name`
FROM `'._DB_PREFIX_.'state`
WHERE `id_state` = '.(int)$id_state
);
return $result['name'];
}
return $result['name'];
}
/**
* Get a state id with its name
*
* @param string $id_state Country ID
* @return integer state id
*/
* Get a state id with its name
*
* @param string $id_state Country ID
* @return integer state id
*/
public static function getIdByName($state)
{
$result = Db::getInstance()->getRow('
SELECT `id_state`
FROM `'._DB_PREFIX_.'state`
WHERE `name` LIKE \''.pSQL($state).'\'');
{
$result = Db::getInstance()->getValue('
SELECT `id_state`
FROM `'._DB_PREFIX_.'state`
WHERE `name` LIKE \''.pSQL($state).'\'
');
return ((int)($result['id_state']));
}
return (int)$result;
}
/**
* Get a state id with its iso code
@@ -112,13 +114,13 @@ class StateCore extends ObjectModel
* @return integer state id
*/
public static function getIdByIso($iso_code)
{
{
return Db::getInstance()->getValue('
SELECT `id_state`
FROM `'._DB_PREFIX_.'state`
WHERE `iso_code` = \''.pSQL($iso_code).'\''
);
}
}
/**
* Delete a state only if is not in use
@@ -130,7 +132,7 @@ class StateCore extends ObjectModel
if (!$this->isUsed())
{
/* Database deletion */
$result = Db::getInstance()->execute('DELETE FROM `'.pSQL(_DB_PREFIX_.$this->def['table']).'` WHERE `'.$this->def['primary'] .'` = '.(int)$this->id);
$result = Db::getInstance()->delete(_DB_PREFIX_.$this->def['table'], '`'.$this->def['primary'].'` = '.(int)$this->id);
if (!$result)
return false;
@@ -160,11 +162,12 @@ class StateCore extends ObjectModel
*/
public function countUsed()
{
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT COUNT(*) AS nb_used
FROM `'._DB_PREFIX_.'address`
WHERE `'.$this->def['primary'].'` = '.(int)($this->id));
return $row['nb_used'];
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT COUNT(*)
FROM `'._DB_PREFIX_.'address`
WHERE `'.$this->def['primary'].'` = '.(int)$this->id
);
return $result;
}
public static function getStatesByIdCountry($id_country)
@@ -181,32 +184,33 @@ class StateCore extends ObjectModel
public static function hasCounties($id_state)
{
return sizeof(County::getCounties((int)$id_state));
return count(County::getCounties((int)$id_state));
}
public static function getIdZone($id_state)
{
if (!Validate::isUnsignedId($id_state))
die(Tools::displayError());
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `id_zone`
FROM `'._DB_PREFIX_.'state`
WHERE `id_state` = '.(int)($id_state));
SELECT `id_zone`
FROM `'._DB_PREFIX_.'state`
WHERE `id_state` = '.(int)$id_state
);
}
/**
* @param $ids_states
* @param $id_zone
* @return bool
*/
public function affectZoneToSelection($ids_states, $id_zone)
{
// cast every array values to int (security)
$ids_states = array_map('intval', $ids_states);
return Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'state` SET `id_zone` = '.(int)$id_zone.' WHERE `id_state` IN ('.implode(',', $ids_states).')
');
}
/**
* @param $ids_states
* @param $id_zone
* @return bool
*/
public function affectZoneToSelection($ids_states, $id_zone)
{
// cast every array values to int (security)
$ids_states = array_map('intval', $ids_states);
return Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'state` SET `id_zone` = '.(int)$id_zone.' WHERE `id_state` IN ('.implode(',', $ids_states).')
');
}
}
+33 -33
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
@@ -28,55 +28,55 @@
class StoreCore extends ObjectModel
{
/** @var integer Country id */
public $id_country;
public $id_country;
/** @var integer State id */
public $id_state;
public $id_state;
/** @var string Store name */
public $name;
public $name;
/** @var string Address first line */
public $address1;
public $address1;
/** @var string Address second line (optional) */
public $address2;
public $address2;
/** @var string Postal code */
public $postcode;
public $postcode;
/** @var string City */
public $city;
public $city;
/** @var float Latitude */
public $latitude;
public $latitude;
/** @var float Longitude */
public $longitude;
public $longitude;
/** @var string Store hours (PHP serialized) */
public $hours;
public $hours;
/** @var string Phone number */
public $phone;
public $phone;
/** @var string Fax number */
public $fax;
public $fax;
/** @var string Note */
public $note;
public $note;
/** @var string e-mail */
public $email;
public $email;
/** @var string Object creation date */
public $date_add;
public $date_add;
/** @var string Object last modification date */
public $date_upd;
public $date_upd;
/** @var boolean Store status */
public $active = true;
public $active = true;
/**
* @see ObjectModel::$definition
@@ -113,18 +113,18 @@ class StoreCore extends ObjectModel
),
);
public function __construct($id_store = NULL, $id_lang = NULL)
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->id_image = ($this->id && 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));
}
public function setWsHours($hours)
{
$this->hours = serialize(explode(';', $hours));
+5 -5
View File
@@ -1,6 +1,6 @@
<?php
/*
* 2007-2011 PrestaShop
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
@@ -44,10 +44,10 @@ class SubDomainCore extends ObjectModel
{
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT `name` FROM `'._DB_PREFIX_.'subdomain`'))
return false;
$subDomains = array();
foreach ($result AS $row)
$subDomains[] = $row['name'];
return $subDomains;
$domains = array();
foreach ($result as $row)
$domains[] = $row['name'];
return $domains;
}
}
+10 -5
View File
@@ -71,7 +71,7 @@ class TabCore extends ObjectModel
* - add access for admin profile
*
* @param boolean $autodate
* @param boolean $nullValues
* @param boolean $null_values
* @return int id_tab
*/
public function add($autodate = true, $null_values = false)
@@ -90,6 +90,7 @@ class TabCore extends ObjectModel
*
* @todo this should not be public static but protected
* @param int $id_tab
* @param Context $context
* @return boolean true if succeed
*/
public static function initAccess($id_tab, Context $context = null)
@@ -275,8 +276,10 @@ class TabCore extends ObjectModel
public static function enablingForModule($module)
{
$tabs = Tab::getCollectionFromModule($module);
if (!empty($tabs)) {
foreach ($tabs as $tab) {
if (!empty($tabs))
{
foreach ($tabs as $tab)
{
$tab->active = 1;
$tab->save();
}
@@ -294,8 +297,10 @@ class TabCore extends ObjectModel
public static function disablingForModule($module)
{
$tabs = Tab::getCollectionFromModule($module);
if (!empty($tabs)) {
foreach ($tabs as $tab) {
if (!empty($tabs))
{
foreach ($tabs as $tab)
{
$tab->active = 0;
$tab->save();
}
+6 -1
View File
@@ -195,7 +195,12 @@ class TagCore extends ObjectModel
$ids = array();
foreach ($array as $id_product)
$ids[] = '('.(int)$id_product.','.(int)$this->id.')';
return ($result && Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'product_tag (id_product, id_tag) VALUES '.implode(',', $ids)) && Search::indexation(false));
if ($result)
{
$result &= Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'product_tag (id_product, id_tag) VALUES '.implode(',', $ids));
$result &= Search::indexation(false);
}
}
return $result;
}
+8 -7
View File
@@ -54,27 +54,28 @@ class ThemeCore extends ObjectModel
/**
* return an array of all available theme (installed or not)
*
* @param boolean $installed
* @param boolean $installed_only
* @return array string (directory)
*/
public static function getAvailable($installed_only = true){
public static function getAvailable($installed_only = true)
{
static $dirlist = array();
$available_theme = array();
if (empty($dirlist))
{
$themes = scandir(_PS_ALL_THEMES_DIR_);
foreach ($themes AS $theme)
foreach ($themes as $theme)
if (is_dir(_PS_ALL_THEMES_DIR_.DIRECTORY_SEPARATOR.$theme) && $theme[0] != '.')
$dirlist[] = $theme;
}
if ($installed_only)
{
$themes = Theme::getThemes();
foreach($themes as $theme_obj)
foreach ($themes as $theme_obj)
$themes_dir[] = $theme_obj->directory;
foreach( $dirlist as $theme)
foreach ($dirlist as $theme)
if (false !== array_search($theme, $themes_dir))
$available_theme[] = $theme;
}