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 | FAQs

    Frequently asked questions

    This Agreement was last modified on 18 February 2016

    • In egestas, libero vitae scelerisque tristique, turpis augue faucibus dolor, at aliquet ligula massa at justo. Donec viverra tortor quis tortor pretium, in pretium risus finibus. Integer viverra pretium auctor. Aliquam eget convallis eros, varius sagittis nulla. Suspendisse potenti. Aenean consequat ex sit amet metus ultrices tristique. Nam ac nunc augue. Suspendisse finibus in dolor eget volutpat.

    • In egestas, libero vitae scelerisque tristique, turpis augue faucibus dolor, at aliquet ligula massa at justo. Donec viverra tortor quis tortor pretium, in pretium risus finibus. Integer viverra pretium auctor. Aliquam eget convallis eros, varius sagittis nulla. Suspendisse potenti. Aenean consequat ex sit amet metus ultrices tristique. Nam ac nunc augue. Suspendisse finibus in dolor eget volutpat.

    • In egestas, libero vitae scelerisque tristique, turpis augue faucibus dolor, at aliquet ligula massa at justo. Donec viverra tortor quis tortor pretium, in pretium risus finibus. Integer viverra pretium auctor. Aliquam eget convallis eros, varius sagittis nulla. Suspendisse potenti. Aenean consequat ex sit amet metus ultrices tristique. Nam ac nunc augue. Suspendisse finibus in dolor eget volutpat.

    • In egestas, libero vitae scelerisque tristique, turpis augue faucibus dolor, at aliquet ligula massa at justo. Donec viverra tortor quis tortor pretium, in pretium risus finibus. Integer viverra pretium auctor. Aliquam eget convallis eros, varius sagittis nulla. Suspendisse potenti. Aenean consequat ex sit amet metus ultrices tristique. Nam ac nunc augue. Suspendisse finibus in dolor eget volutpat.

    • In egestas, libero vitae scelerisque tristique, turpis augue faucibus dolor, at aliquet ligula massa at justo. Donec viverra tortor quis tortor pretium, in pretium risus finibus. Integer viverra pretium auctor. Aliquam eget convallis eros, varius sagittis nulla. Suspendisse potenti. Aenean consequat ex sit amet metus ultrices tristique. Nam ac nunc augue. Suspendisse finibus in dolor eget volutpat.

    • In egestas, libero vitae scelerisque tristique, turpis augue faucibus dolor, at aliquet ligula massa at justo. Donec viverra tortor quis tortor pretium, in pretium risus finibus. Integer viverra pretium auctor. Aliquam eget convallis eros, varius sagittis nulla. Suspendisse potenti. Aenean consequat ex sit amet metus ultrices tristique. Nam ac nunc augue. Suspendisse finibus in dolor eget volutpat.

    Brands

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