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

Работа со свойствами страници

00 голосов
5
Обнаружив возможность добавлять для каждой страници любое количсво параметров со значениями столкнулась с проблемой что не могу до них достучаться из шаблона.
Пользуюсь (нашла в демосайте пример) функцией
$APPLICATION->GetProperty("pagetype"). Но к сожаление ничего не возвращается
И сразу такой вопрос. Как реализовать следующее- есть файл, которые подключается на старницу с помощью includeFile. И подставить его нужно лишь в на одной странцие. Какой необходимо для этого поставить If? По каки параметрам можно идентифицировать странциу конкретную в шаблоне!
спросил 10 Ноя, 13 от SAT (100 баллов)

5 Ответы

00 голосов
Добрый день

Действительно, из шаблона нельзя "достучаться" до свойства, это связано с механизмом подключения шаблона.
Для Ваших задачи Вы можете использовать переменные и константы (например, объявляя
Код
$IsMainPage="Y";

в начале скрипта, перед подключением header.php.
Вы также можете воспользоваться методом
$APPLICATION->GetCurPage() для получения пути к текущей странице.
ответил 21 Дек, 13 от Damani (1,180 баллов)
00 голосов
Есть еще второй вариант. Когда в любом случае необходимо задавать свойство страницы, а не использовать произвольный переменные или констанаты. Необходимо использовать схему:
Код
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$APPLICATION->SetDirProperty(...);
$APPLICATION->SetPageProperty(...);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");?>
ТЕЛО СТРАНИЦЫ
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");?>


В этом случае в шаблоне который будет подключен в prolog_after.php можно использовать свойства страницы и/или раздела.
ответил 06 Апр, 14 от Kania (5,180 баллов)
00 голосов
Цитата
Luna --------- пишет:
Как реализовать следующее- есть файл, которые подключается на старницу с помощью includeFile. И подставить его нужно лишь в на одной странцие. Какой необходимо для этого поставить If? По каки параметрам можно идентифицировать странциу конкретную в шаблоне!


В принципе если известен путь к этой странице, то можно использовать код вида:

Код
if (strpos($APPLICATION->GetCurPage(),"/ru/index.php")!==false)
{
// выпоняем действия если находимся на странице /ru/index.php
}


Здесь свойства страницы целесообразно использовать только если у вас таких страниц много. Либо это же свойство будет где то еще использоваться.
ответил 30 Июль, 14 от Kania (5,180 баллов)
00 голосов
Vitaliy Kaplich, а не могли бы Вы разъяснить второй вариант, что же просиходит. Зачем подключаются prolog_before.php,prolog_after.php и epilog.php
и что значит $APPLICATION->SetDirProperty(...);
$APPLICATION->SetPageProperty(...);
ЧТо ставить вмепсто трех точек?
ответил 02 Дек, 14 от Kania (5,180 баллов)
00 голосов
Цитата
Гость пишет:
ЧТо ставить вмепсто трех точек?


CMain::SetPageProperty(
string property_id,
string property_value
)

property_id Идентификатор свойства.
property_value Значение свойства.

Примеры использования:

<?
$APPLICATION->SetPageProperty("keywords", "веб, разработка, программирование");
?>

===================

CMain::SetDirProperty(
string property_id,
string property_value
)

property_id Идентификатор свойства.
property_value Значение свойства.

Примеры использования:

<?
$APPLICATION->SetDirProperty("keywords", "дизайн, веб, сайт");
?>

Цитата
Гость пишет:
Зачем подключаются prolog_before.php,prolog_after.php и epilog.php


prolog_before - выполняет все необходимые действия (подключение к базе, инициализация всех необходимых объектов и т.д. и т.п.)

prolog_after - подключает шаблон дизайна... точнее его верхнюю часть

epilog - подключает и шаблон дизайна (его нижнюю часть) и выполняет все необходимые действия (отсылка почты, компрессирование контента и т.д.)
ответил 27 Март, 15 от Kania (5,180 баллов)

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

0 голосов
4 ответов
спросил 29 Дек, 13 от Wildest (500 баллов)
0 голосов
2 ответов
спросил 05 Май, 14 от Gibrit (100 баллов)
0 голосов
4 ответов
0 голосов
7 ответов
0 голосов
3 ответов