-86 / 7 / 0
Регистрация: 29.08.2014
Сообщений: 247
1

Проверка условия и вывод class

09.06.2015, 16:37. Показов 574. Ответов 0
Метки нет (Все метки)

Господа не подскажете как сделать активным родительский пункт меню при нахождении на дочернем пункте (странице)?

Т. е. - надо чтобы в родительском пункте вставлялся class="active" как и в дочернем:

+ Родитепльский пункт class="active"
- Дочерний пункт 1
- Дочерний пункт 2 class="active"
- Дочерний пункт 3

Находсь на странице - Дочерний пункт 2


мне дали решение, но не понимаю:

"В шаблонах меню используется обращение к родительскому элементу, имеющему активный дочерний как $row["active_child"]. Проверяя это условие можно выводить или не выводить класс."

Подозреваю, что в этих двух шаблонах:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
if (empty($result["rows"][$result["parent_id"]]))
{
    return true;
}
 
 
// начало уровня меню
foreach ($result["rows"][$result["parent_id"]] as $row)
{       
    if ($row["active"])
    {
    // начало пункта меню для текущей страницы
    echo '<li class="active">';
    }
    elseif ($row["children"])
    {
    // начало пункта меню для элемента -родителя
    echo ' <li class="parent">';
    }
    elseif ($row["active_child"])
    {
    // начало пункта меню для активного дочернего пункта
    echo ' <li class="parent">';
    }
    else
    {
    // начало любого другого пункта меню
    echo '<li>';
    }
 
    if (
        // на текущей странице нет ссылки, если не включена настройка "Текущий пункт как ссылка"
        (!$row["active"] || $result["current_link"])
 
        // влючен пункт "Не отображать ссылку на элемент, если он имеет дочерние пункты"
        && (!$result["hide_parent_link"] || empty($result["rows"][$row["id"]]))
    )
    {
        if ($row["othurl"])
        {
            echo '<a href="'.$row["othurl"].'"'.$row["attributes"].''
            .(!empty($row["active"]) || !empty($row["active_child"]) ? 'class="active"' : '')
            .'>';
        }
        else
        {
            echo '<a href="'.BASE_PATH_HREF.$row["link"].'"'.$row["attributes"]
            .(!empty($row["active"]) || !empty($row["active_child"]) ? ' class="active"' : '')
            .'>';
        }
    }
 
    //вывод изображения
    if (! empty($row["img"]))
    {
        echo '<img src="'.$row["img"]["src"].'" width="'.$row["img"]["width"].'" height="'.$row["img"]["height"]
        .'" alt="'.$row["img"]["alt"].'" title="'.$row["img"]["title"].'"> ';
    }
 
    // название пункта меню
    if (! empty($row["name"]))
    {
        echo $row["name"];
    }
 
    if (
        // на текущей странице нет ссылки, если не включена настройка "Текущий пункт как ссылка"
        (!$row["active"] || $result["current_link"])
 
        // влючен пункт "Не отображать ссылку на элемент, если он имеет дочерние пункты"
        && (!$result["hide_parent_link"] || empty($result["rows"][$row["id"]]))
    )
    {
        echo '</a>';
    }
    if ($result["show_all_level"] || $row["active_child"] || $row["active"])
    {
        // вывод вложенного уровня меню
        $menu_data = $result;
        $menu_data["parent_id"] = $row["id"];
        $menu_data["level"]++;
 
        echo $this->get('show_level_topmenu_2', 'menu', $menu_data);
    }
 
    if ($row["active"])
    {
    // окончание пункта меню - текущей страницы
    echo '</li>';
    }
    elseif ($row["active_child"])
    {
    // окончание пункта меню для активного дочернего пункта
    echo '</li>';
    }
    else
    {
    // окончание любого другого пункта меню
    echo '</li>';
    }
}
// окончание уровня меню
PHP
1
2
3
4
5
6
7
8
9
10
11
12
if (empty($result["rows"]))
{
    return false;
}
if (!empty($result["name"]))
{
    echo '<div class="block_header">'.$result["name"].'</div>';
}
 
echo '<ul id="top-menu">';
echo $this->get('show_level_topmenu', 'menu', $result);
echo '</ul>';
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2015, 16:37
Ответы с готовыми решениями:

Проверка условия при заполнении формы, вывод диалогового окна
Форумчане, доброго времени суток! Помогите решить проблему. Нужна процедура которая проверяет...

Структуры. Считывание строк из файла, проверка условия и вывод в файл
Добрый день. Пытаюсь найти ошибку в следующей задаче- Дан файл с информацией о номере заказа, дате...

Проверка строк текстового файла на разные условия и вывод ошибок на экран
Имеется текстовый файл такого вида - ************ 3 1 2 3 3 2 1 2 1 3 1 2 3 . . . 1 2 3

Работа с матрицами: ввод/вывод, проверка условия для строк/столбцов и элементов
Добрый вечер всем! Помогите пожалуйста с прогой. Дано:Найти в матрице последнюю строку, все...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2015, 16:37

Внутри проверки условия не производится ещё одна проверка условия
Как задумывалось - при нажатии на джойстик просто должны были остановится движки, но если при...

Массив: Условия ввода: по столбцам, Условия вывода: по строкам в виде таблицы. Написать исходную матрицу и вывод массива по строкам.
Есть массив B размерностью 5x5, тип данных real, Условия ввода: по столбцам, Условия вывода: по...

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i !=...

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

Проверка условия
Народ подскажите пожалуйста, как мне выполнить проверку в if? void country(TEda * Start){ ...

Проверка условия
Определите функцию (f a b c), которая равна истине тогда и только тогда, когда из отрезков a, b и с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru