@T_verdisla_V
Начинающий

Как правильно прописать класс тегу?

Доброго времени суток.
Подскажите, почему прописанный мной класс для тега <a> не доходит до вьюхи.
В этой части кода прописывается конфигурация для элементов меню.
'navigation' => [
        'Application\Navigation\MainNavigation' => [
            'application' => [
                /**
                 * Set options for 'ul'-element.
                 * For correct set - page must have most lowest order number (e.g. -100).
                 */
                'ul' => ['class' => 'navbar-nav  align-content-between'],
                'li' => ['class' => 'nav-item m-auto'],

                /** Set attributes for 'a'-element. */
                'a'  => ['class' => 'nav-link'],
                'label' => 'Главная',

                /** Set options for element. */
                'order'      => 10,
                'route'      => 'home',
                'action'     => 'index',
                'controller' => Controller\IndexController::class,
            ],


А эта часть кода отвечает за обработку тега <a>

public function htmlify(AbstractPage $page, $escapeLabel = true, $addClassToListItem = false)
    {
        // get attribs for element
        $attribs = [
            'id'     => $page->getId(),
            'title'  => $this->translate($page->getTitle(), $page->getTextDomain()),
        ];
/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Begin fork ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *
 * @since 18:37 30.10.2016
 */
        // add additional attributes
        $attr = $page->get('attr');
        if(is_array($attr)){
            $attribs = $attribs + $attr;
        };
/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End fork ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
        if ($addClassToListItem === false) {
            $attribs['class'] = $page->getClass();
        }

        // does page have a href?
        $href = $page->getHref();
        if ($href) {
            $element           = 'a';
            $attribs['href']   = $href;
            $attribs['target'] = $page->getTarget();
        } else {
            $element = 'span';
        }

        $html  = '<' . $element . $this->htmlAttribs($attribs) . '>';
        $label = $this->translate($page->getLabel(), $page->getTextDomain());

        if ($escapeLabel === true) {
            /** @var \Zend\View\Helper\EscapeHtml $escaper */
            $escaper = $this->view->plugin('escapeHtml');
            $html .= $escaper($label);
        } else {
            $html .= $label;
        }

        $html .= '</' . $element . '>';
        return $html;
    }
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
nuykon
@nuykon
Full Stack Developer
думаю вам нужно сделать
$addClassToListItem = true
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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