Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
TazMan-Mahalov
0 / 0 / 0
Регистрация: 02.03.2017
Сообщений: 5
1

Кастомизация каталога. Битрикс Управление Сайтом

26.12.2018, 13:36. Просмотров 306. Ответов 7
Метки нет (Все метки)

Здравствуйте. Мучаюсь с вопросом. Перерыл уже весь код компонента bitrix:catalog и не могу понять как сделать вот такую тему:
Кликните здесь для просмотра всего текста
Кастомизация каталога. Битрикс Управление Сайтом

Делаю на стандартном решении битрикса и я вывел только Фотографию и Главный раздел. Помогите пожалуйста
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2018, 13:36
Ответы с готовыми решениями:

Стилизация select в 1С-Битрикс: управление сайтом
Здравствуйте! Недавно у меня возникла необходимость, стилизовать селект в сайте на битриксе. Нашел...

Пропала главная страница (1С-Битрикс: Управление сайтом 14.0.14)
Здравствуйте. Пропала главная страница сайта-белый лист, а остальное работает:страницы и каталог...

[1с-битрикс: управление сайтом. Редакция старт] Создание иеархического раскрывающегося списка
Здравствуйте все. Я прошу помощи. Я работаю в CMS 1С-Битрикс: управление сайтом (Редакция...

Как установить 1С-Битрикс: Управоление сайтом?
Народ помогите установить 1С-Битрикс: Управоление сайтом. Я скачал там идут папки, PHP и HTML...

Выгрузка каталога формата CSV в Битрикс
Добрый день! Помогите, пожалуйста! Мне нужно импортировать каталог товаров из CSV - файла, но, к...

7
TazMan-Mahalov
0 / 0 / 0
Регистрация: 02.03.2017
Сообщений: 5
26.12.2018, 14:56  [ТС] 2
То есть я сделал так:
Кликните здесь для просмотра всего текста

Кастомизация каталога. Битрикс Управление Сайтом



А я хочу ещё вывести подразделы
0
voral
917 / 614 / 135
Регистрация: 16.03.2008
Сообщений: 2,920
26.12.2018, 15:09 3
Код компонента тут рыть совсем не надо - вся работа идет с шаблонами.
Далее все зависит от того где вы хотите вывести. Чаще всего такой блок располагают на странице каталога, и на странице списка товаров. И в обоих случаях для этого используется компонент bitrix:catalog.section.list Соответственно и работать вам необходимо с шаблоном этого компонента.. В настройках компонента есть параметр - необходимая глубина пунктов. А далее чисто программирование. В шаблон попадают пункты одним массивом, все на одном уровне, но в определенном порядке и с информацией об их уровне.

PS Не в коем случае не редактируете шаблоны в каталоге /bitrix/components/ - можете однажды легко потерять все свои наработки. Лучше всего вообще делать копию шаблона (штатными средствами битрикс) и уже работать с копией.
0
TazMan-Mahalov
0 / 0 / 0
Регистрация: 02.03.2017
Сообщений: 5
27.12.2018, 10:31  [ТС] 4
Вот я и не могу понять, что вписывать
0
voral
917 / 614 / 135
Регистрация: 16.03.2008
Сообщений: 2,920
27.12.2018, 13:41 5
Так а что вы умеете? Что делаете? Что конкретно не понятно?

1. Делаете цикл по разделам
2. Раздел верхнего уровня?:
2.1 ДА.
2.1.1 Если не первый ставите закрывающий тег(теги) первого уровня предыдущего раздела верхнего уровня.
2.1.2 Выводите начальную верстку раздела верхнего уровня
2.2. НЕТ. Выводите верстку раздела второго уровня
3. После завершения цикла ставите закрывающий тег раздела первого уровня. (т.к. в цикле один точно не закроется)
0
TazMan-Mahalov
0 / 0 / 0
Регистрация: 02.03.2017
Сообщений: 5
27.12.2018, 13:50  [ТС] 6
Я в PHP мало шарю. Можете с кодом помочь пожалуйста?
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponentTemplate $this */
/** @var string $templateName */
/** @var string $templateFile */
/** @var string $templateFolder */
/** @var string $componentPath */
/** @var CBitrixComponent $component */
$this->setFrameMode(true);
 
$arViewModeList = $arResult['VIEW_MODE_LIST'];
 
$arViewStyles = array(
    'LIST' => array(
        'CONT' => 'bx_sitemap',
        'TITLE' => 'bx_sitemap_title',
        'LIST' => 'bx_sitemap_ul',
    ),
    'LINE' => array(
        'CONT' => 'bx_catalog_line',
        'TITLE' => 'bx_catalog_line_category_title',
        'LIST' => 'bx_catalog_line_ul',
        'EMPTY_IMG' => $this->GetFolder().'/images/line-empty.png'
    ),
    'TEXT' => array(
        'CONT' => 'bx_catalog_text',
        'TITLE' => 'bx_catalog_text_category_title',
        'LIST' => 'bx_catalog_text_ul'
    ),
    'TILE' => array(
        'CONT' => 'bx_catalog_tile',
        'TITLE' => 'bx_catalog_tile_category_title',
        'LIST' => 'bx_catalog_tile_ul',
        'EMPTY_IMG' => $this->GetFolder().'/images/tile-empty.png'
    )
);
$arCurView = $arViewStyles[$arParams['VIEW_MODE']];
 
$strSectionEdit = CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "SECTION_EDIT");
$strSectionDelete = CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "SECTION_DELETE");
$arSectionDeleteParams = array("CONFIRM" => GetMessage('CT_BCSL_ELEMENT_DELETE_CONFIRM'));
 
?><div class="<? echo $arCurView['CONT']; ?>"><?
if ('Y' == $arParams['SHOW_PARENT_NAME'] && 0 < $arResult['SECTION']['ID'])
{
    $this->AddEditAction($arResult['SECTION']['ID'], $arResult['SECTION']['EDIT_LINK'], $strSectionEdit);
    $this->AddDeleteAction($arResult['SECTION']['ID'], $arResult['SECTION']['DELETE_LINK'], $strSectionDelete, $arSectionDeleteParams);
 
    ?><h1
        class="<? echo $arCurView['TITLE']; ?>"
        id="<? echo $this->GetEditAreaId($arResult['SECTION']['ID']); ?>"
    ><a href="<? echo $arResult['SECTION']['SECTION_PAGE_URL']; ?>"><?
        echo (
            isset($arResult['SECTION']["IPROPERTY_VALUES"]["SECTION_PAGE_TITLE"]) && $arResult['SECTION']["IPROPERTY_VALUES"]["SECTION_PAGE_TITLE"] != ""
            ? $arResult['SECTION']["IPROPERTY_VALUES"]["SECTION_PAGE_TITLE"]
            : $arResult['SECTION']['NAME']
        );
    ?></a></h1><?
}
if (0 < $arResult["SECTIONS_COUNT"])
{
?>
<ul class="<? echo $arCurView['LIST']; ?>">
<?
    switch ($arParams['VIEW_MODE'])
    {
        case 'LINE':
            foreach ($arResult['SECTIONS'] as &$arSection)
            {
                $this->AddEditAction($arSection['ID'], $arSection['EDIT_LINK'], $strSectionEdit);
                $this->AddDeleteAction($arSection['ID'], $arSection['DELETE_LINK'], $strSectionDelete, $arSectionDeleteParams);
 
                if (false === $arSection['PICTURE'])
                    $arSection['PICTURE'] = array(
                        'SRC' => $arCurView['EMPTY_IMG'],
                        'ALT' => (
                            '' != $arSection["IPROPERTY_VALUES"]["SECTION_PICTURE_FILE_ALT"]
                            ? $arSection["IPROPERTY_VALUES"]["SECTION_PICTURE_FILE_ALT"]
                            : $arSection["NAME"]
                        ),
                        'TITLE' => (
                            '' != $arSection["IPROPERTY_VALUES"]["SECTION_PICTURE_FILE_TITLE"]
                            ? $arSection["IPROPERTY_VALUES"]["SECTION_PICTURE_FILE_TITLE"]
                            : $arSection["NAME"]
                        )
                    );
                ?><li id="<? echo $this->GetEditAreaId($arSection['ID']); ?>">
                <a
                    href="<? echo $arSection['SECTION_PAGE_URL']; ?>"
                    class="bx_catalog_line_img"
                    style="background-image: url('<? echo $arSection['PICTURE']['SRC']; ?>');"
                    title="<? echo $arSection['PICTURE']['TITLE']; ?>"
                ></a>
                <h2 class="bx_catalog_line_title"><a href="<? echo $arSection['SECTION_PAGE_URL']; ?>"><? echo $arSection['NAME']; ?></a><?
                if ($arParams["COUNT_ELEMENTS"])
                {
                    ?> <span>(<? echo $arSection['ELEMENT_CNT']; ?>)</span><?
                }
                ?></h2><?
                if ('' != $arSection['DESCRIPTION'])
                {
                    ?><p class="bx_catalog_line_description"><? echo $arSection['DESCRIPTION']; ?></p><?
                }
                ?><div style="clear: both;"></div>
                </li><?
            }
            unset($arSection);
            break;
        case 'TEXT':
            foreach ($arResult['SECTIONS'] as &$arSection)
            {
                $this->AddEditAction($arSection['ID'], $arSection['EDIT_LINK'], $strSectionEdit);
                $this->AddDeleteAction($arSection['ID'], $arSection['DELETE_LINK'], $strSectionDelete, $arSectionDeleteParams);
 
                ?><li id="<? echo $this->GetEditAreaId($arSection['ID']); ?>"><h2 class="bx_catalog_text_title"><a href="<? echo $arSection['SECTION_PAGE_URL']; ?>"><? echo $arSection['NAME']; ?></a><?
                if ($arParams["COUNT_ELEMENTS"])
                {
                    ?> <span>(<? echo $arSection['ELEMENT_CNT']; ?>)</span><?
                }
                ?></h2></li><?
            }
            unset($arSection);
            break;
        case 'TILE':
            foreach ($arResult['SECTIONS'] as &$arSection)
            {
                $this->AddEditAction($arSection['ID'], $arSection['EDIT_LINK'], $strSectionEdit);
                $this->AddDeleteAction($arSection['ID'], $arSection['DELETE_LINK'], $strSectionDelete, $arSectionDeleteParams);
 
                if (false === $arSection['PICTURE'])
                    $arSection['PICTURE'] = array(
                        'SRC' => $arCurView['EMPTY_IMG'],
                        'ALT' => (
                            '' != $arSection["IPROPERTY_VALUES"]["SECTION_PICTURE_FILE_ALT"]
                            ? $arSection["IPROPERTY_VALUES"]["SECTION_PICTURE_FILE_ALT"]
                            : $arSection["NAME"]
                        ),
                        'TITLE' => (
                            '' != $arSection["IPROPERTY_VALUES"]["SECTION_PICTURE_FILE_TITLE"]
                            ? $arSection["IPROPERTY_VALUES"]["SECTION_PICTURE_FILE_TITLE"]
                            : $arSection["NAME"]
                        )
                    );
                ?><li id="<? echo $this->GetEditAreaId($arSection['ID']); ?>">
                <a
                    href="<? echo $arSection['SECTION_PAGE_URL']; ?>"
                    class="bx_catalog_tile_img"
                    style="background-image:url('<? echo $arSection['PICTURE']['SRC']; ?>');"
                    title="<? echo $arSection['PICTURE']['TITLE']; ?>"
                    > </a><?
                if ('Y' != $arParams['HIDE_SECTION_NAME'])
                {
                    ?><h2 class="bx_catalog_tile_title"><a href="<? echo $arSection['SECTION_PAGE_URL']; ?>"><? echo $arSection['NAME']; ?></a><?
                    if ($arParams["COUNT_ELEMENTS"])
                    {
                        ?> <span>(<? echo $arSection['ELEMENT_CNT']; ?>)</span><?
                    }
                ?></h2><?
                }
                ?></li><?
            }
            unset($arSection);
            break;
        case 'LIST':
            $intCurrentDepth = 1;
            $boolFirst = true;
            foreach ($arResult['SECTIONS'] as &$arSection)
            {
                $this->AddEditAction($arSection['ID'], $arSection['EDIT_LINK'], $strSectionEdit);
                $this->AddDeleteAction($arSection['ID'], $arSection['DELETE_LINK'], $strSectionDelete, $arSectionDeleteParams);
 
                if ($intCurrentDepth < $arSection['RELATIVE_DEPTH_LEVEL'])
                {
                    if (0 < $intCurrentDepth)
                        echo "\n",str_repeat("\t", $arSection['RELATIVE_DEPTH_LEVEL']),'<ul>';
                }
                elseif ($intCurrentDepth == $arSection['RELATIVE_DEPTH_LEVEL'])
                {
                    if (!$boolFirst)
                        echo '</li>';
                }
                else
                {
                    while ($intCurrentDepth > $arSection['RELATIVE_DEPTH_LEVEL'])
                    {
                        echo '</li>',"\n",str_repeat("\t", $intCurrentDepth),'</ul>',"\n",str_repeat("\t", $intCurrentDepth-1);
                        $intCurrentDepth--;
                    }
                    echo str_repeat("\t", $intCurrentDepth-1),'</li>';
                }
 
                echo (!$boolFirst ? "\n" : ''),str_repeat("\t", $arSection['RELATIVE_DEPTH_LEVEL']);
                ?><li id="<?=$this->GetEditAreaId($arSection['ID']);?>"><h2 class="bx_sitemap_li_title"><a href="<? echo $arSection["SECTION_PAGE_URL"]; ?>"><? echo $arSection["NAME"];?><?
                if ($arParams["COUNT_ELEMENTS"])
                {
                    ?> <span>(<? echo $arSection["ELEMENT_CNT"]; ?>)</span><?
                }
                ?></a></h2><?
 
                $intCurrentDepth = $arSection['RELATIVE_DEPTH_LEVEL'];
                $boolFirst = false;
            }
            unset($arSection);
            while ($intCurrentDepth > 1)
            {
                echo '</li>',"\n",str_repeat("\t", $intCurrentDepth),'</ul>',"\n",str_repeat("\t", $intCurrentDepth-1);
                $intCurrentDepth--;
            }
            if ($intCurrentDepth > 0)
            {
                echo '</li>',"\n";
            }
            break;
    }
?>
</ul>
<?
    echo ('LINE' != $arParams['VIEW_MODE'] ? '<div style="clear: both;"></div>' : '');
}
?></div>
Вот PHP-шный код, я вообще не могу понять. Что, как и где..

Добавлено через 2 минуты
Как я понял, он на данный момент вытаскиевает "TILE", я пытался некоторое дописать с "LIST", но выводятся только главные разделы.
0
voral
917 / 614 / 135
Регистрация: 16.03.2008
Сообщений: 2,920
27.12.2018, 13:55 7
Если только главные - проверьте настойки компонента. Указан ли там достаточный уровень вложенности.
0
TazMan-Mahalov
0 / 0 / 0
Регистрация: 02.03.2017
Сообщений: 5
27.12.2018, 14:24  [ТС] 8
Указан

Добавлено через 25 минут
Помогите, что дописать нужно в коде?
0
27.12.2018, 14:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2018, 14:24

Опции отображения каталога и сортирововка по бренду в Битрикс
Как можно прикрутить опции отображения каталога так, чтобы после перезагрузки страницы они...

Управление сайтом старт
управление сайтом старт сделать - как на этой версии лицензии сделать интернет магазин именно на...

Интеграция 1С Управление Торговлей 10.3 с сайтом на Битрикс
Здравствуйте, планирую создать сайт для отображения номенклатуры из 1С Управление Торговлей 10.3,...


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

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

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