[*] Classes: CMS::getCMSPages() now select only data from cms table if id_lang is null
[*] Classes: Db::autoExecute() can now take INSERT IGNORE as third argument [*] Classes: Tag::addTags() can now take an array of tags as argument (instead of strings separated by comas) git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@10033 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
+14
-11
@@ -127,9 +127,9 @@ class CMSCore extends ObjectModel
|
||||
public function updatePosition($way, $position)
|
||||
{
|
||||
if (!$res = Db::getInstance()->executeS('
|
||||
SELECT cp.`id_cms`, cp.`position`, cp.`id_cms_category`
|
||||
SELECT cp.`id_cms`, cp.`position`, cp.`id_cms_category`
|
||||
FROM `'._DB_PREFIX_.'cms` cp
|
||||
WHERE cp.`id_cms_category` = '.(int)$this->id_cms_category.'
|
||||
WHERE cp.`id_cms_category` = '.(int)$this->id_cms_category.'
|
||||
ORDER BY cp.`position` ASC'
|
||||
))
|
||||
return false;
|
||||
@@ -146,7 +146,7 @@ class CMSCore extends ObjectModel
|
||||
return (Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'cms`
|
||||
SET `position`= `position` '.($way ? '- 1' : '+ 1').'
|
||||
WHERE `position`
|
||||
WHERE `position`
|
||||
'.($way
|
||||
? '> '.(int)($movedCms['position']).' AND `position` <= '.(int)($position)
|
||||
: '< '.(int)($movedCms['position']).' AND `position` >= '.(int)($position)).'
|
||||
@@ -183,14 +183,17 @@ class CMSCore extends ObjectModel
|
||||
|
||||
public static function getCMSPages($id_lang = null, $id_cms_category = null, $active = true)
|
||||
{
|
||||
return Db::getInstance()->executeS('
|
||||
SELECT *
|
||||
FROM `'._DB_PREFIX_.'cms` c
|
||||
JOIN `'._DB_PREFIX_.'cms_lang` l ON (c.id_cms = l.id_cms)'.
|
||||
(isset($id_cms_category) ? 'WHERE `id_cms_category` = '.(int)($id_cms_category) : '').
|
||||
($active ? ' AND c.`active` = 1 ' : '').'
|
||||
AND l.id_lang = '.(int)($id_lang).'
|
||||
ORDER BY `position`');
|
||||
$sql = new DbQuery();
|
||||
$sql->select('*');
|
||||
$sql->from('cms c');
|
||||
if ($id_lang)
|
||||
$sql->innerJoin('cms_lang l ON c.id_cms = l.id_cms AND l.id_lang = '.(int)$id_lang);
|
||||
|
||||
if ($active)
|
||||
$sql->where('c.active = 1');
|
||||
$sql->orderBy('position');
|
||||
|
||||
return Db::getInstance()->executeS($sql);
|
||||
}
|
||||
|
||||
public static function getUrlRewriteInformations($id_cms)
|
||||
|
||||
+7
-6
@@ -87,18 +87,19 @@ class TagCore extends ObjectModel
|
||||
*
|
||||
* @param integer $id_lang Language id
|
||||
* @param integer $id_product Product id to link tags with
|
||||
* @param string $string Tags separated by commas
|
||||
*
|
||||
* @param string|array $tag_list List of tags, as array or as a string with comas
|
||||
* @return boolean Operation success
|
||||
*/
|
||||
public static function addTags($id_lang, $id_product, $string)
|
||||
public static function addTags($id_lang, $id_product, $tag_list)
|
||||
{
|
||||
if (!Validate::isUnsignedId($id_lang) || !Validate::isTagsList($string))
|
||||
if (!Validate::isUnsignedId($id_lang))
|
||||
return false;
|
||||
|
||||
$tmp_tab = array_unique(array_map('trim', preg_split('/,/', $string, null, PREG_SPLIT_NO_EMPTY)));
|
||||
if (!is_array($tag_list))
|
||||
$tag_list = array_unique(array_map('trim', preg_split('/,/', $tag_list, null, PREG_SPLIT_NO_EMPTY)));
|
||||
|
||||
$list = array();
|
||||
foreach ($tmp_tab as $tag)
|
||||
foreach ($tag_list as $tag)
|
||||
{
|
||||
if (!Validate::isGenericName($tag))
|
||||
return false;
|
||||
|
||||
+5
-4
@@ -246,7 +246,7 @@ abstract class DbCore
|
||||
*
|
||||
* @param string $table Table where insert/update data
|
||||
* @param string $data Data to insert/update
|
||||
* @param string $type INSERT or UPDATE
|
||||
* @param string $type INSERT or INSERT IGNORE or UPDATE
|
||||
* @param string $where WHERE clause, only for UPDATE (optional)
|
||||
* @param string $limit LIMIT clause (optional)
|
||||
* @param bool $use_null If true, replace empty strings and NULL by a NULL value
|
||||
@@ -257,7 +257,8 @@ abstract class DbCore
|
||||
if (!$data)
|
||||
return true;
|
||||
|
||||
if (strtoupper($type) == 'INSERT')
|
||||
$type = strtoupper($type);
|
||||
if ($type == 'INSERT' || $type == 'INSERT IGNORE')
|
||||
{
|
||||
// Check if $data is a list of row
|
||||
$current = current($data);
|
||||
@@ -291,12 +292,12 @@ abstract class DbCore
|
||||
$values_stringified[] = '('.implode(', ', $values).')';
|
||||
}
|
||||
|
||||
$sql = 'INSERT INTO `'.$table.'` ('.$keys_stringified.') VALUES '.implode(', ', $values_stringified);
|
||||
$sql = $type.' INTO `'.$table.'` ('.$keys_stringified.') VALUES '.implode(', ', $values_stringified);
|
||||
if ($limit)
|
||||
$sql .= ' LIMIT '.(int)$limit;
|
||||
return $this->q($sql, $use_cache);
|
||||
}
|
||||
else if (strtoupper($type) == 'UPDATE')
|
||||
else if ($type == 'UPDATE')
|
||||
{
|
||||
$sql = 'UPDATE `'.$table.'` SET ';
|
||||
foreach ($data as $key => $value)
|
||||
|
||||
Reference in New Issue
Block a user