Právě je 18 led 2021 18:42

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 2 ] 
Autor Zpráva
 Předmět příspěvku: PrestaShop 1.6- chybi trida sfHover u odkazu topmenu
PříspěvekNapsal: 04 zář 2014 12:20 
C4 zákazník

Registrován:
09 lis 2012 10:22
Příspěvky:
30
Dobry den, u odkazu ktere nejsou v nabidce modulu topmenu (kategorie, vyrobci a pod.), ktere je mozne vytvorit pridanim v dolni casti administrace modulu http://prntscr.com/4jjvb5 se po naslednem vlozeni a pouziti v eshopu neprida trida "sfHover".

V eshopu pote neni mozne detekvat zakliknute tlacitko menu v horni liste napr zmenou barvy nebo podbarvenim. U vsech ostatnich typu okdazu je to funkcni.

Proto jsem si dal praci a dohledal kus kodu ktery tohle resi, a kdyz se najde nejaky programtor co se v PHP vyzna a doplni o tuto funkcnost, tak super a pomuze i dalsim co chteji resit.

Jde o soubor "blocktopmenu.php" ktery je soucasti modulu "blocktopmenu"

Kód:
   private function makeMenu()
   {
      $menu_items = $this->getMenuItems();
      $id_lang = (int)$this->context->language->id;
      $id_shop = (int)Shop::getContextShopID();

      foreach ($menu_items as $item)
      {
         if (!$item)
            continue;

         preg_match($this->pattern, $item, $value);
         $id = (int)substr($item, strlen($value[1]), strlen($item));

         switch (substr($item, 0, strlen($value[1])))
         {
            case 'CAT':
               $this->_menu .= $this->generateCategoriesMenu(Category::getNestedCategories($id, $id_lang, true, $this->user_groups));
               break;

            case 'PRD':
               $selected = ($this->page_name == 'product' && (Tools::getValue('id_product') == $id)) ? ' class="sfHover"' : '';
               $product = new Product((int)$id, true, (int)$id_lang);
               if (!is_null($product->id))
                  $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($product->getLink()).'" title="'.$product->name.'">'.$product->name.'</a></li>'.PHP_EOL;
               break;

            case 'CMS':
               $selected = ($this->page_name == 'cms' && (Tools::getValue('id_cms') == $id)) ? ' class="sfHover"' : '';
               $cms = CMS::getLinks((int)$id_lang, array($id));
               if (count($cms))
                  $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($cms[0]['link']).'" title="'.Tools::safeOutput($cms[0]['meta_title']).'">'.Tools::safeOutput($cms[0]['meta_title']).'</a></li>'.PHP_EOL;
               break;

            case 'CMS_CAT':
               $category = new CMSCategory((int)$id, (int)$id_lang);
               if (count($category))
               {
                  $this->_menu .= '<li><a href="'.Tools::HtmlEntitiesUTF8($category->getLink()).'" title="'.$category->name.'">'.$category->name.'</a>';
                  $this->getCMSMenuItems($category->id);
                  $this->_menu .= '</li>'.PHP_EOL;
               }
               break;

            // Case to handle the option to show all Manufacturers
            case 'ALLMAN':
               $link = new Link;
               $this->_menu .= '<li><a href="'.$link->getPageLink('manufacturer').'" title="'.$this->l('All manufacturers').'">'.$this->l('All manufacturers').'</a><ul>'.PHP_EOL;
               $manufacturers = Manufacturer::getManufacturers();
               foreach ($manufacturers as $key => $manufacturer)
                  $this->_menu .= '<li><a href="'.$link->getManufacturerLink((int)$manufacturer['id_manufacturer'], $manufacturer['link_rewrite']).'" title="'.Tools::safeOutput($manufacturer['name']).'">'.Tools::safeOutput($manufacturer['name']).'</a></li>'.PHP_EOL;
               $this->_menu .= '</ul>';
               break;

            case 'MAN':
               $selected = ($this->page_name == 'manufacturer' && (Tools::getValue('id_manufacturer') == $id)) ? ' class="sfHover"' : '';
               $manufacturer = new Manufacturer((int)$id, (int)$id_lang);
               if (!is_null($manufacturer->id))
               {
                  if (intval(Configuration::get('PS_REWRITING_SETTINGS')))
                     $manufacturer->link_rewrite = Tools::link_rewrite($manufacturer->name);
                  else
                     $manufacturer->link_rewrite = 0;
                  $link = new Link;
                  $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($link->getManufacturerLink((int)$id, $manufacturer->link_rewrite)).'" title="'.Tools::safeOutput($manufacturer->name).'">'.Tools::safeOutput($manufacturer->name).'</a></li>'.PHP_EOL;
               }
               break;

            // Case to handle the option to show all Suppliers
            case 'ALLSUP':
               $link = new Link;
               $this->_menu .= '<li><a href="'.$link->getPageLink('supplier').'" title="'.$this->l('All suppliers').'">'.$this->l('All suppliers').'</a><ul>'.PHP_EOL;
               $suppliers = Supplier::getSuppliers();
               foreach ($suppliers as $key => $supplier)
                  $this->_menu .= '<li><a href="'.$link->getSupplierLink((int)$supplier['id_supplier'], $supplier['link_rewrite']).'" title="'.Tools::safeOutput($supplier['name']).'">'.Tools::safeOutput($supplier['name']).'</a></li>'.PHP_EOL;
               $this->_menu .= '</ul>';
               break;

            case 'SUP':
               $selected = ($this->page_name == 'supplier' && (Tools::getValue('id_supplier') == $id)) ? ' class="sfHover"' : '';
               $supplier = new Supplier((int)$id, (int)$id_lang);
               if (!is_null($supplier->id))
               {
                  $link = new Link;
                  $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($link->getSupplierLink((int)$id, $supplier->link_rewrite)).'" title="'.$supplier->name.'">'.$supplier->name.'</a></li>'.PHP_EOL;
               }
               break;

            case 'SHOP':
               $selected = ($this->page_name == 'index' && ($this->context->shop->id == $id)) ? ' class="sfHover"' : '';
               $shop = new Shop((int)$id);
               if (Validate::isLoadedObject($shop))
               {
                  $link = new Link;
                  $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($shop->getBaseURL()).'" title="'.$shop->name.'">'.$shop->name.'</a></li>'.PHP_EOL;
               }
               break;
            case 'LNK':
               $link = MenuTopLinks::get((int)$id, (int)$id_lang, (int)$id_shop);
               if (count($link))
               {
                  if (!isset($link[0]['label']) || ($link[0]['label'] == ''))
                  {
                     $default_language = Configuration::get('PS_LANG_DEFAULT');
                     $link = MenuTopLinks::get($link[0]['id_linksmenutop'], $default_language, (int)Shop::getContextShopID());
                  }
                  $this->_menu .= '<li><a href="'.Tools::HtmlEntitiesUTF8($link[0]['link']).'"'.(($link[0]['new_window']) ? ' onclick="return !window.open(this.href);"': '').' title="'.Tools::safeOutput($link[0]['label']).'">'.Tools::safeOutput($link[0]['label']).'</a></li>'.PHP_EOL;
               }
               break;
         }
      }
   }


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6- chybi trida sfHover u odkazu topmenu
PříspěvekNapsal: 16 lis 2014 17:14 
C4 podpora
C4 podpora

Registrován:
09 úno 2013 12:11
Příspěvky:
2413
Dobrý den,

a o co se Vám konkrétně tedy jedná? Pokud chcete upravit jen barvu těchto horních odkazů a jejich podbarvení po najetí myši, tak úpravu je možné provést na FTP serveru v souboru themes/default-bootstrap/css/modules/blocktopmenu/css/superfish-modified.css, kde si stačí upravit jen barvy.

Pokud máte na mysli něco jiného, tak to, prosím, přesněji popište.

_________________
Filip Kučera
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 2 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PrestaShop partneři

Seznam všech partnerů

PrestaShop Hosting
Návody pro C4

© 2009-2021 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz