Created
August 25, 2020 15:26
-
-
Save NickStees/5d8dd94eb0847616538cc0de5776b0d4 to your computer and use it in GitHub Desktop.
Drupal module to pass menu to Vue.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Passing the module settings off to Javascript | |
*/ | |
function vue_header_init(){ | |
// Menus to pass to Vue | |
$menuNames = [ | |
'deptMenu' => 'menu-department-home-pages', | |
// 'quickLinks' => 'menu-quick-links', | |
]; | |
// | |
$jsSettingsForVue = []; | |
foreach ($menuNames as $name => $menuId) { | |
$menuLinks = menu_load_links($menuId); | |
if(!empty($menuLinks)){ | |
//we only need link.node_path_alias and link.link_title | |
// so lets start a fresh array | |
$justMenuStuff = []; | |
foreach ($menuLinks as $key => $value) { | |
if ($value["hidden"] === "1") { // skip hidden | |
break; | |
} | |
if(strpos($menuLinks[$key]['link_path'], 'node') === 0 ){ | |
// get alias of node | |
$node_path_alias = '/'.drupal_get_path_alias($value['link_path']); | |
}else{ | |
// not a node URL so just use link_path | |
$node_path_alias = $menuLinks[$key]['link_path']; | |
} | |
$justMenuStuff[$key]['link_path'] = $value['link_path']; | |
$justMenuStuff[$key]['link_title'] = $value['link_title']; | |
$justMenuStuff[$key]['node_path_alias'] = $node_path_alias; | |
} | |
$jsSettingsForVue[$name] = $justMenuStuff; | |
} | |
} | |
//Send settings to Javascript | |
drupal_add_js(array('vue_header' => $jsSettingsForVue), array('type' => 'setting')); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Results in something like this on pages.
