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

вывод компонентов на определенных страницах

00 голосов
7
У меня в шаблоне есть колонка в которой, выводятся различные компоненты, список новостей, категории, опросники и т.д. Как управлять всеми эти компонентами, если надо выводить на каких-то страницах только список новостей, на каких-то и новости и опрос, на каких-то ничего не выводить? комбинаций может быть много и создание нескольких шаблонов не устраивает.
т.е. надо конкретно указать что вот новости выводим на таких страницах, опрос на таких, каталог на таких...
пробовал задать дополнительные свойства странице, для каждого блока информации ставить признак, выводится он или нет на этой странице, но доп свойства, я так понял, читаются только методом отложенных функций? тоже не нравится пока такой вариант, может что-то проще есть?
Спасибо.
спросил 05 Авг, 13 от Hanzo2 (160 баллов)

7 Ответы

00 голосов
Через компонент "Включаемая область". Тип области - "для файла".
ответил 05 Авг, 13 от Pomnep (13,960 баллов)
00 голосов
что имеется ввиду под типом области - для файла?
в настройках есть:
Показывать включаемую область:
-ИЗ файла
-для страницы
-для раздела

какую из них выбрать чтобы добиться желаемого результата?

какую не выбираю, у меня создается файл в папке в которой находится текущая страница, в области выводится текст,
который задаю для включаемой области, но контент из work_area при этом пропадает.

неужели для каждой страницы будет создаваться отдельный файл включаемой области? они ж все одинаковые, как их потом править?
ответил 04 Окт, 13 от Hanzo2 (160 баллов)
00 голосов
Если у Вас разные компоненты должны выводиться в разных разделах (не страницах) - выбираете "для раздела". Соответственно, в каждом разделе создаете свой. Если для страниц - тогда выбираете "для страницы". И тогда да, для каждой страницы придется создавать свою.
Цитата
Михаил Кошкин пишет:
неужели для каждой страницы будет создаваться отдельный файл включаемой области? они ж все одинаковые, как их потом править?

Какую логику запросили, то и предложили. Есть, конечно, более извращенный вариант:
Код
$strPath = $APPLICATION->GetCurPage(true);
switch ($strPath)
{
case '/index.php':
case '/about/index.php'
case '/test.php':
     // включаем один компонент
     break;
case '/projects/price.php':
case '/test/':
     // включаем второй компонент
     break;
default:
     // включаем дефолтный компонент
     break;
}

но контент-менеджер Вас проклянет.
ответил 05 Янв, 14 от Pomnep (13,960 баллов)
00 голосов
Вот для него родимого (контент-менеджера и мучаюсь).
Я хочу один и тот же компонент, с одними и теми же настройками выводить на нескольких страницах. Неужели надо для каждой страницы создавать включаемый файл???? а если я что-то в компоненте захочу изменить, мне потом все эти файлы править?
ответил 21 Апр, 14 от Hanzo2 (160 баллов)
00 голосов
Цитата
Михаил Кошкин пишет:
Я хочу один и тот же компонент, с одними и теми же настройками выводить на нескольких страницах.

Повторяю - если все эти страницы относятся к одному разделу, сделайте ОДНУ включаемую область для РАЗДЕЛА.
Цитата
Михаил Кошкин пишет:
Неужели надо для каждой страницы создавать включаемый файл????

Да, если у Вас нельзя структурировать эти страницы (объединить в разделы). Либо воспользоваться вторым способом, который я привел.
Цитата
Михаил Кошкин пишет:
а если я что-то в компоненте захочу изменить, мне потом все эти файлы править?

Уи, мсье. Натурально, придется.
ответил 15 Авг, 14 от Pomnep (13,960 баллов)
00 голосов
дело в том что контент менеджер создает новые разделы и страницы самостоятельно и должен иметь возможность выбирать, на каких включить отображение компонента, а на каких нет. Видимо метод включаемых областей здесь не подходит :(
ответил 20 Дек, 14 от Hanzo2 (160 баллов)
00 голосов
Цитата
Михаил Кошкин пишет:
дело в том что контент менеджер создает новые разделы и страницы самостоятельно и должен иметь возможность выбирать, на каких включить отображение компонента, а на каких нет. Видимо метод включаемых областей здесь не подходит

Как раз он в этом случае - единственное решение проблемы. В том смысле, что Вы, как программист, ему не потребуетесь.
ответил 11 Апр, 15 от Pomnep (13,960 баллов)

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

0 голосов
4 ответов
спросил 22 Янв, 14 от Smoki (100 баллов)
0 голосов
2 ответов
0 голосов
3 ответов
0 голосов
0 ответов
0 голосов
2 ответов