public function drawMainMenu() { if ($this->hasData('mainMenu')) { return $this->getData('mainMenu'); } $desktopHtml = []; $mobileHtml = []; $rootCategory = $this->getRootCategory(); $storeId = $this->_storeManager->getStore()->getId(); $categories = $this->getTreeMenu($storeId, $rootCategory->getId()); $contentCatTop = $this->getContentCatTop(); foreach ($contentCatTop as $ext) { $this->extData[$ext->getCatId()] = $ext->getData(); } // --- Safe handling for dropdown IDs --- $dropdownValue = $this->_sysCfg->general['dropdown'] ?? ''; $dropdownValue = is_string($dropdownValue) ? $dropdownValue : ''; $dropdownIds = $dropdownValue !== '' ? explode(',', $dropdownValue) : []; $counter = 1; $this->removeChildrenWithoutActiveParent($categories, 0); foreach ($categories as $catTop) { $itemPositionClassPrefix = 'nav-' . $counter; $idTop = $catTop->getEntityId(); $urlTop = '' . $this->getThumbnail($catTop) . '' . $catTop->getName() . $this->getCatLabel($catTop) . '' . ''; $classTop = $itemPositionClassPrefix . ' ' . $this->_getActiveClasses($idTop); $isDropdown = in_array($idTop, $dropdownIds) ? ' dropdown' : ''; $options = ''; if ($isDropdown) { $classTop .= $isDropdown; $catChild = $catTop->getChildren(); $childHtml = $this->getTreeCategories($catChild, $itemPositionClassPrefix); $menu = ['desktop' => $childHtml, 'mobile' => $childHtml]; } else { $data = $this->extData[$idTop] ?? []; $blocks = ['top' => '', 'left' => '', 'right' => '', 'bottom' => '']; if (!empty($data)) { foreach ($blocks as $key => $value) { $html = $this->getStaticBlock($data[$key] ?? ''); if ($html) $blocks[$key] = "
" . $html . '
'; } foreach (['top','left','right','bottom','cat_id'] as $key) unset($data[$key]); try { $opt = $this->serializer->serialize($data); } catch (\Throwable $e) { $opt = ''; } $options = $opt ? " data-options='$opt'" : ''; } $menu = $this->getMegamenu($catTop, $blocks, $itemPositionClassPrefix); } if (!empty($menu['desktop'])) { $classTop .= ' hasChild parent'; } $desktopHtml[$idTop] = '
  • ' . $urlTop . $menu['desktop'] . '
  • '; $mobileHtml[$idTop] = '
  • ' . $urlTop . $menu['mobile'] . '
  • '; $counter++; } $menu['desktop'] = $desktopHtml; $menu['mobile'] = implode("\n", $mobileHtml); $this->setData('mainMenu', $menu); return $menu; } public function drawMainMenu() { if ($this->hasData('mainMenu')) { return $this->getData('mainMenu'); } $desktopHtml = []; $mobileHtml = []; $rootCategory = $this->getRootCategory(); $storeId = $this->_storeManager->getStore()->getId(); $categories = $this->getTreeMenu($storeId, $rootCategory->getId()); $contentCatTop = $this->getContentCatTop(); foreach ($contentCatTop as $ext) { $this->extData[$ext->getCatId()] = $ext->getData(); } // --- Safe handling for dropdown IDs --- $dropdownValue = $this->_sysCfg->general['dropdown'] ?? ''; $dropdownValue = is_string($dropdownValue) ? $dropdownValue : ''; $dropdownIds = $dropdownValue !== '' ? explode(',', $dropdownValue) : []; $counter = 1; $this->removeChildrenWithoutActiveParent($categories, 0); foreach ($categories as $catTop) { $itemPositionClassPrefix = 'nav-' . $counter; $idTop = $catTop->getEntityId(); $urlTop = '' . $this->getThumbnail($catTop) . '' . $catTop->getName() . $this->getCatLabel($catTop) . '' . ''; $classTop = $itemPositionClassPrefix . ' ' . $this->_getActiveClasses($idTop); $isDropdown = in_array($idTop, $dropdownIds) ? ' dropdown' : ''; $options = ''; if ($isDropdown) { $classTop .= $isDropdown; $catChild = $catTop->getChildren(); $childHtml = $this->getTreeCategories($catChild, $itemPositionClassPrefix); $menu = ['desktop' => $childHtml, 'mobile' => $childHtml]; } else { $data = $this->extData[$idTop] ?? []; $blocks = ['top' => '', 'left' => '', 'right' => '', 'bottom' => '']; if (!empty($data)) { foreach ($blocks as $key => $value) { $html = $this->getStaticBlock($data[$key] ?? ''); if ($html) $blocks[$key] = "
    " . $html . '
    '; } foreach (['top','left','right','bottom','cat_id'] as $key) unset($data[$key]); try { $opt = $this->serializer->serialize($data); } catch (\Throwable $e) { $opt = ''; } $options = $opt ? " data-options='$opt'" : ''; } $menu = $this->getMegamenu($catTop, $blocks, $itemPositionClassPrefix); } if (!empty($menu['desktop'])) { $classTop .= ' hasChild parent'; } $desktopHtml[$idTop] = '
  • ' . $urlTop . $menu['desktop'] . '
  • '; $mobileHtml[$idTop] = '
  • ' . $urlTop . $menu['mobile'] . '
  • '; $counter++; } $menu['desktop'] = $desktopHtml; $menu['mobile'] = implode("\n", $mobileHtml); $this->setData('mainMenu', $menu); return $menu; } public function drawMainMenu() { if ($this->hasData('mainMenu')) { return $this->getData('mainMenu'); } $desktopHtml = []; $mobileHtml = []; $rootCategory = $this->getRootCategory(); $storeId = $this->_storeManager->getStore()->getId(); $categories = $this->getTreeMenu($storeId, $rootCategory->getId()); $contentCatTop = $this->getContentCatTop(); foreach ($contentCatTop as $ext) { $this->extData[$ext->getCatId()] = $ext->getData(); } // --- Safe handling for dropdown IDs --- $dropdownValue = $this->_sysCfg->general['dropdown'] ?? ''; $dropdownValue = is_string($dropdownValue) ? $dropdownValue : ''; $dropdownIds = $dropdownValue !== '' ? explode(',', $dropdownValue) : []; $counter = 1; $this->removeChildrenWithoutActiveParent($categories, 0); foreach ($categories as $catTop) { $itemPositionClassPrefix = 'nav-' . $counter; $idTop = $catTop->getEntityId(); $urlTop = '' . $this->getThumbnail($catTop) . '' . $catTop->getName() . $this->getCatLabel($catTop) . '' . ''; $classTop = $itemPositionClassPrefix . ' ' . $this->_getActiveClasses($idTop); $isDropdown = in_array($idTop, $dropdownIds) ? ' dropdown' : ''; $options = ''; if ($isDropdown) { $classTop .= $isDropdown; $catChild = $catTop->getChildren(); $childHtml = $this->getTreeCategories($catChild, $itemPositionClassPrefix); $menu = ['desktop' => $childHtml, 'mobile' => $childHtml]; } else { $data = $this->extData[$idTop] ?? []; $blocks = ['top' => '', 'left' => '', 'right' => '', 'bottom' => '']; if (!empty($data)) { foreach ($blocks as $key => $value) { $html = $this->getStaticBlock($data[$key] ?? ''); if ($html) $blocks[$key] = "
    " . $html . '
    '; } foreach (['top','left','right','bottom','cat_id'] as $key) unset($data[$key]); try { $opt = $this->serializer->serialize($data); } catch (\Throwable $e) { $opt = ''; } $options = $opt ? " data-options='$opt'" : ''; } $menu = $this->getMegamenu($catTop, $blocks, $itemPositionClassPrefix); } if (!empty($menu['desktop'])) { $classTop .= ' hasChild parent'; } $desktopHtml[$idTop] = '
  • ' . $urlTop . $menu['desktop'] . '
  • '; $mobileHtml[$idTop] = '
  • ' . $urlTop . $menu['mobile'] . '
  • '; $counter++; } $menu['desktop'] = $desktopHtml; $menu['mobile'] = implode("\n", $mobileHtml); $this->setData('mainMenu', $menu); return $menu; } Singer Jamaica | Terms and Conditions
    Terms and Conditions
    This Agreement was last modified on 18 February 2016.
    Intellectual Propertly
    • Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis diam erat. Duis velit lectus, posuere a blandit sit amet, tempor at lorem. Donec ultricies, lorem sed ultrices interdum.
    • Leo metus luctus sem, vel vulputate diam ipsum sed lorem. Donec tempor arcu nisl, et molestie massa scelerisque ut. Nunc at rutrum leo. Mauris metus mauris, tristique quis sapien eu, rutrum vulputate enim.
    • Mauris tempus erat laoreet turpis lobortis, eu tincidunt erat fermentum.
    • Aliquam non tincidunt urna. Integer tincidunt nec nisl vitae ullamcorper. Proin sed ultrices erat. Praesent varius ultrices massa at faucibus.
    • Aenean dignissim, orci sed faucibus pharetra, dui mi dignissim tortor, sit amet condimentum mi ligula sit amet augue.
    • Pellentesque vitae eros eget enim mollis placerat.
    Termination
    • Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis diam erat. Duis velit lectus, posuere a blandit sit amet, tempor at lorem. Donec ultricies, lorem sed ultrices interdum.
    • Leo metus luctus sem, vel vulputate diam ipsum sed lorem. Donec tempor arcu nisl, et molestie massa scelerisque ut. Nunc at rutrum leo. Mauris metus mauris, tristique quis sapien eu, rutrum vulputate enim.
    • Mauris tempus erat laoreet turpis lobortis, eu tincidunt erat fermentum.
    • Aliquam non tincidunt urna. Integer tincidunt nec nisl vitae ullamcorper. Proin sed ultrices erat. Praesent varius ultrices massa at faucibus.
    • Aenean dignissim, orci sed faucibus pharetra, dui mi dignissim tortor, sit amet condimentum mi ligula sit amet augue.
    • Pellentesque vitae eros eget enim mollis placerat.
    Changes To This Agreement
    We reserve the right, at our sole discretion, to modify or replace these Terms and Conditions by posting the updated terms on the Site. Your continued use of the Site after any such changes constitutes your acceptance of the new Terms and Conditions.
    Contact Us
    If you have any questions about this Agreement, please contact us filling this contact form

    Brands

    Samsung
    Frigidaire
    LG
    Whirlpool
    Dell
    HP
    Lasko
    Panasonic
    Sertapedic
    • Sale Products
    We can't find products matching the selection.
    • Best Seller
    Close