Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
9 / 9 / 2
Регистрация: 29.05.2011
Сообщений: 533
1

Ссылки последних разделов в меню

23.12.2019, 09:39. Показов 442. Ответов 1
Метки нет (Все метки)

Доброго времени суток!
На данный момент в меню пункты с href="#"
Необходимо у последних разделов сделать ссылки с реальным URL.

Пример каким образом происходит сейчас:
1) Есть главный пункт меню "Продукция"
2) при клике на "Продукция" открываются подпункты (скрин "Меню")
3) при клике на "Платья" справа открывается ещё список подпунктов
3) при клике на "Размер 44" справа открывается ещё список подпунктов

Необходимо сделать так, чтобы последние разделы были ссылками на реальные разделы. т.е. чтобы при клике на последние разделы происходил переход в данный раздел.
В данном случае ссылками должны быть разделы: Шорты, Размер 40, Размер 42, т.е. те разделы, у которых больше нет вложенностей.
Помогите, пожалуйста, каким образом сделать у последних разделов ссылки с URL. Спасибо.

Код меню:
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
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
CModule::IncludeModule("iblock");
 
function echoChildrenMenu($menu) {
    $result = '<ul > <span class="closes"></span>';
    foreach ($menu as $item) 
    {
        echo "<pre>" .print_r($item,1)."</pre>";
        $result .= '<li';
        $result .= (!empty($item['CHILDREN'])) ? ' data-arrow' : ' test';
        $result .= '>';
 
        //$result .= '<a href="' . $item['URL'] . '" data-arrow>' . $item['NAME'] . '</a>';
        $result .= '<a href="#" data-arrow>' . $item['NAME'] . '</a>';
 
        if (!empty($item['CHILDREN'])) {
            $result .= echoChildrenMenu($item['CHILDREN']);
 
        }
        $result .= '</li>';
 
    }
 
    return $result . '</ul>';
}
 
if (!empty($arResult)) {
 
    $arMenu = [];
 
    $obSection = CIBlockSection::GetTreeList([ 'IBLOCK_ID' => 29, 'GLOBAL_ACTIVE' => 'Y' ]);
    while ($res = $obSection->GetNext()) {
        $menu = &$arMenu;
        for ($i = 0; $i <= ($res['DEPTH_LEVEL'] - 2); $i++) {
            $menu = &$menu[count($menu) - 1]['CHILDREN'];
 
        }
        $menu[] = [
            'NAME' => $res['NAME'],
            'URL' => $res['SECTION_PAGE_URL'],
            'DEPTH_LEVEL' => $res['DEPTH_LEVEL']
        ];
        
        
    }
    $arResult[0]['CHILDREN'] = $arMenu;
    ?>
 
    <nav class="header__menu">
        <ul class="header__menu_top">
            <? foreach ($arResult as $arItem): ?>
                <li>
                    <!--<a href="<?= $arItem['LINK'] ?>">-->
                    <a href="#">
                        <?if ($arItem['PARAMS']['icon'] == 'leftMenu'):?>
                            <svg class="params___icon_leftMenu" viewBox="0 0 459 590"
                                 xmlns="http://www.w3.org/2000/svg">
                                <path d="M0,382.5h459v-51H0V382.5z M0,255h459v-51H0V255z M0,76.5v51h459v-51H0z"/>
                                <polygon points="114.75 459 229.5 586.5 344.25 459"/>
                            </svg>
                        <?endif?>
 
                        <?if ($arItem['PARAMS']['text'] == 'info'):?>
                            <svg class="params___text_info" viewBox="0 0 65 65">
                                <path d="M32.5,0C14.58,0,0,14.579,0,32.5S14.58,65,32.5,65S65,50.421,65,32.5S50.42,0,32.5,0z M32.5,61C16.785,61,4,48.215,4,32.5 S16.785,4,32.5,4S61,16.785,61,32.5S48.215,61,32.5,61z"/>
                                <circle cx="33.018" cy="19.541" r="3.345"/>
                                <path d="M32.137,28.342c-1.104,0-2,0.896-2,2v17c0,1.104,0.896,2,2,2s2-0.896,2-2v-17C34.137,29.237,33.241,28.342,32.137,28.342z"/>
                            </svg>
                        <?else:?>
                            <span><?= $arItem['TEXT'] ?></span>
                        <?endif?>
 
                        <?if ($arItem['PARAMS']['arrow'] === true):?>
                            <svg class="params___arrow" viewBox="0 0 255 255">
                                <polygon points="0 0 127.5 127.5 255 0"/>
                            </svg>
                        <?endif?>
                   
                    </a>
                    <?if (!empty($arItem['CHILDREN'])):?>
                        <? echo echoChildrenMenu($arItem['CHILDREN']) ?>
                    <?endif?>
                </li>
            <? endforeach; ?>
        </ul>
    </nav>
<? } ?>
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Ссылки последних разделов в меню  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2019, 09:39
Ответы с готовыми решениями:

Подскажите ссылки на FAQ для разделов Assembler, MASM, TASM
Скиньте FAQ для разделов Assembler,MASM,TASM где много вариантов &quot;Hello,world!$&quot; и где написана...

Меню из разделов инфоблока
Ребят подскажите, пожалуйста! Уже попробовал все возможные варианты( Никак не выводится меню,...

Создание меню разделов в joomla
У меня такая вот проблема, мне надо, чтобы при нажатии на пункт главного меню показывалось еще два...

Создание меню разделов сайта
Здравствуйте. Прошу помоши. Себе сломал уже всю голову. Хочу создать небольшую админку для сайта....

1
9 / 9 / 2
Регистрация: 29.05.2011
Сообщений: 533
23.12.2019, 09:49  [ТС] 2
Вот так выглядит структура разделов при echo "<pre>" .print_r($item,1)."</pre>";
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
Array
(
    [NAME] =&gt; Платья
    [URL] =&gt; /catalog/plate/
    [DEPTH_LEVEL] =&gt; 1
    [CHILDREN] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [NAME] =&gt; Размер 40
                    [URL] =&gt; /catalog/40/
                    [DEPTH_LEVEL] =&gt; 2
                )
 
            [1] =&gt; Array
                (
                    [NAME] =&gt; Размер 42
                    [URL] =&gt; /catalog/42/
                    [DEPTH_LEVEL] =&gt; 2
                )
 
            [2] =&gt; Array
                (
                    [NAME] =&gt; Размер 44
                    [URL] =&gt; /catalog/44/
                    [DEPTH_LEVEL] =&gt; 2
                    [CHILDREN] =&gt; Array
                        (
                            [0] =&gt; Array
                                (
                                    [NAME] =&gt; Белый
                                    [URL] =&gt; /catalog/b/
                                    [DEPTH_LEVEL] =&gt; 3
                                )
 
                            [1] =&gt; Array
                                (
                                    [NAME] =&gt; Синий
                                    [URL] =&gt; /catalog/s/
                                    [DEPTH_LEVEL] =&gt; 3
                                    [CHILDREN] =&gt; Array
                                        (
                                            [0] =&gt; Array
                                                (
                                                    [NAME] =&gt; Темно-синий
                                                    [URL] =&gt; /catalog/temno/
                                                    [DEPTH_LEVEL] =&gt; 4
                                                )
 
                                            [1] =&gt; Array
                                                (
                                                    [NAME] =&gt; Светло-синий
                                                    [URL] =&gt; /catalog/cvetlo/
                                                    [DEPTH_LEVEL] =&gt; 4
                                                )
 
                                            [2] =&gt; Array
                                                (
                                                    [NAME] =&gt; Синий
                                                    [URL] =&gt; /catalog/sin/
                                                    [DEPTH_LEVEL] =&gt; 4
                                                )
                                        )
                                )
                        )
                )
        )
)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2019, 09:49

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Можно ли изменить ссылки по классу в меню (поменять домен в конкретном меню)?
Всем привет. Есть два меню на странице: &lt;ul class=&quot;menu-head&quot;&gt; &lt;li&gt;&lt;a...

Обернуть каждое слово(!) ссылки при выводе стандартного меню (wp_nav_menu) меню вордпресс
Доброго времени суток, уважаемые мастера вордпресса! Есть совсем не стандартная задача - нужно...

Создание меню (чтобы открывались ссылки на вкладках меню)
есть FAQ?

При наведении на один из разделов блока 1, в блоке 2 появлялось меню
Доброго дня, я начинающий программист, и щас меня попросили написать сайтик, но вот не задача, не...

Восстановить список последних программ (в главном меню) после CCleaner
Здравствуйте, уважаемые. Подскажите. После работы CCleaner исчез список последних программ в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.