@grippin

Виджет неправильно генерирует html?

То что нужно получить:
<!-- Navigation panel -->
    <nav class="main-nav dark transparent stick-fixed">
      <div class="full-wrapper relative clearfix">
        <!-- Logo ( * your text or image into link tag *) -->
        <div class="nav-logo-wrap local-scroll">
          <a href="#top" class="logo">
            <img src="images/logo-white.png" alt="" />
          </a>
        </div>
        <div class="mobile-nav">
          <i class="fa fa-bars"></i>
        </div>
        <!-- Main Menu -->
        <div class="inner-nav desktop-nav">
          <ul class="clearlist scroll-nav local-scroll">
            <li class="active"><a href="#home">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#services">Services</a></li>
            <li><a href="#portfolio">Portfolio</a></li>
            <li><a href="#news">News</a></li>
            <li><a href="#contact">Contacts</a></li>

          </ul>
        </div>
      </div>
    </nav>
    <!-- End Navigation panel -->


Мой NavBar виджет:
NavBar::begin([
    'options' => ['class' => ' main-nav dark transparent stick-fixed'],
    'innerContainerOptions' => ['class' => ' full-wrapper relative clearfix'],
    'brandOptions' => ['class' => 'logo'],
    'brandLabel' => '<img src="/images/logo-white.png" alt="TEST"/>',
    'brandUrl' => "/"
]);
?>
<div class="mobile-nav">
    <i class="fa fa-bars"></i>
</div>
<div class="inner-nav desktop-nav">
    <?php
    $menuItems[] = [
        "label" => Yii::$app->language,
        'items' => $availableLangs
    ];
    echo Nav::widget([
        'encodeLabels' => false,
        'options' => ['class' => 'clearlist scroll-nav local-scroll'],
        'items' => $menuItems
    ]);
    NavBar::end();


    ?>
</div>


То что генерируется:
<!-- Navigation panel -->

<nav id="w0" class="main-nav dark transparent stick-fixed navbar" role="navigation">
    <div class=" full-wrapper relative clearfix">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#w0-collapse"><span
                    class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span></button>
            <a class="logo navbar-brand" href="/"><img src="/images/logo-white.png" alt="TEST"/></a></div>
        <div id="w0-collapse" class="collapse navbar-collapse">
            <div class="mobile-nav">
                <i class="fa fa-bars"></i>
            </div>
            <div class="inner-nav desktop-nav">
                <ul id="w1" class="clearlist scroll-nav local-scroll nav">
                    <li><a href="#portfolio">Test</a></li>
                    <li class="dropdown"><a class="dropdown-toggle" href="#" data-toggle="dropdown">FR <b
                                class="caret"></b></a>
                        <ul id="w2" class="dropdown-menu">
                            <li><a href="/ru" tabindex="-1">Ru</a></li>
                            <li><a href="/en" tabindex="-1">En</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
</nav></div>

<!-- End Navigation panel -->
  • Вопрос задан
  • 716 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Glimor
develop
Виджет правильно генерирует HTML! Чтоб в этом убедиться, находим его в папке vendor, и смотрим что он должен сгенерировать. Если вас что то не устраивает, тут два варианта:
1. Сделать свой виджет customNav, который наследуется(extends) от Nav, и переписать методы (init, run и т.д.).
2. Не использовать данный виджет. Свой требуемый HTML оставляешь как есть, списки меню заполняешь так:
<ul>
<?php foreach( $availableLangs as $lang ) { 
echo '<li>';
echo $lang;
echo '</li>';
}; ?>
</ul>

ps. 'html маркап' - интересно где вы такое словосочетание услышали)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы