Как сделать смену фона?

#
Как сделать смену фона?
Здравствуйте.
Сделала дополнительным свойством фон раздела. Хотелось бы прописать смену фонов в системе, так чтобы при загрузке картинки, она вставала бы фоном. Для каждого раздела своя картинка. Если картинки нет, то фон страницы белый. Как это можно реализовать?
#
Re: Как сделать смену фона?
Имеется в виду доп. свойство для узлов структуры?
#
Re: Как сделать смену фона?
да.
#
Re: Как сделать смену фона?
Для начала пропишите(например, в макете в тэге <body> ) белый фон страниц. Например так:
<body bgcolor="#FFFFFF">
...
</body>

А затем в этот макет внесите код:
<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">

<?
$Structure = new Structure();
$propertylist[] = CURRENT_STRUCTURE_ID;
$mas = $Structure->GetStructureProperty($propertylist);
$i = 0;
$id_prop = 5;

$InformationSystem = new InformationSystem();
if(isset($mas[CURRENT_STRUCTURE_ID][$id_prop]))
{
$exp = $InformationSystem->GetExpansion($mas[CURRENT_STRUCTURE_ID][$id_prop]['structure_propertys_values_value']);
$img_fon = "/upload/private/structure_propertys_image_".$mas[CURRENT_STRUCTURE_ID][$id_prop]['structure_propertys_values_id'].".".$exp;
}
else
{
$img_fon = '/';
}
?>
<style type="text/css">
body
{
background: url('<?=$img_fon?>');
}
</style>
...
</body>

В качестве значения переменной $id_prop вместо 5 следует подставить идентификатор доп. свойства структуры, из которого будет браться изображение для каждого раздела.
#
Re: Как сделать смену фона?
Вот так оно стало ругаться:
ЗАМЕЧАНИЕ: Use of undefined constant fon - assumed 'fon' в файле /home/l/landsnet/landshafta.net/htdocs/templates/template7/template.htm (строка 23)
ЗАМЕЧАНИЕ: Undefined index: structure_propertys_values_value в файле /home/l/landsnet/landshafta.net/htdocs/templates/template7/template.htm (строка 31)
ЗАМЕЧАНИЕ: Undefined index: structure_propertys_values_id в файле /home/l/landsnet/landshafta.net/htdocs/templates/template7/template.htm (строка 32)

Может я не совсем поняла? Если речь идет об одном макете, то зачем два раза ставить <body bgcolor="#FFFFFF">?
#
Re: Как сделать смену фона?
<body bgcolor="#FFFFFF"> в макет нужно вставлять только один раз. Я написала таким образом, чтобы акцентировать Ваше внимание. Попробуйте код в макете заменить на этот:
<?
$Structure = new Structure();
$propertylist[] = CURRENT_STRUCTURE_ID;
$mas = $Structure->GetStructureProperty($propertylist);
$i = 0;
$id_prop = 5;

$InformationSystem = new InformationSystem();
if(isset($mas[CURRENT_STRUCTURE_ID][$id_prop]))
{
$exp = $InformationSystem->GetExtansion($mas[CURRENT_STRUCTURE_ID][$id_prop]['structure_propertys_values_value']);
$img_fon = $Structure->GetStructureItemDir(CURRENT_STRUCTURE_ID) . "structure_propertys_image_".$mas[CURRENT_STRUCTURE_ID][$id_prop]['structure_propertys_values_id'].".".$exp;
}
else
{
$img_fon = '/';
}
?>
<style type="text/css">
body
{
background: url('<?=$img_fon?>');
}
</style>

Вы подставили в качестве значения $id_prop значение идентификатора Вашего доп. свойства структуры типа "файл"?
Кроме того, для того, чтобы картинки фона отображались на странице сайта Вам необходимо обновить файл .htaccess для директории privite. Этот файл можно запросить в службе тех. поддержки.
#
Re: Как сделать смену фона?
Значение идентификатора подставляю-выдается ошибка

ЗАМЕЧАНИЕ: Use of undefined constant fon - assumed 'fon' в файле /home/l/landsnet/landshafta.net/htdocs/templates/template7/template.htm (строка 24)

Если ничего не подставляю-все работает!
#
Re: Как сделать смену фона?
Вышлете данные доступа к разделу администрирования на адрес службы тех. поддержки.
#
Re: Как сделать смену фона?
Отправила.
#
Re: Как сделать смену фона?
HVitaminka, у Вас на сайте идентификатор этого доп. свойства тоже имеет значение 5, поэтому менять в коде ничего не требуется. Я так понимаю, сейчас все работает?
Авторизация