0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
||||||
1 | ||||||
Как скрыть пустые разделы в меню битрикс?18.02.2018, 18:53. Просмотров 6543. Ответов 10
Метки нет Все метки)
(
Меню вывожу так
0
|
|
18.02.2018, 18:53 | |
Как в меню (шаблон horizontal multilevel) скрыть вывод товаров, оставив только разделы? Как создавать разделы в Битрикс?
|
|
19.02.2018, 11:22 | 2 |
Пункты в это меню попадают двумя способами:
1. "статические" пункты из файлов: .multilevel_menu.menu.php и .dropdown.menu.php 2. "динамически" из:: .multilevel_menu.menu_ext.php и .dropdown.menu_ext.php. В них, обычно, используют компонент bitrix:menu.sections В первом случае убирать только руками. Во втором в файле .*.menu_ext.php после компонента bitrix:menu.sections обойдите все пункты и проверьте сами есть ли в них товары - если нет удалите.... Тут важно проверить потом что бы это все кешировалось, иначе это ваше меню будет тормозить сайт. Но, может быть, правильнее просто такие разделы деактивировать?
1
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
||||||
19.02.2018, 14:18 [ТС] | 3 | |||||
Это желание клиента, не хочет просто деактивировать) в _ext.php такой код, как именно нужно проводить проверку? Вопрос конечно банальный, но я первый раз работаю с битрикс
0
|
19.02.2018, 14:59 | 4 |
Тут задача с подводными камнями (надо учесть вложенность, обязательно кеширование и т.п.) Раз первый раз работаете слишком большой шанс дров наломать. Наверное, самое оптимальное в вашем случае будет переделать это меню с компонента bitrix:menu на bitrix:catalog.section.list этот компонент может показывать количество элементов в в разделе. Вам останется только в шаблоне условие поставить: если это значение 0 то не выводить.
А клиенту необходимо пояснить если у вас структура каталогов большая, товары изменяются (не только появляются и удаляются с продаж) часто. ТО это будет тормозить ваш сайт. Если же надумаете все же делать на основе меню... Самое "прямое" копируйте в свое пространство компонент menu.sections (копируйте в каталог /local/components/berzeg/menu.sections из /bitrix/components/bitrix/menu.sections и правьте там файл components. Код вставляйте перед $this->EndResultCache(); Я бы примерно следующий алгоритм принял: 1. Из полученного массива собираете все ID шники разделов 2. CIblockElement::GetList передав в фильтр массив ИД (если у вас один товар может в нескольких разделах быть - там есть нюансы). Группируете по разделам и количество смотрите (при группировке добавится поле CNT).... 3. Чистите массив на основании полученных данных Добавлено через 1 минуту 4 в *menu_ext.php еже подключаете свой компонент berzeg:menu.sections Добавлено через 4 минуты Дополню. По хорошему тогда стоит время кеша поставить побольше и применить тегированный кеш так чтобы кеш вашего "меню" сбрасывался при изменениях элементов в ифноблока каталога
2
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
|
20.02.2018, 09:50 [ТС] | 5 |
С моим опытом в кодинге, хотелось бы найти еще какое то менее трудоемкое решение. Кто то советовал, что в bitrix меню все же можно вывести кол-во элементов, править component.php в menu-section, это реально?
0
|
20.02.2018, 10:20 | 6 |
Самый простой для вас способ переделать вывод меню на компонент bitrix:catalog.section.list это будет минимиум кодинга. Но нужно аккуратно перенести верстку и за bitrix:menu.
Реально. Только так как я вам сказал - скопировав компонент в свое пространство. В, целом, поскольку это меню будет на всех страницах сайта, и по своей сути требует серию запросов в БД.... Лучше обратитесь за помощью. Тут фраза из моей подписи очень подойдет.
0
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
|
20.02.2018, 10:49 [ТС] | 7 |
В общем вывел количество элементов в битрикс меню без каталог section, дальше пока снова ступор, буду разбираться, спасибо за советы
0
|
9 / 9 / 3
Регистрация: 23.05.2013
Сообщений: 129
|
|
10.04.2018, 09:10 | 8 |
А можно поточнее в каком месте шаблона компонента и, если не сложно, что прописать?
0
|
9 / 9 / 3
Регистрация: 23.05.2013
Сообщений: 129
|
|
11.04.2018, 02:26 | 10 |
Да, конечно. Это не сложно.
Я немного запутался в операторе условия. С чем именно сравнивать нолик?
0
|
11.04.2018, 10:17 | 11 |
Приведите здесь тот кусок кода где выводится раздел и количество элементов, чтоб мне не лезть туда.
0
|
11.04.2018, 10:17 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Как через VBA скрыть, отабразить элемент меню и вобще как к меню обращаться... Как создать разделы в меню Как вывести разделы торгового каталога в левое меню? Как вывести подразделы в меню битрикс? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |