<?php
-
namespace App\Models;
use Cubist\Backpack\app\Magic\Models\CMSPage;
-use Lavary\Menu\Menu;
class Page extends CMSPage
{
- public static function makeMenus()
- {
-
- if (Menu::exists('primary')) {
- return;
- }
- $productsSubMenus = [
-
- // Left panel
- [
- 'title' => 'Capteurs',
- 'links' => [
- 'Force' => 'products/force',
- 'Couple' => 'products/couple',
- 'Déplacement' => 'products/deplacement',
- 'Accélération' => 'products/acceleration',
- 'Inclinaison' => 'products/inclinaison',
- 'Pression' => 'products/pression',
- ],
- ],
-
- // Right panel
- [
- 'title' => 'Systèmes de mesure',
- 'links' => [
- 'Roue dynamométrique' => 'products/roue',
- 'Contrôle de fermeture d’ouvrants' => 'products/cdfdo',
- 'Contrôle de taraudage' => 'products/cdt',
- 'Collecteurs tournant' => 'products/ct',
- 'Télémétrie' => 'products/telemetrie',
- 'Acquisition de données' => 'products/add',
- ],
- ],
- ];
-
- $tree = Page::getTree();
-
- $main = $tree['#main'];
-
- $nav_items = [];
- foreach ($main['children'] as $name => $item) {
- $submenus = null;
- if ($name == 'products') {
- $submenus = $productsSubMenus;
- } else {
- $links = [];
-
- foreach ($item['children'] as $key => $child) {
- $links[$child['element']->title] = $child['element']->slug;
- }
-
- if (count($links) > 0) {
- $submenus = [['links' => $links]];
- }
- }
- $s = ['url' => $item['element']->slug];
- if (null !== $submenus) {
- $s['submenus'] = $submenus;
- }
-
- $nav_items[$item['element']->title] = $s;
- }
-
-// // Hard coded menu structure until we have dynamic data from the CMS
-// $nav_items = [
-//
-// 'Products' => [
-// 'url' => 'products',
-// 'submenus' => [
-//
-// // Left panel
-// [
-// 'title' => 'Capteurs',
-// 'links' => [
-// 'Force' => 'products/force',
-// 'Couple' => 'products/couple',
-// 'Déplacement' => 'products/deplacement',
-// 'Accélération' => 'products/acceleration',
-// 'Inclinaison' => 'products/inclinaison',
-// 'Pression' => 'products/pression',
-// ],
-// ],
-//
-// // Right panel
-// [
-// 'title' => 'Systèmes de mesure',
-// 'links' => [
-// 'Roue dynamométrique' => 'products/roue',
-// 'Contrôle de fermeture d’ouvrants' => 'products/cdfdo',
-// 'Contrôle de taraudage' => 'products/cdt',
-// 'Collecteurs tournant' => 'products/ct',
-// 'Télémétrie' => 'products/telemetrie',
-// 'Acquisition de données' => 'products/add',
-// ],
-// ],
-// ],
-// ],
-//
-// 'Solutions' => [
-// 'url' => 'solutions',
-// 'submenus' => [
-// [
-// 'links' => [
-// 'Énergie' => 'solutions/energie',
-// 'Aéronautique' => 'solutions/aero',
-// 'Ferroviaire' => 'solutions/ferroviaire',
-// 'Automobile' => 'solutions/auto',
-// 'Génie civil' => 'solutions/civil',
-// 'Industrie' => 'solutions/industrie',
-// ]
-// ],
-// ],
-// ],
-//
-// 'Services' => [
-// 'url' => 'services',
-// 'submenus' => [
-// [
-// 'title' => null,
-// 'links' => [
-// 'Location' => 'services/location',
-// 'Calibration' => 'services/calibration',
-// 'Développement OEM' => 'services/developpement-oem',
-// 'Custom Design' => 'services/custom-design',
-// 'Formation' => 'services/formation',
-// ],
-// ],
-// ],
-// ],
-// 'Support' => ['url' => 'support'],
-// 'Société' => [
-// 'url' => 'societe',
-// 'submenus' => [
-// [
-// 'links' => [
-// 'Qui sommes nous ?' => 'societe/a-propos',
-// 'Actualités' => 'societe/actualites',
-// ]
-// ]
-// ],
-// ],
-// 'Contact' => ['url' => 'contact'],
-// ];
-
-
- \Menu::make('primary', function ($menu) use ($nav_items) {
-
- foreach ($nav_items as $nav_label => $nav_item) {
-
- $parent = $menu->add($nav_label, $nav_item['url']);
-
- // Handle items with submenus
- if (isset($nav_item['submenus'])) {
-
- foreach ($nav_item['submenus'] as $submenu_data) {
-
- // Create an empty sub-element that will serve as a wrapper for the submenu(s)
- $wrapper = $parent->raw('')->attr(['class' => 'nav-submenu-wrapper']);
-
- // Some submenus have a title element
- if (isset($submenu_data['title'])) {
- $wrapper->raw($submenu_data['title'])->attr(['class' => 'nav-submenu-title']);
- }
-
- foreach ($submenu_data['links'] as $label => $url) {
- $wrapper->add($label, $url);
- }
- }
- }
-
- }
-
- });
-
- // Also make a menu for the breadcrumbs - this one is simpler and doesn't have the submenu headings
- \Menu::make('breadcrumbs', function ($menu) use ($nav_items) {
-
- // Start with home link
- $menu = $menu->add('Home', '');
-
- foreach ($nav_items as $nav_label => $nav_item) {
-
- $parent = $menu->add($nav_label, $nav_item['url']);
-
- // Handle items with submenus
- if (isset($nav_item['submenus'])) {
-
- foreach ($nav_item['submenus'] as $submenu_data) {
- foreach ($submenu_data['links'] as $label => $url) {
- $parent->add($label, $url);
- }
- }
- }
- }
- });
- }
}