// Fix blocktopmenu page_name #PSFV-607

This commit is contained in:
rMalie
2012-03-06 11:50:26 +00:00
parent 7741889a5f
commit fbc91da80e
2 changed files with 74 additions and 62 deletions
+19 -6
View File
@@ -27,7 +27,7 @@
require dirname(__FILE__).'/menutoplinks.class.php'; require dirname(__FILE__).'/menutoplinks.class.php';
class blocktopmenu extends Module class Blocktopmenu extends Module
{ {
private $_menu = ''; private $_menu = '';
private $_html = ''; private $_html = '';
@@ -81,7 +81,7 @@ class blocktopmenu extends Module
`new_window` TINYINT( 1 ) NOT NULL, `new_window` TINYINT( 1 ) NOT NULL,
`link` VARCHAR( 128 ) NOT NULL, `link` VARCHAR( 128 ) NOT NULL,
INDEX (`id_shop`) INDEX (`id_shop`)
) ENGINE = '._MYSQL_ENGINE_.' CHARACTER SET utf8 COLLATE utf8_general_ci;') AND ) ENGINE = '._MYSQL_ENGINE_.' CHARACTER SET utf8 COLLATE utf8_general_ci;') &&
Db::getInstance()->execute(' Db::getInstance()->execute('
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'linksmenutop_lang` ( CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'linksmenutop_lang` (
`id_linksmenutop` INT NOT NULL, `id_linksmenutop` INT NOT NULL,
@@ -125,9 +125,7 @@ class blocktopmenu extends Module
else if (Tools::isSubmit('submitBlocktopmenuLinks')) else if (Tools::isSubmit('submitBlocktopmenuLinks'))
{ {
if (Tools::getValue('link') == '') if (Tools::getValue('link') == '')
{
$this->_html .= $this->displayError($this->l('Unable to add this link')); $this->_html .= $this->displayError($this->l('Unable to add this link'));
}
else else
{ {
MenuTopLinks::add(Tools::getValue('link'), Tools::getValue('label'), Tools::getValue('new_window', 0), (int)$this->context->shop->id); MenuTopLinks::add(Tools::getValue('link'), Tools::getValue('label'), Tools::getValue('new_window', 0), (int)$this->context->shop->id);
@@ -369,31 +367,37 @@ class blocktopmenu extends Module
if (!is_null($category->id)) if (!is_null($category->id))
$this->_html .= '<option value="CAT'.$id.'">'.$category->name.'</option>'.PHP_EOL; $this->_html .= '<option value="CAT'.$id.'">'.$category->name.'</option>'.PHP_EOL;
break; break;
case 'PRD': case 'PRD':
$product = new Product($id, true, $id_lang); $product = new Product($id, true, $id_lang);
if (!is_null($product->id)) if (!is_null($product->id))
$this->_html .= '<option value="PRD'.$id.'">'.$product->name.'</option>'.PHP_EOL; $this->_html .= '<option value="PRD'.$id.'">'.$product->name.'</option>'.PHP_EOL;
break; break;
case 'CMS': case 'CMS':
$cms = new CMS($id, $id_lang); $cms = new CMS($id, $id_lang);
if (count($cms)) if (count($cms))
$this->_html .= '<option value="CMS'.$id.'">'.$cms->meta_title.'</option>'.PHP_EOL; $this->_html .= '<option value="CMS'.$id.'">'.$cms->meta_title.'</option>'.PHP_EOL;
break; break;
case 'CMS_CAT': case 'CMS_CAT':
$category = new CMSCategory($id, $id_lang); $category = new CMSCategory($id, $id_lang);
if (count($category)) if (count($category))
$this->_html .= '<option value="CMS_CAT'.$id.'">'.$category->name.'</option>'.PHP_EOL; $this->_html .= '<option value="CMS_CAT'.$id.'">'.$category->name.'</option>'.PHP_EOL;
break; break;
case 'MAN': case 'MAN':
$manufacturer = new Manufacturer($id, $id_lang); $manufacturer = new Manufacturer($id, $id_lang);
if (!is_null($manufacturer->id)) if (!is_null($manufacturer->id))
$this->_html .= '<option value="MAN'.$id.'">'.$manufacturer->name.'</option>'.PHP_EOL; $this->_html .= '<option value="MAN'.$id.'">'.$manufacturer->name.'</option>'.PHP_EOL;
break; break;
case 'SUP': case 'SUP':
$supplier = new Supplier($id, $id_lang); $supplier = new Supplier($id, $id_lang);
if (!is_null($supplier->id)) if (!is_null($supplier->id))
$this->_html .= '<option value="SUP'.$id.'">'.$supplier->name.'</option>'.PHP_EOL; $this->_html .= '<option value="SUP'.$id.'">'.$supplier->name.'</option>'.PHP_EOL;
break; break;
case 'LNK': case 'LNK':
$link = MenuTopLinks::get($id, $id_lang, $id_shop); $link = MenuTopLinks::get($id, $id_lang, $id_shop);
if (count($link)) if (count($link))
@@ -405,8 +409,7 @@ class blocktopmenu extends Module
private function makeMenu() private function makeMenu()
{ {
if (isset($this->context->controller->php_self)) $this->page_name = Dispatcher::getInstance()->getController();
$this->page_name = $this->context->controller->php_self;
$menu_items = $this->getMenuItems(); $menu_items = $this->getMenuItems();
$id_lang = (int)$this->context->language->id; $id_lang = (int)$this->context->language->id;
@@ -425,18 +428,21 @@ class blocktopmenu extends Module
case 'CAT': case 'CAT':
$this->getCategory($id); $this->getCategory($id);
break; break;
case 'PRD': case 'PRD':
$selected = ($this->page_name == 'product' && (Tools::getValue('id_product') == $id)) ? ' class="sfHover"' : ''; $selected = ($this->page_name == 'product' && (Tools::getValue('id_product') == $id)) ? ' class="sfHover"' : '';
$product = new Product($id, true, $id_lang); $product = new Product($id, true, $id_lang);
if (!is_null($product->id)) if (!is_null($product->id))
$this->_menu .= '<li'.$selected.'><a href="'.$product->getLink().'">'.$product->name.'</a></li>'.PHP_EOL; $this->_menu .= '<li'.$selected.'><a href="'.$product->getLink().'">'.$product->name.'</a></li>'.PHP_EOL;
break; break;
case 'CMS': case 'CMS':
$selected = ($this->page_name == 'cms' && (Tools::getValue('id_cms') == $id)) ? ' class="sfHover"' : ''; $selected = ($this->page_name == 'cms' && (Tools::getValue('id_cms') == $id)) ? ' class="sfHover"' : '';
$cms = CMS::getLinks($id_lang, array($id)); $cms = CMS::getLinks($id_lang, array($id));
if (count($cms)) if (count($cms))
$this->_menu .= '<li'.$selected.'><a href="'.$cms[0]['link'].'">'.$cms[0]['meta_title'].'</a></li>'.PHP_EOL; $this->_menu .= '<li'.$selected.'><a href="'.$cms[0]['link'].'">'.$cms[0]['meta_title'].'</a></li>'.PHP_EOL;
break; break;
case 'CMS_CAT': case 'CMS_CAT':
$category = new CMSCategory($id, $id_lang); $category = new CMSCategory($id, $id_lang);
if (count($category)) if (count($category))
@@ -446,6 +452,7 @@ class blocktopmenu extends Module
$this->_menu .= '</li>'.PHP_EOL; $this->_menu .= '</li>'.PHP_EOL;
} }
break; break;
case 'MAN': case 'MAN':
$selected = ($this->page_name == 'manufacturer' && (Tools::getValue('id_manufacturer') == $id)) ? ' class="sfHover"' : ''; $selected = ($this->page_name == 'manufacturer' && (Tools::getValue('id_manufacturer') == $id)) ? ' class="sfHover"' : '';
$manufacturer = new Manufacturer($id, $id_lang); $manufacturer = new Manufacturer($id, $id_lang);
@@ -459,6 +466,7 @@ class blocktopmenu extends Module
$this->_menu .= '<li'.$selected.'><a href="'.$link->getManufacturerLink($id, $manufacturer->link_rewrite).'">'.$manufacturer->name.'</a></li>'.PHP_EOL; $this->_menu .= '<li'.$selected.'><a href="'.$link->getManufacturerLink($id, $manufacturer->link_rewrite).'">'.$manufacturer->name.'</a></li>'.PHP_EOL;
} }
break; break;
case 'SUP': case 'SUP':
$selected = ($this->page_name == 'supplier' && (Tools::getValue('id_supplier') == $id)) ? ' class="sfHover"' : ''; $selected = ($this->page_name == 'supplier' && (Tools::getValue('id_supplier') == $id)) ? ' class="sfHover"' : '';
$supplier = new Supplier($id, $id_lang); $supplier = new Supplier($id, $id_lang);
@@ -468,6 +476,7 @@ class blocktopmenu extends Module
$this->_menu .= '<li'.$selected.'><a href="'.$link->getSupplierLink($id, $supplier->link_rewrite).'">'.$supplier->name.'</a></li>'.PHP_EOL; $this->_menu .= '<li'.$selected.'><a href="'.$link->getSupplierLink($id, $supplier->link_rewrite).'">'.$supplier->name.'</a></li>'.PHP_EOL;
} }
break; break;
case 'LNK': case 'LNK':
$link = MenuTopLinks::get($id, $id_lang, $id_shop); $link = MenuTopLinks::get($id, $id_lang, $id_shop);
if (count($link)) if (count($link))
@@ -586,6 +595,10 @@ class blocktopmenu extends Module
$smarty->assign('MENU', $this->_menu); $smarty->assign('MENU', $this->_menu);
$smarty->assign('this_path', $this->_path); $smarty->assign('this_path', $this->_path);
$this->context->controller->addJS($this->_path.'js/hoverIntent.js');
$this->context->controller->addJS($this->_path.'js/superfish-modified.js');
$this->context->controller->addCSS($this->_path.'css/superfish-modified.css');
return $this->display(__FILE__, 'blocktopmenu.tpl'); return $this->display(__FILE__, 'blocktopmenu.tpl');
} }
+2 -3
View File
@@ -1,5 +1,6 @@
{if $MENU != ''} {if $MENU != ''}
</div> </div>
<!-- Menu --> <!-- Menu -->
<div class="sf-contener clearfix"> <div class="sf-contener clearfix">
<ul class="sf-menu clearfix"> <ul class="sf-menu clearfix">
@@ -15,8 +16,6 @@
{/if} {/if}
</ul> </ul>
<div class="sf-right">&nbsp;</div> <div class="sf-right">&nbsp;</div>
<script type="text/javascript" src="{$this_path}js/hoverIntent.js"></script>
<script type="text/javascript" src="{$this_path}js/superfish-modified.js"></script>
<link rel="stylesheet" type="text/css" href="{$this_path}css/superfish-modified.css" media="screen">
<!--/ Menu --> <!--/ Menu -->
{/if} {/if}