Форум русской поддержки Joomla!® CMS
10.12.2016, 09:06:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Свой фон для body

 (Прочитано 600 раз)
0 Пользователей и 1 Гость смотрят эту тему.
lencick
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« : 28.03.2015, 02:53:57 »

Добрый вечер!  Есть сайт, нужно чтобы на разных страницах был свой фон для body. Подскажите, как это можно реализовать?
Записан
AlekVolsk
Профи
********

Репутация: +317/-3
Offline Offline

Пол: Мужской
Сообщений: 6461



« Ответ #1 : 28.03.2015, 09:52:29 »

К чему (к какому условию) привязывается цвет фона? Пункт меню? Материал? Вывод компонента?
Записан
neogeek
Давно я тут
****

Репутация: +18/-2
Offline Offline

Сообщений: 212


« Ответ #2 : 28.03.2015, 10: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
Завсегдатай
*****

Репутация: +15/-0
Offline Offline

Сообщений: 674


« Ответ #3 : 28.03.2015, 10:48:07 »

Если проста на разных страницах сайта свой фон. Можно шаблон для тех страниц поставить второй, третий...
И менять все что надо, в том числе фон.
Записан
Taatshi
Support Team
*****

Репутация: +430/-3
Offline Offline

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #4 : 29.03.2015, 00:33:53 »

Вариант покороче

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

вместо body

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

В пункте меню задаете класс в параметрах страницы - теперь у Вас body будет для этого пункта с классом - вот по нему и задаете особый фон для страницы.
Записан
kristmass
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #5 : 01.04.2015, 09: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
Профи
********

Репутация: +317/-3
Offline Offline

Пол: Мужской
Сообщений: 6461



« Ответ #6 : 01.04.2015, 10:06:36 »

Код
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 Azn
Записан
kristmass
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #7 : 01.04.2015, 10:21:03 »

Появилась новая проблемка картинка маленькая, занимает всего четверть экрана(((
Записан
stendapuss
Завсегдатай
*****

Репутация: +15/-0
Offline Offline

Сообщений: 674


« Ответ #8 : 01.04.2015, 10:45:12 »

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

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #9 : 01.04.2015, 11:04:40 »

Спс)))
Записан
stendapuss
Завсегдатай
*****

Репутация: +15/-0
Offline Offline

Сообщений: 674


« Ответ #10 : 01.04.2015, 11:57:02 »

background-color: #000000; пропишите какой надо. Если картинка не будет отображаться допустим. На черном фоне черный цвет шрифта не виден будет. Не знаю цвет вашего шрифта.
Записан
1AZ1
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 4


« Ответ #11 : 16.08.2015, 13:50:18 »

Вариант покороче

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

вместо body

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

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

Репутация: +430/-3
Offline Offline

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #12 : 16.08.2015, 14:08:08 »

Только, по-моему, не нужен пробел после page.
Это по желанию. Можно вообще выводить класс только в том случае, если он прописан. А, если не прописан - не выводить.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet