Свой фон для body

  • 12 Ответов
  • 797 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Свой фон для body
« : 28.03.2015, 03:53:57 »
Добрый вечер!  Есть сайт, нужно чтобы на разных страницах был свой фон для body. Подскажите, как это можно реализовать?

*

AlekVolsk

  • ********
  • 6301
  • 336
Re: Свой фон для body
« Ответ #1 : 28.03.2015, 10:52:29 »
К чему (к какому условию) привязывается цвет фона? Пункт меню? Материал? Вывод компонента?

*

neogeek

  • ****
  • 203
  • 18
Re: Свой фон для body
« Ответ #2 : 28.03.2015, 11:02:37 »
Я в шаблоне делаю так:
в index.php добавляем код
Код
$app             = JFactory::getApplication();
$doc             = JFactory::getDocument();
$user            = JFactory::getUser();
$this->language  = $doc->language;
$this->direction = $doc->direction;
$params = $app->getTemplate(true)->params;
$option   = $app->input->getCmd('option', '');
$view     = $app->input->getCmd('view', '');
$layout   = $app->input->getCmd('layout', '');
$task     = $app->input->getCmd('task', '');
$itemid   = $app->input->getCmd('Itemid', '');
$sitename = $app->get('sitename');
$this->setGenerator(null);
$tplurl = $this->baseurl.'/templates/'.$this->template;
if ($itemid) {
    $menu = JSite::getMenu();
    $bodysuffix = $menu->getParams($itemid)->get('pageclass_sfx');
if ($bodysuffix){ $class = ' class="'.$bodysuffix.' '.$option.' view-'.$view.($layout ? ' layout-' . $layout : ' no-layout').($task ? ' task-' . $task : ' no-task').($itemid ? ' itemid-' . $itemid : '').($params->get('fluidContainer')? ' fluid' : '').'"'; } else { $class = ' class="'.$option.' view-'.$view.($layout ? ' layout-' . $layout : ' no-layout').($task ? ' task-' . $task : ' no-task').($itemid ? ' itemid-' . $itemid : '').($params->get('fluidContainer')? ' fluid' : '').'"'; }
}

там же ниже заменяем
Код
<body> на <body<?php echo $class; ?>>

к тегу боди бует добавлятся куча классов(в вашем случае думаю хватит itemid или суффикса класса страницы), с помощью которых можно каждую страницу оформить как угодно

*

stendapuss

  • ******
  • 829
  • 19
Re: Свой фон для body
« Ответ #3 : 28.03.2015, 11:48:07 »
Если проста на разных страницах сайта свой фон. Можно шаблон для тех страниц поставить второй, третий...
И менять все что надо, в том числе фон.

*

Taatshi

  • *****
  • 4779
  • 452
Re: Свой фон для body
« Ответ #4 : 29.03.2015, 01:33:53 »
Вариант покороче

Код: php
<?php 
$pageClassSuffix = JFactory::getApplication()->getMenu()->getActive()? JFactory::getApplication()->getMenu()->getActive()->params->get('pageclass_sfx', 'default') : 'default';
?>

вместо body

Код: php
<body class="page <?php echo $pageClassSuffix ?>">

В пункте меню задаете класс в параметрах страницы - теперь у Вас body будет для этого пункта с классом - вот по нему и задаете особый фон для страницы.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.

Re: Свой фон для body
« Ответ #5 : 01.04.2015, 10:55:53 »
Подскажите пожалуйста что нужно вставить вместо вопроса чтобы стала картинка. Перепробовала все, становится просто белый фон(((
body {margin: 0 0 0 0;padding: 0 0 0 0;background:  ? ;font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;font-size: 0px;}
вот ссылка на картинку http://masyamba.ru/Спорт/68%20(Найк,%20разноцветные,%20люди,%20звезда).jpg

*

AlekVolsk

  • ********
  • 6301
  • 336
Re: Свой фон для body
« Ответ #6 : 01.04.2015, 11:06:36 »
Код: css
body {margin:0;padding:0;background:url('http://masyamba.ru/Спорт/68%20(Найк,%20разноцветные,%20люди,%20звезда).jpg') 0 0 no-repeat transparent;font-family:Verdana,Geneva,Arial,Helvetica, sans-serif;font-size:0;}
Только вот картинки по указанному адресу не существует (уберите из имени лишние символы, скобки, пробелы замените на символ нижнего подчеркивания _ , папку переименуйте латиницей, да и все имена файлов лучше тоже латиницей писать).
Но больше всего меня прикололо нулевой размер шрифта для body :)

Re: Свой фон для body
« Ответ #7 : 01.04.2015, 11:21:03 »
Появилась новая проблемка картинка маленькая, занимает всего четверть экрана(((

*

stendapuss

  • ******
  • 829
  • 19
Re: Свой фон для body
« Ответ #8 : 01.04.2015, 11:45:12 »
Появилась новая проблемка картинка маленькая, занимает всего четверть экрана(((
Типа:
   background: url("/images/3.jpg") no-repeat;
   background-size: 100%;
   background-attachment: fixed;
   background-color: #000000;  
В зависимости от разрешения картинку можно больше сделать. Сильно маленькая картинка будет, растянет ее. Плохо смотреться будет.
« Последнее редактирование: 01.04.2015, 12:55:04 от stendapuss »

Re: Свой фон для body
« Ответ #9 : 01.04.2015, 12:04:40 »
Спс)))

*

stendapuss

  • ******
  • 829
  • 19
Re: Свой фон для body
« Ответ #10 : 01.04.2015, 12:57:02 »
background-color: #000000; пропишите какой надо. Если картинка не будет отображаться допустим. На черном фоне черный цвет шрифта не виден будет. Не знаю цвет вашего шрифта.

*

1AZ1

  • *
  • 7
  • 0
Re: Свой фон для body
« Ответ #11 : 16.08.2015, 14:50:18 »
Вариант покороче

Код: php
<?php 
$pageClassSuffix = JFactory::getApplication()->getMenu()->getActive()? JFactory::getApplication()->getMenu()->getActive()->params->get('pageclass_sfx', 'default') : 'default';
?>

вместо body

Код: php
<body class="page <?php echo $pageClassSuffix ?>">

В пункте меню задаете класс в параметрах страницы - теперь у Вас body будет для этого пункта с классом - вот по нему и задаете особый фон для страницы.
Спасибо! Рабочее решение!
Только, по-моему, не нужен пробел после page.
Боишься - не делай! Делаешь - не бойся!

*

Taatshi

  • *****
  • 4779
  • 452
Re: Свой фон для body
« Ответ #12 : 16.08.2015, 15:08:08 »
Только, по-моему, не нужен пробел после page.
Это по желанию. Можно вообще выводить класс только в том случае, если он прописан. А, если не прописан - не выводить.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.