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

Переменные в Битриксе

00 голосов
2
Ситуация следующая: необходимо в шаблоне сайта разместить несколько переменных, допустим, путь к папке с картинками:

Код
<!-- var -->
<? 
$image_dir = '/images';
?>
<!-- end of var -->


Далее хочу на странице использовать значение этой переменной (для примера пытаюсь просто вывести): <? echo($image_dir) ?>.

Если размещаю такой код в файле index.php - то выводится без проблем, если же на странице index.php добавлена включаемая область (index_inc.php), и такой вывод расположен в файле index_inc.php, то значение переменной не выводится.

1) Что делать? Как наследовать значение переменной?
2) Имеет ли смысл в шаблоне (header.php) хранить свои используемые на странице переменные или их вынести в отдельный файл (например, template_var.php) и подключать в шаблон содержимое уже этого файла, тем самым отделив его от визуального представления в шаблоне?
3) Где хранятся стандартные переменные Битрикса? Можно ли хранить дополнительные переменные там?


Таки образом, приходится в каждый файл включаемой области подключать переменные примерно таким кодом:
Код
<? require($_SERVER["DOCUMENT_ROOT"]."/var.php"); ?>
спросил 18 Фев, 14 от AndryxaSt (180 баллов)

2 Ответы

00 голосов
Настройки - Настройки продукта - Настройки модулей - Управление структурой
Создаёте свой тип свойств и в настройках папки определяете переменную. Потом с помощью CMain::GetProperty http://www.1c-bitrix.ru/api_help/main/reference/cmain/getproperty.php получаете данное значение и работаете с ним....

Это как вариант :)
ответил 13 Июль, 14 от sickmind (4,660 баллов)
00 голосов
Цитата
1) Что делать? Как наследовать значение переменной?

Цитата
global $val;
$GLOBALS['val'];

http://www.php.ru/manual/language.variables.scope.html

Цитата
2) Имеет ли смысл в шаблоне (header.php) хранить свои используемые на странице переменные или их вынести в отдельный файл (например, template_var.php) и подключать в шаблон содержимое уже этого файла, тем самым отделив его от визуального представления в шаблоне?

В вашем случаи это больше напоминает константы чем переменные, в таком случаи, я думаю, намного проще объявить их всех в init.php конкретного сайта, например
Цитата
define("IMAGE_PATH","/images");

и затем использовать
Цитата
<img src="<?=IMAGE_PATH?>/super-image.jpg">
ответил 13 Ноя, 14 от druid (580 баллов)

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

0 голосов
3 ответов
0 голосов
5 ответов
спросил 09 Май, 13 от avents (160 баллов)