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

body ID

00 голосов
6
Добрый день, сильно озаботился таким вопросом: позволяет ли движок динамически подставлять ID для тега body из ЧПУ, как это реализовать?

Что я имею ввиду — есть страница допустим content/news/index.php?news=368
Для неё в коде нужен тег вида <body id="content-news"> (или просто news)

Или для страниц с результатами поиска — <body id=search">

Чувствую, что это реализуемо, и достаточно просто, а на практике это сняло бы необходимость делать 2 лишних шаблона для внутренних страниц, и назначать их отдельно для новостей и для результатов поиска.

Подскажите плиз. Спасибо заранее ;)
спросил 12 Июнь, 13 от zloiall (320 баллов)

6 Ответы

00 голосов
Можно использовать константы. Устанавливаем к примеру так:
Код
<?$APPLICATION->SetPageProperty("type_page","news")?>

а в шаблоне дастаем:
Код
<body id="<?$APPLICATION->ShowProperty("type_page")?>">
ответил 12 Июнь, 13 от fbdf (140 баллов)
00 голосов
Алексей, я правильно понимаю, что Вы предлагаете руками забивать константы?
Я совсем не об этом спрашивал, я ищу универсальное решение, сходное с ЧПУ.
ответил 24 Июнь, 13 от zloiall (320 баллов)
00 голосов
Попробуйте это, здесь первый уровень из адреса подставляется классом в body:
init.php
Код
function GetClassByPath() {
 global $APPLICATION;
 $arRetDirs = array();

 $dir = $APPLICATION->GetCurDir();
 $arDirs = explode('/', $dir);

 $arRetDirs = array($arDirs[1]);
 if (strlen(SITE_DIR) > 1) {
  $arRetDirs[] = $arDirs[2];
 }

 $retDirs = implode('-', $arRetDirs);
 return $retDirs ? ' class="'.$retDirs.'"' : '';
}


header.php (шаблон):
Код
<body<?=GetClassByPath()?>>
ответил 28 Сен, 13 от Emtee (140 баллов)
00 голосов
Владимир, подскажите пожалуйста битрикс-пионеру, где находится init.php ;) :oops:
ответил 29 Дек, 13 от zloiall (320 баллов)
00 голосов
/bitrix/php_interface/init.php
ответил 14 Апр, 14 от Tetis (500 баллов)
00 голосов
ой какой супер, спасибо большое! :)
ответил 08 Авг, 14 от zloiall (320 баллов)

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

0 голосов
1 ответ
0 голосов
1 ответ
0 голосов
0 ответов
0 голосов
0 ответов