Создать текущий класс для моего динамического меню - PullRequest
0 голосов
/ 03 февраля 2011

Кажется, что создание текущего класса было сложнее, чем я думал:)

modules / menus / actions / components.class.php

$this->elements = array(
        "My page" => "content/index",
        "Admin" => "content/index",
    );

$this->current = "";
foreach($this->elements as $name => $link) {
    list($module, $action) = explode("/", $link);
    if ($this->getContext()->getModuleName() == $module && 
    $this->getContext()->getActionName() == $action) {
        $this->current = $name;
    }
}               

modules / menus / templates / _main.php


if ($current == $name){
    echo link_to($name, $link, array("class" => "selected"));
}else {
    echo link_to($name, $link); 
}

Если вы посмотрите на ссылки, они перейдут на «контент / индекс» (пока).Большая проблема заключается в том, что контент / индекс перенаправляется на аутентификацию / вход в систему, поэтому текущий модуль и действие, даже если URL-адрес показывает контент / индекс, является аутентификацией / входом в систему.

Спасибо

1 Ответ

2 голосов
/ 04 февраля 2011

Просто идея:

  1. Задать параметр return при перенаправлении на страницу входа
  2. Разбор этого параметра вместо фактического URL

Или:

  1. Работа с маршрутами, а не парами "модуль-действие"
  2. Вперед вместо перенаправления на маршрут авторизации
  3. $currentRouteName = $this->getContext()->getRouting()->getCurrentRouteName()

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...