function template_preprocess_we_megamenu_ul in Drupal Mega Menu 8.x
Same name and namespace in other branches
- 8 we_megamenu.module \template_preprocess_we_megamenu_ul()
Prepare variables for we_megamenu_ul.
Parameters
array $vars: Variables are declared in theme.
File
- ./
we_megamenu.module, line 274 - Drupal 8 Mega Menu Module.
Code
function template_preprocess_we_megamenu_ul(array &$vars, $backend = FALSE) {
$data_config = $vars['data_config'];
foreach ($vars['items'] as $key_li => $li) {
$vars['href'] = '';
if ($li['url'] == '<front>') {
$vars['attributes']['data-id'] = 'home';
$vars['href'] = Url::fromRoute('<front>')
->toString();
}
else {
$vars['attributes']['data-id'] = !empty($li['derivativeId']) ? $li['derivativeId'] : $li['url'];
$current_user = \Drupal::currentUser();
if (WeMegaMenuBuilder::routeExists($li['url'])) {
$vars['href'] = Url::fromRoute($li['url'])
->toString();
}
else {
$vars['href'] = $li['url'];
}
}
if (!UrlHelper::isExternal($vars['href'])) {
if ($backend === FALSE && Url::fromUri('internal:' . $vars['href'])
->access() == FALSE) {
continue;
}
}
if (strpos($vars['href'], 'user/logout') !== FALSE && $current_user
->id() == 0 && $vars['section'] != 'admin' && $backend === FALSE) {
continue;
}
if (strpos($vars['href'], 'user/login') !== FALSE && $current_user
->id() != 0 && $vars['section'] != 'admin' && $backend === FALSE) {
continue;
}
$vars['content'][] = [
'#theme' => [
'we_megamenu_li',
],
'#title' => $li['title'],
'#item' => $li,
'#subtree' => $li['subtree'],
'#data_config' => $vars['data_config'],
'#section' => $vars['section'],
'#block_theme' => $vars['block_theme'],
'#menu_name' => $vars['menu_name'],
'#trail' => $vars['trail'],
];
}
$vars['attributes'] = new Attribute();
$vars['attributes']['class'] = [];
$vars['attributes']['class'][] = 'we-mega-menu-ul';
$vars['attributes']['class'][] = 'nav';
$vars['attributes']['class'][] = 'nav-tabs';
}