1. Go to this page and download the library: Download rnr1721/le7-menu-builder library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rnr1721 / le7-menu-builder example snippets
use Core\MenuManager\MenuBuilder;
use Core\MenuManager\Renderers\BootstrapMenuRenderer;
// Create MenuBuilder instance
$menuBuilder = new MenuBuilder(new BootstrapMenuRenderer());
// Add links to menu
// key, label, url, parent_key, attributes, rels, weight
$menuBuilder->addItem('home', 'Home', '/');
$menuBuilder->addItem('about', 'About', '/about');
// Here we add some class to menu link
$menuBuilder->addItem('services', 'Services', '/services', null, ['class' => 'myclass']);
// Here we add some rel to menu link
$menuBuilder->addItem('products', 'Products', '/products', null, [], ['nofollow']);
// Here we add weight for sorting
$menuBuilder->addItem('solutions', 'Solutions', '/solutions', null, [], [], 30);
// Add child links to existing menu items
$menuBuilder->addItem('contact', 'Contact', '/contact', 'about');
$menuBuilder->addItem('support', 'Support', '/support', 'services');
// Add some attribute for existing link in menu
// In this case we will add ID for link
$menuBuilder->addAttribute('support','id','myclass');
// Add attribute "class" => 'active' to link by key
$menuBuilder->makeActive('about');
// Remove link from menu by key
$menuBuilder->removeLink('services');
// Render the menu
$html = $menuBuilder->render();
// Optionally, you can render menu with some options or alternative renderer
$html = $menuBuilder->render($options, $renderer);
// Build raw menu array
$menu = $menuBuilder->build();
use Core\MenuManager\MenuBuilder;
use Core\MenuManager\Renderers\BootstrapMenuRenderer;
// Create MenuBuilder instance
$menuBuilder = new MenuBuilder(new BootstrapMenuRenderer());
// Add item to default menu
$menuBuilder->addItem('home', 'Home', '/');
// Create and set active another menu
$menuBuilder->setActiveMenu('newMenu');
// Add item to default menu or make some else
$menuBuilder->addItem('about', 'About', '/about');
// Switch to default menu
$menuBuilder->setActiveMenu('default');
// Render first menu (with Home item)
$menuBuilder->render();
use Core\Links\Link;
use Core\MenuManager\MenuBuilder;
use Core\MenuManager\Renderers\BootstrapMenuRenderer;
// Create MenuBuilder instance
$menuBuilder = new MenuBuilder(new BootstrapMenuRenderer());
$menuBuilder->setUrlReplaceVars('url','https://example.com');
// Add item to menu
$menuBuilder->addItem('about', 'About', '{url}/about');
use Core\Links\Link;
use Core\MenuManager\MenuBuilder;
use Core\MenuManager\Renderers\BootstrapMenuRenderer;
// Create MenuBuilder instance
$menuBuilder = new MenuBuilder(new BootstrapMenuRenderer());
// Here we create link with rel="nofollow" and class="myClass" and anchor "About"
$link = new Link(
'https://example.com/about',
['nofollow'],
['class'=>'myClass'],
'About'
);
// Parameters - key, link object, parentKey, weight
$menuBuilder->addRawItem('about', $link, null 80);
// Render the menu
$menuBuilder->render();
use Core\Links\Link;
use Core\MenuManager\MenuBuilder;
use Core\MenuManager\Renderers\BootstrapMenuRenderer;
// Create MenuBuilder instance
$menuBuilder = new MenuBuilder(new BootstrapMenuRenderer());
// Get array of default renderer options
$options = $menuBuilder->getRendererOptions();
use Psr\SimpleCache\CacheInterface;
// Create an instance of MenuBuilder with cache support
$renderer = /* get an instance of a class implementing the MenuRendererInterface */;
$cache = /* get an instance of a class implementing the CacheInterface */;
$menuBuilder = new MenuBuilder($renderer, $cache);
// Set cache TTL (Time To Live)
$cacheTtl = 3600; // cache TTL in seconds can be null|int|DateInterval
$menuBuilder->setCacheTtl($cacheTtl);
// Set cache prefix (default is menu_)
$menuBuilder->setCacheKeyPrefix('menu_en_');
// Generate the menu and cache its result
$menuHtml = $menuBuilder->render();
declare (strict_types=1);
namespace Core\Interfaces;
interface MenuRendererInterface
{
public function render(
array $menu = [],
?array $options = null
): mixed;
public function getOptions(): array;
}
use Core\MenuManager\MenuBuilder;
use Core\MenuManager\Renderers\HtmlMenuRenderer;
// Create MenuBuilder instance
$menuBuilder = new MenuBuilder(new HtmlMenuRenderer());
// Add links to menu
$menuBuilder->addItem('home', 'Home', '/');
$menuBuilder->addItem('about', 'About', '/about');
$menuBuilder->addItem('services', 'Services', '/services', null, ['class' => 'myclass']);
$menuBuilder->addItem('products', 'Products', '/products', null, [], ['nofollow']);
$menuBuilder->addItem('solutions', 'Solutions', '/solutions', null, [], [], 30);
// Add child links to existing menu items
$menuBuilder->addItem('contact', 'Contact', '/contact', 'about');
$menuBuilder->addItem('support', 'Support', '/support', 'services');
// Add some attribute for an existing link in the menu
$menuBuilder->addAttribute('support', 'id', 'myclass');
// Add attribute "class" => 'active' to a link by key
$menuBuilder->makeActive('about');
// Remove a link from the menu by key
$menuBuilder->removeLink('services');
// Render the menu
$html = $menuBuilder->render();
// Get the options for the renderer
$options = $menuBuilder->getRendererOptions();
// Customize the rendering options
$options['menuClass'] = 'my-menu';
$options['menuItemClass'] = 'my-menu-item';
// Render the menu with the customized options
$html = $menuBuilder->render($options);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.