Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Сделал вручную боковое меню, хочу в нём добавлять класс active к ссылке на текущий урл


Recommended Posts

В админке "Каталог" - "Статьи" создал ряд статей на тему "Как выбрать", "Гарантийное обслуживание" и т.д. Хочу, чтобы на шаблоне "Информация" сбоку выводилась менюшка из этих статей, в том же виде, в котором сбоку категории на страницах категорий и продуктов (class="list-group"). В опенкарте чайник, первый раз сайт делаю. Поскольку выводить в менюшку надо не все статьи - решил искать вариант не как вывести меню статей, а вручную прописать в catalog\view\theme\default\template\information\information.twig на html эту менюшку.

Прописал вот так

<aside id="column-left" class="col-sm-3 hidden-xs">
    <div class="list-group">


<a href="/how_to_choose/" class="list-group-item">Как выбрать</a> 
<a href="/garantiya/" class="list-group-item">Гарантийное обслуживание</a>
.. БЛА БЛА БЛА...
<a href="/contacts/" class="list-group-item">Контактная информация</a>
     
    </div>

  </aside>

Менюшка выглядит полностью как мне надо.

А теперь вот думаю - а как приписать класс active к ссылке на ту статью, которая сейчас на экране? чтобы было 

class="list-group-item active"

 

Такой вариант 

<a href="/something/" class="list-group-item {{ (app.request.attributes.get('_route') == 'something') ? 'active' }}">page about something</a>

ничего не дал.

Напишите в личку кто может помочь и цена вопроса?

Змінено користувачем SaulBerenson
Надіслати
Поділитися на інших сайтах


надо в контроллере смотреть какая ссылка активна и не говнокодить в шаблоне 

<a href="/contacts/" class="list-group-item">Контактная информация</a>
Надіслати
Поділитися на інших сайтах

16 минут назад, spectre сказал:

надо в контроллере смотреть какая ссылка активна и не говнокодить в шаблоне 

Ну так помогите. Я же понимаю, что для знающего человека это 2 минуты и 3 строчки, готов перечислить благодарность за работающее решение. 

Надіслати
Поділитися на інших сайтах


5 минут назад, SaulBerenson сказал:

Ну так помогите. Я же понимаю, что для знающего человека это 2 минуты и 3 строчки, готов перечислить благодарность за работающее решение. 

Посмотрите как генерятся статьи в футере

id статьи это $this->request->get['information_id']

Надіслати
Поділитися на інших сайтах

12 часов назад, spectre сказал:

Посмотрите как генерятся статьи в футере

Смотрю и контроллер и сам шаблон, но мало что понимаю. И это не даёт мне никакого понимания о том, как класс active подставить к активной ссылке. Я не программист, даже в синтаксисе php плохо ориентируюсь, а twig вообще первый раз вижу

Надіслати
Поділитися на інших сайтах


в контроллере

// идентификаторы нужных статей
$conf_aticle = '4,3,5';
            
// массив для статей(для передачи в шаблон)
$data['aticles'] = array();

// идентификатор текущей статьи
$inf_id = $this->request->get['information_id'];

// получаем статьи
$aticles = $this->model_catalog_information->getInformationsInMenu($conf_aticle);

// формируем данные для шаблона
if($aticles){
    foreach($aticles as $aticle){
        // добавляем класс если это текущая статья
        $class = $aticle['information_id'] == $inf_id? 'active': '';
        $data['aticles'][] = array(
            'title' => $aticle['title'],
            'href'  => $this->url->link('information/information', 'information_id=' . $aticle['information_id']),
            'class' => $class
        );
    }
}

в модели

public function getInformationsInMenu($conf_info) {
    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "information i LEFT JOIN " . DB_PREFIX . "information_description id ON (i.information_id = id.information_id) LEFT JOIN " . DB_PREFIX . "information_to_store i2s ON (i.information_id = i2s.information_id) WHERE id.language_id = '" . (int) $this->config->get('config_language_id') . "' AND i2s.store_id = '" . (int) $this->config->get('config_store_id') . "' AND i.status = '1' AND i.information_id IN(" . $conf_info . ") ORDER BY i.sort_order, LCASE(id.title) ASC");

    return $query->rows;
}

в шаблоне

{% if aticles %}
<div class="list-group">
    {% for aticle in aticles %}
    <a class="list-group-item {{ aticle.class }}" href="{{ aticle.href }}">{{ aticle.title }}</a>
    {% endfor %}
</div>
{% endif %}

 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.