[-] MO : #PNM-286 : Block top menu bug fix (Shop ID)

This commit is contained in:
François Gaillard committed 2012-07-04 13:16:01 +00:00
1 parent dc186a2090
commit ea9525880f
1 file changed
+82 -76
+82 -76
View File
@@ -27,37 +27,39 @@
class MenuTopLinks class MenuTopLinks
{ {
public static function gets($id_lang, $id_linksmenutop = null, $id_shop) public static function gets($id_lang, $id_linksmenutop = null, $id_shop)
{ {
return Db::getInstance()->executeS(' $id_shop = ((bool) Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE')) ? $id_shop : 0;
SELECT l.id_linksmenutop, l.new_window, ll.link, ll.label
FROM '._DB_PREFIX_.'linksmenutop l
LEFT JOIN '._DB_PREFIX_.'linksmenutop_lang ll ON (l.id_linksmenutop = ll.id_linksmenutop AND ll.id_lang = '.(int)$id_lang.' AND ll.id_shop='.(int)$id_shop.')
WHERE 1
'.((!is_null($id_linksmenutop)) ? ' AND l.id_linksmenutop = "'.(int)$id_linksmenutop.'"' : '').'
AND l.id_shop IN (0, '.(int)$id_shop.')
');
}
public static function get($id_linksmenutop, $id_lang, $id_shop) $sql = 'SELECT l.id_linksmenutop, l.new_window, ll.link, ll.label
{ FROM '._DB_PREFIX_.'linksmenutop l
return self::gets($id_lang, $id_linksmenutop, $id_shop); LEFT JOIN '._DB_PREFIX_.'linksmenutop_lang ll ON (l.id_linksmenutop = ll.id_linksmenutop AND ll.id_lang = '.(int)$id_lang.' AND ll.id_shop='.(int)$id_shop.')
} WHERE 1 '.((!is_null($id_linksmenutop)) ? ' AND l.id_linksmenutop = "'.(int)$id_linksmenutop.'"' : '').'
AND l.id_shop IN (0, '.(int)$id_shop.')';
return Db::getInstance()->executeS($sql);
}
public static function get($id_linksmenutop, $id_lang, $id_shop)
{
return self::gets($id_lang, $id_linksmenutop, $id_shop);
}
public static function getLinkLang($id_linksmenutop, $id_shop) public static function getLinkLang($id_linksmenutop, $id_shop)
{ {
$ret = Db::getInstance()->executeS(' $ret = Db::getInstance()->executeS('
SELECT l.id_linksmenutop, l.new_window, ll.link, ll.label, ll.id_lang SELECT l.id_linksmenutop, l.new_window, ll.link, ll.label, ll.id_lang
FROM '._DB_PREFIX_.'linksmenutop l FROM '._DB_PREFIX_.'linksmenutop l
LEFT JOIN '._DB_PREFIX_.'linksmenutop_lang ll ON (l.id_linksmenutop = ll.id_linksmenutop AND ll.id_shop='.(int)$id_shop.') LEFT JOIN '._DB_PREFIX_.'linksmenutop_lang ll ON (l.id_linksmenutop = ll.id_linksmenutop AND ll.id_shop='.(int)$id_shop.')
WHERE 1 WHERE 1
'.((!is_null($id_linksmenutop)) ? ' AND l.id_linksmenutop = "'.(int)$id_linksmenutop.'"' : '').' '.((!is_null($id_linksmenutop)) ? ' AND l.id_linksmenutop = "'.(int)$id_linksmenutop.'"' : '').'
AND l.id_shop IN (0, '.(int)$id_shop.') AND l.id_shop IN (0, '.(int)$id_shop.')
'); ');
$link = array(); $link = array();
$label = array(); $label = array();
$new_window = false; $new_window = false;
foreach ($ret as $line) foreach ($ret as $line)
{ {
$link[$line['id_lang']] = Tools::safeOutput($line['link']); $link[$line['id_lang']] = Tools::safeOutput($line['link']);
@@ -68,67 +70,71 @@ class MenuTopLinks
return array('link' => $link, 'label' => $label, 'new_window' => $new_window); return array('link' => $link, 'label' => $label, 'new_window' => $new_window);
} }
public static function add($link, $label, $newWindow = 0, $id_shop) public static function add($link, $label, $newWindow = 0, $id_shop)
{ {
if(!is_array($label)) if(!is_array($label))
return false; return false;
if(!is_array($link)) if(!is_array($link))
return false; return false;
Db::getInstance()->insert( Db::getInstance()->insert(
'linksmenutop', 'linksmenutop',
array( array(
'new_window'=>(int)$newWindow, 'new_window'=>(int)$newWindow,
'id_shop' => (int)$id_shop 'id_shop' => (int)$id_shop
) )
); );
$id_linksmenutop = Db::getInstance()->Insert_ID(); $id_linksmenutop = Db::getInstance()->Insert_ID();
foreach ($label as $id_lang=>$label)
Db::getInstance()->insert(
'linksmenutop_lang',
array(
'id_linksmenutop'=>(int)$id_linksmenutop,
'id_lang'=>(int)$id_lang,
'id_shop'=>(int)$id_shop,
'label'=>pSQL($label),
'link'=>pSQL($link[$id_lang])
)
);
}
public static function update($link, $labels, $newWindow = 0, $id_shop, $id_link) foreach ($label as $id_lang=>$label)
{ Db::getInstance()->insert(
if(!is_array($labels)) 'linksmenutop_lang',
return false; array(
if(!is_array($link)) 'id_linksmenutop'=>(int)$id_linksmenutop,
return false; 'id_lang'=>(int)$id_lang,
'id_shop'=>(int)$id_shop,
'label'=>pSQL($label),
'link'=>pSQL($link[$id_lang])
)
);
}
Db::getInstance()->update( public static function update($link, $labels, $newWindow = 0, $id_shop, $id_link)
'linksmenutop', {
array( d($id_shop);
'new_window'=>(int)$newWindow, if(!is_array($labels))
'id_shop' => (int)$id_shop return false;
), if(!is_array($link))
return false;
Db::getInstance()->update(
'linksmenutop',
array(
'new_window'=>(int)$newWindow,
'id_shop' => (int)$id_shop
),
'id_linksmenutop = '.(int)$id_link 'id_linksmenutop = '.(int)$id_link
); );
foreach ($labels as $id_lang => $label) foreach ($labels as $id_lang => $label)
Db::getInstance()->update( Db::getInstance()->update(
'linksmenutop_lang', 'linksmenutop_lang',
array( array(
'id_shop'=>(int)$id_shop, 'id_shop'=>(int)$id_shop,
'label'=>pSQL($label), 'label'=>pSQL($label),
'link'=>pSQL($link[$id_lang]) 'link'=>pSQL($link[$id_lang])
), ),
'id_linksmenutop = '.(int)$id_link.' AND id_lang = '.(int)$id_lang 'id_linksmenutop = '.(int)$id_link.' AND id_lang = '.(int)$id_lang
); );
} }
public static function remove($id_linksmenutop, $id_shop) public static function remove($id_linksmenutop, $id_shop)
{ {
Db::getInstance()->delete('linksmenutop', 'id_linksmenutop = '.(int)$id_linksmenutop.' AND id_shop = '.(int)$id_shop); Db::getInstance()->delete('linksmenutop', 'id_linksmenutop = '.(int)$id_linksmenutop.' AND id_shop = '.(int)$id_shop);
Db::getInstance()->delete('linksmenutop_lang', 'id_linksmenutop = '.(int)$id_linksmenutop); Db::getInstance()->delete('linksmenutop_lang', 'id_linksmenutop = '.(int)$id_linksmenutop);
} }
} }
?> ?>