[Joomla] Create Mulit-Language Mainmenu in Helix3

Written by Simon Asika on

Modify templates/{YOUR TEMPLATE}/features/menu.php file:

Origin:

class Helix3FeatureMenu {

    private $helix3;

    public function __construct($helix3){
        $this->helix3 = $helix3;
        $this->position = 'menu';
    }

    public function renderFeature() {

        $menu_type = $this->helix3->getParam('menu_type');

        ob_start();

        if($menu_type == 'mega_offcanvas') { ?>
            <div class='sp-megamenu-wrapper'>
                <a id="offcanvas-toggler" href="#"><i class="fa fa-bars"></i></a>
                <?php $this->helix3->loadMegaMenu('hidden-sm hidden-xs'); ?>
            </div>
        <?php } else if ($menu_type == 'mega') { ?>
            <div class='sp-megamenu-wrapper'>
                <a id="offcanvas-toggler" class="visible-sm visible-xs" href="#"><i class="fa fa-bars"></i></a>
                <?php $this->helix3->loadMegaMenu('hidden-sm hidden-xs'); ?>
            </div>
        <?php } else { ?>
            <a id="offcanvas-toggler" href="#"><i class="fa fa-bars"></i></a>
        <?php }

        return ob_get_clean();
    }
}

The modified:

class Helix3FeatureMenu {

    private $helix3;

    public function __construct($helix3){
        $this->helix3 = $helix3;
        $this->position = 'menu';
    }

    public function renderFeature() {

        $menu_type = $this->helix3->getParam('menu_type');

        $name = '';

        if (JLanguageMultilang::isEnabled())
        {
            $lang = JFactory::getLanguage()->getTag();

            // Please replace to your multi-language menutype name
            $name = 'mainmenu-' . strtolower($lang);
        }

        ob_start();

        if($menu_type == 'mega_offcanvas') { ?>
            <div class='sp-megamenu-wrapper'>
                <a id="offcanvas-toggler" href="#"><i class="fa fa-bars"></i></a>
                <?php $this->helix3->loadMegaMenu('hidden-sm hidden-xs', $name); ?>
            </div>
        <?php } else if ($menu_type == 'mega') { ?>
            <div class='sp-megamenu-wrapper'>
                <a id="offcanvas-toggler" class="visible-sm visible-xs" href="#"><i class="fa fa-bars"></i></a>
                <?php $this->helix3->loadMegaMenu('hidden-sm hidden-xs', $name); ?>
            </div>
        <?php } else { ?>
            <a id="offcanvas-toggler" href="#"><i class="fa fa-bars"></i></a>
        <?php }

        return ob_get_clean();
    }
}

Now Helix3 menu will auto load for different languages.

Control Tools

WS-logo