namespace App\Http\Middleware;
+use App\Models\Page;
use Closure;
class GenerateMenus
/**
* Handle an incoming request.
*
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
+ * @param \Illuminate\Http\Request $request
+ * @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
- // 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',
- ],
- ],
+ $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',
],
],
- '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',
- ]
- ]
+ // 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',
],
],
- 'Contact' => ['url' => 'contact'],
];
+ $tree = Page::getTree();
+ file_put_contents(app_path('tree.txt'), print_r($tree, true));
+ $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) {
return $next($request);
}
+
+
}