Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Вопрос по меню. Как разобраться?

00 голосов
7
Я тут совсем новичок, и очень нуждаюсь в ответе на мой вопрос, очень надеюсь найти понимание.
Ситуация такая. Я создал шаблон и перенёс его в Битрикс и потом активировал. Сайт принял задуманный вид. Но, вот возникла сложность с подключением модулей. Второй день поиска ответа (написанного для новичка) результата по прежнему не дал. Подскажите как мне создать меню и вывести его на страницы сайта?

Я прибег к следующим попыткам (не знаю на сколько они вам покажутся бредовыми, но от без исходности делал и так)
Из папки bitrix\menu\templates\.default скопировал все файлы, и переместил их в www\bitrix\templates\alvallc\components\bitrix\menu\abc, где alvallc это папка с мои шаблоном.

Затем в папке www\bitrix\templates\alvallc создал меню (из верхней панели) в каталоге появился файл .left.menu.php его содержание ниже.
Код
<?
$sMenuTemplate = "";
$aMenuLinks = Array(
   Array(
      "Гланая", 
      "", 
      Array(), 
      Array(), 
      "" 
   )
);
?>


Далее в header.php в нужное место добавил код подключения модуля меню таким кодом
Код
<?$APPLICATION->IncludeComponent("bitrix:menu", "abc", array(
   "ROOT_MENU_TYPE" => "left",
   "MENU_CACHE_TYPE" => "N",
   "MENU_CACHE_TIME" => "3600",
   "MENU_CACHE_USE_GROUPS" => "Y",
   "MENU_CACHE_GET_VARS" => array(
   ),
   "MAX_LEVEL" => "1",
   "CHILD_MENU_TYPE" => "left",
   "USE_EXT" => "N",
   "ALLOW_MULTI_SELECT" => "N"
   ),
   false
);?> 


В режиме разработки при редактировании параметров компонента появился шаблон alvallc: abc
Вроде бы всё хорошо, но меню генерируется не в файл www\bitrix\templates\alvallc\.left.menu.php
А в файл с таким же именем только в директорию www

Как правильно создать и вставить меню на сайте? Подскажите пожалуйста. Только доходчиво и если есть возможность с примерами.
P.S не прибегая к визуальному редактору, он коверкает код...
спросил 04 Авг, 13 от madclown (160 баллов)

7 Ответы

00 голосов
Файл меню (.left.menu.php) нужно размещать в публичном пространстве сайта, а не в шаблоне, т.к. шаблон теоретически может использоваться на нескольких сайтах одновременно.
Т.е. разместите .left.menu.php в корне сайта. Или в разделе сайта, если меню должно быть только для данного раздела.

В остальном вроде вы все правильно сделали.

И уберите из .left.menu.php:
Код
$sMenuTemplate = ""; 
ответил 04 Авг, 13 от Delp (7,220 баллов)
00 голосов
Sergey Leshchenko,
Большое спасибо за ответ! Я думаю в ходе работы с меню у меня появятся вопросы, которые задам в этой теме. :oops: Сейчас попробую всё сделать аккуратно и удалив указанную строку.
ответил 04 Окт, 13 от madclown (160 баллов)
00 голосов
А если к примеру я захочу подключить какой либо модуль я должен скопировать его из
www\bitrix\components\bitrix
в
www\bitrix\templates\alvallc\components\bitrix
И вставить код на страницу который подключит этот модуль? Или модуль подключается сразу из папки www\bitrix\components\bitrix? Как подключать модули из папки www\bitrix\templates\alvallc\components\bitrix ???
ответил 04 Янв, 14 от madclown (160 баллов)
00 голосов
Цитата
tep70-0576 пишет:
www\bitrix\components\bitrix

Для начала - компоненты, а не модули :)

В пространство шаблонов сайта (bitrix/templates/<имя шаблона>/) копируются шаблоны (представление) комопнентов.
Чтобы подключать компоненты вовсе не обязательно их шаблоны выносить в пространство шаблона сайта. Это необходимо делать когда вас не устраивает сам шаблон и нужно его подкорректировать.
Шаблоны компонентов лежат в папках templates/ компонентов.
Например, для компонента ленты новостей bitrix:news.line шаблоны находятся здесь:
bitrix/components/bitrix/news.line/templates/
Т.о. если вы хотите видоизменить ленту новостей, вам необходимо папку
bitrix/components/bitrix/news.line/templates/.default/ скопировать в папку
bitrix/templates/alvallc/components/bitrix/news.line/.default/
где ".default" - это имя шаблона компонента и его можно менять, т.к. фактически у вас может быть несколько шаблонов для одного компонента.

В папке bitrix/components/bitrix/ и ее подпапках ничего! менять нельзя или при след. обновлении продукта вы рискуете потерять свои изменения.

На странице вы размещаете компонент, которому первым параметром передается нужное имя шаблона.
ответил 21 Апр, 14 от Delp (7,220 баллов)
00 голосов
Получите плюсик за отличный ответ! Спасибо большое, понял принцип работы Битрикса.
ответил 15 Авг, 14 от madclown (160 баллов)
00 голосов
tep70-0576, так вроде в курсе про компоненты 2.0 http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=18 написано не плохо

Да и вообще там много вкусного :) http://dev.1c-bitrix.ru/learning/index.php
Ну и некоторые интересные документы есть в разделе документации, например, "Руководство по использованию компонентов Меню" http://dev.1c-bitrix.ru/docs/php.php#tab-start-link или там не очень хорошо описано? :)
ответил 20 Дек, 14 от sickmind (4,660 баллов)
00 голосов
Александр Черкасов,
Написано хорошо, для тех кто не в первый раз имеет дело с подобными продуктами. Лично я читал статьи по первой ссылке, благодаря ей экспериментировал, и оказалось понял более или менее верно. Здорово, что есть такая документация о Битриксе, но мне как новичку всё же требуются иногда подсказки даже в самом элементарном :oops:
ответил 10 Апр, 15 от madclown (160 баллов)

Похожие вопросы

0 голосов
3 ответов
0 голосов
6 ответов
спросил 14 Сен, 13 от Serofim (800 баллов)
0 голосов
1 ответ
спросил 30 Авг, 13 от Daltazar (280 баллов)
0 голосов
2 ответов
0 голосов
4 ответов
спросил 03 Июль, 13 от KaTpiHa (120 баллов)