Html карта сайта для 1С-Битрикс

Html карта сайта для 1С-Битрикс

Html карта сайта для 1С-Битрикс

Какой же удобный модуль XML карты сайта у битрикса, и какой скудный компонент для генерации html карты сайта. Очень долгое время я ждал, когда же битриксоиды выпустят нечто адекватное. Не дождался... Пришлось писать компонент самому. Описание работы и ссылка на скачивание внутри статьи.

Нет, ну серьезно, Битрикс, что за дела? Я понимаю, что приоритетнее, конечно, именно xml карта сайта для роботов. Но оптимизаторы почему-то не перестали просить устанавливать карты сайта и для людей. Вы считаете, что по меню можно действительно построить достойную карту сайта? Путаница же будет дикая.

Есть онлайн-сервисы по генерации таких карт сайта, вот только генерируют они их в основном по тайтлам. Да и ограничение у них стоит на 500 ссылок. Так что для серьезных проектов подобные инструменты не подходят.

Описание компонента

Компонент выстраивает карту сайта на основе выбранных инфоблоков и статичных разделов сайта.

В шаблоне по-умолчанию сначала идет главная страница, затем все статичные разделы, и в конце уже содержимое инфоблоков: разделы и элементы.

html карта сайта битрикс

В компоненте изначально установлен минимальный список из папок, которые не будут обрабатываться картой сайта: bitrix, upload, search, cgi-bin, images. Вы можете дополнить его как захотите.

По остальным папкам будет произведен рекурсивный обход, в котором будет проверяться, есть ли в папке index.php. Если таковой имеется, значит это статичный раздел и он будет включен в карту сайта. В качестве анкора для ссылки будет использовано название раздела.

Установка компонента

Тут все очень просто:

  • Скачиваете архив с компонентом (ссылка ниже);
  • Разархивируете его;
  • Копируете папку alittlebit.ru в папку /bitrix/components/ вашего сайта;
  • Далее создаете страницу, где у вас будет карта сайта;

После этого вам нужно будет в визуальном редакторе, в правом сайдбаре обновить список компонентов.

html карта сайта битрикс

У вас появится новый раздел alittlebit.ru с компонентом HTML карта сайта внутри.

html карта сайта битрикс

Дальше используете его как любой другой компонент.

Я возможно еще буду в дальнейшем его дорабатывать, пока Битрикс не выпустит чего-нибудь более-менее адекватного. Но пока этого функционала мне хватает с лихвой.

UPD 31.07.15: Обнаружена и исправлена ошибка обхода скриптом некоторых файлов.

UPD 05.10.15: Мой коллега, Роман, доработал карту сайта - сделал вывод физических разделов в виде древа.

UPD 13.01.17: Исправлены проблемы построения корректного древа на базе вложенности урлов. Плюс убрано дублирование названий пунктов карты сайта и отсутствие названий пунктов, если у раздела не прописано названия в .section.php. Вместо этого теперь выводится "Без названия", чтобы вы могли легко понять, где упущение, зайти в папку и назвать раздел нужным образом.


bitrix_sitemap_html.zip (скачать)

  • Все сделал по инструкции: Скачиваете архив с компонентом (ссылка ниже); Разархивируете его; Копируете папку alittlebit.ru в папку /bitrix/components/ вашего сайта; Далее создаете страницу, где у вас будет карта сайта; После этого вам нужно будет в визуальном редакторе, в правом сайдбаре обновить список компонентов. Компонент не хочет отображаться в визуальном редакторе. подскажите в чем может быть проблема, кеш компонентов обновлял, результата ноль. Спасибо.
  • Здравствуйте! Если вы все сделали по инструкции, то компонент должен без проблем появиться у вас в списке компонентов. Скажите, в вы положили папку с компонентом в "корень_сайта/bitrix/components/" или в "корень_сайта/bitrix/templates/ваш_шаблон/bitrix/components/?
  • Спасибо разобрался. Положил компонент в "корень_сайта/bitrix/templates/ваш_шаблон/bitrix/components/, затем перекинул в "корень_сайта/bitrix/components/" и все заработало. С настройками разобрался, все банально просто, спасибо за компонент! =)
  • Ну и славно =) Всегда пожалуйста!
  • Добрый день, Максим Опять использую Ваш компонент, незаменим в каждом проекте. Спасибо большое.
  • И вам доброго дня, Роман! Спасибо за лестный отзыв! =)
  • Добрый день! Не могу добавить папку alittlebit.ru в папку /bitrix/components/ . Подскажите, как это сделать?
  • Здравствуйте, Виктория! А в чем проявляется невозможность добавить папку? Каким образом вы это делаете? Как вариант, у вас, у папки bitrix или у папки components, не выставлены соответствующие права (CHMOD). Попробуйте сменить их на 0755, и уже затем снова закиньте туда папку alittlebit.ru. Еще один вариант - у вас недостаточно места на диске. Как один из вариантов решения могу предложить через админку битрикса закачать архив с компонентом в папку bitrix/components и там же, через админку, разархивировать его.
  • Здравствуйте! На здоровье! =)
  • Здравствуйте! Отличная идея компонента, спасибо. Вот только почему-то работает не совсем корректно. Во-первых, папки-исключения почему-то не были проставлены по дефолту. Ну это нестрашно. Но вот галочка "Если в инфоблоке есть разделы, включить в карту сайта элементы этих разделов" почему-то не дает результата (элементы инфоблоков не выводятся вообще, [CHILD] в массиве $section пустой), может проблема в каких-то особых настройках доступа к инфоблокам? Ну а список статичных разделов тоже вывелся почему-то вперемешку.
  • Здравствуйте! Отличная идея компонента, спасибо. Вот только почему-то работает не совсем корректно. Во-первых, папки-исключения почему-то не были проставлены по дефолту. Ну это нестрашно. Но вот галочка "Если в инфоблоке есть разделы, включить в карту сайта элементы этих разделов" почему-то не дает результата (элементы инфоблоков не выводятся вообще, [CHILD] в массиве $section пустой), может проблема в каких-то особых настройках доступа к инфоблокам? Ну а список статичных разделов тоже вывелся почему-то вперемешку.
  • Здравствуйте, Александра! Прошу прощения за поздний ответ. Обновил компонент карты сайта, замените им ваш текущий компонент, пожалуйста (не забудьте про шаблон). Теперь разделы строятся корректно (да, была такая проблема раньше). А по поводу пустого CHILD могу лишь предположить, что у вас деактивированы разделы или элементы, так как в карту сайта попадают только активные записи из инфоблоков.
  • Здравствуйте! Как исключить дочерние разделы оставив родительские?
  • Здравствуйте! Извиняюсь за столь поздний ответ. К сожалению, в текущей версии исключить дочерние разделы нельзя. Возможно в будущем я переработаю механизм и расширю функционал =)
  • Какую-то дичь выводит... Не работает((
  • Какую-то дичь выводит... Не работает((
  • Добрый день, установил компонент, все работает https://tequiladance.ru/o-nas/karta-sayta/, но некорректно выводятся элементы инфоблока в котором есть разделы, в чем может быть причина? https://yadi.sk/i/Gw-PJFcY3Mjquf
  • Такая же проблема как у Руслана, вместо элементов инфоблока с разделами выводятся непонятные символы, был бы очень признателен за помощь
  • Такая же ситуация как у Руслана и Максима. Получилось решить проблему?