Не работают ссылки в меню, если не указаны синонимы.

Главные вкладки

Аватар пользователя ayyy ayyy 28 февраля 2018 в 13:44

Всем доброго дня!
Очень хочется понять, что я сделала не так или хотя бы в каком направлении двигаться.
Почему-то, если в меню напрямую прописать адрес сайта или же любую ноду (как node/6), но не указать синоним, то ссылка не будет генерироваться. Этот пункт меню считается с адресом "/" и будет перекидывать на главную страницу. И так до тех пор, пока не прописать любой синоним.
Как я понимаю, такого происходить не должно, а значит я где-то допустила ошибку или удалила лишнее.

Есть своё меню:

<nav class="navbar navbar-expand-md navbar-dark bg-my-color hide-fixed-menu">
                        <div class="container">
                                <button aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation" class="navbar-toggler" data-target="#navbarsExampleDefault" data-toggle="collapse" type="button"><span class="navbar-toggler-icon"></span></button>                         
                                <?php
                                         echo '<div class="collapse navbar-collapse" id="navbarsExampleDefault">
                                        <ul class="navbar-nav mr-auto">'
;
                                                $main_menu_tree = menu_tree_all_data('main-menu');
                                                foreach($main_menu_tree as $m) {
                                                        if($m == end($main_menu_tree)) {
                                                                echo'</ul></div><div><ul class="navbar-nav mr-auto ost-zaiavku">
                                                                                <li class="nav-item">
                                                                                        <a class="nav-link ost-zaiavku-text" href="/'
.drupal_lookup_path('alias',$m['link']['link_path']).'"><span><i class="material-icons">&#xE8AF;</i>'.$m['link']['link_title'].'</span></a>
                                                                                </li>
                                                                        </ul></div>'
;
                                                          }
                                                        else {  
                                                          $children = '';
                                                          if($m['link']['has_children'] == 1) {
                                                                $children = 'yes';
                                                          }
                                                          if($children == 'yes') {
                                                                echo '<li class="nav-item dropdown">
                                                                  <a href="#" aria-expanded="false" aria-haspopup="true" class="nav-link dropdown-toggle" data-toggle="dropdown" href="" id="dropdown01">'
.$m['link']['link_title'].'</a>
                                                                  <div aria-labelledby="dropdown01" class="dropdown-menu">'
;
                                                                  foreach($m['below'] as $b) {
                                                                        echo '<a class="dropdown-item" href="/'.drupal_lookup_path('alias',$b['link']['link_path']).'">'.$b['link']['link_title'].'</a>';
                                                                  }
                                                                  echo '</div>
                                                                </li>'
;
                                                          }
                                                          else {
                                                                echo '<li class="nav-item">
                                                                <a class="nav-link" href="/'
.drupal_lookup_path('alias',$m['link']['link_path']).'">'.$m['link']['link_title'].'</a></li>';
                                                          }
                                                        }
                                                }                                      
                                ?>
                                       
                        </div>
                </nav>

Ссылки генерируются нормально, но на каком-то этапе что-то мешает работать со стандартным путём.
Скрин меню прилагается.

ВложениеРазмер
Иконка изображения menyu.jpg15.46 КБ

Комментарии

Аватар пользователя bumble bumble 28 февраля 2018 в 14:02

Вам проще открыть какую-либо готовую тему с орга и посмотреть как там организован вывод меню.

В кратце:
Генерация ссылок с алиасом:

<?php
url
('some/real/path');
?>

Путь / - это путь в корень сайта. Тут обычный HTML, никакого Drupal-волшебства.

А для вывода ссылок - нужно использовать свою функцию темизации.

Аватар пользователя ayyy ayyy 1 марта 2018 в 8:05

Спасибо. Сейчас попробую сделать по аналогии. Просто я использую на сайте bootstrup 4 версии, а в шаблонах только 3ка, поэтому не смотрела их.

Аватар пользователя ayyy ayyy 1 марта 2018 в 9:57

Покопалась в коде. Если писать просто

<?php
                                echo '<div class="collapse navbar-collapse" id="navbarsExampleDefault">
                    <ul class="navbar-nav mr-auto">'
;                                  
                                        $main_menu_tree = menu_tree(variable_get('menu_main_links_source', 'main-menu'));
                                        foreach($main_menu_tree as $m) {
                                                print drupal_render($main_menu_tree);
                                        }
                                ?>

то всё работает, однако тогда я не знаю как одеть это на свой дизайн.
Как я понимаю ошибка в генерации самой ссылки, где-то здесь:

<a class="nav-link" href="/'.drupal_lookup_path('alias',$m['link']['link_path']).'">'.$m['link']['link_title'].'</a>';

Прочитала о функции drupal_lookup_path, но всё равно не понимаю что мне нужно написать. Видимо это из-за того, что я ещё новичок.. Может быть можете подсказать что-то по текущему коду или как тогда одеть моё меню на стандартный код? В каком файле и что я должна править?

Спасибо большое.

Аватар пользователя bumble bumble 1 марта 2018 в 12:32
1

ayyy wrote:

Если писать просто

Писать нужно не "просто", а то что нужно.
Посмотрите как делают в готовых темах. При чем здесь версия бутстрапа?