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

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

[FAQ] CSS-класс страницы

 (Прочитано 39235 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Orion
Захожу иногда
**

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

Сообщений: 12


« : 26.02.2012, 10:21:25 »

При создании пунктов меню в Joomla 2.5 в разделе настроек присутствует раздел "Параметры отображения страницы". В этом разделе есть поле, которое называется "CSS-класс страницы", с помощью которого, судя по описанию, можно изменить внешний вид ТОЛЬКО данной страницы. Только вот, как это сделать? Что должно быть указано в этом поле?
В ранних версиях Joomla, если не ошибаюсь, присутствовало большое поле, в которое можно было вставить CSS-код, изменявший вид страницы. А как в новой версии?
« Последнее редактирование: 29.08.2013, 10:11:33 от b2z » Записан
Shustry
Moderator
*****

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

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


Рисую дизайны


« Ответ #1 : 26.02.2012, 10:37:17 »

Код:
<div class="item-page<?php echo $this->pageclass_sfx?>">
...в самом начале файла components\com_content\views\article\tmpl\default.php
Посмотрите, чтобы в templates\шаблон\html\com_content\article\default.php тоже так было. Дальше просто. Пишете класс "-krevedki", и можете индивидуально оформлять CSS по селектору .item-page-krevedki
Записан
Orion
Захожу иногда
**

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

Сообщений: 12


« Ответ #2 : 26.02.2012, 11:32:03 »

Спасибо большое!

Файлы default.php проверил: во втором файле (в файле шаблона) в тексте присутствует дополнительный символ ";" перед вторым знаком вопроса:
Код:
<div class="com-content <?php echo $this->pageclass_sfx; ?>">
Не знаю, имеет ли это значение?

И еще, для уточнения: новый класс записывается как раз в то самое поле CSS-класс страницы, да? А где описать сам класс, в каком файле CSS?
Записан
danik.html
Практически профи
*******

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

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



« Ответ #3 : 26.02.2012, 11:39:59 »

Вобще, этот суффикс можно вызывать в шаблоне и приклеивать например к тегу body, получаем больше возможностей
Записан
Efanych
Группа развития
*****

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

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



« Ответ #4 : 26.02.2012, 11:54:09 »

Вобще, этот суффикс можно вызывать в шаблоне и приклеивать например к тегу body, получаем больше возможностей
А как его можна в шаблоне вызвать?
Записан
danik.html
Практически профи
*******

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

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



« Ответ #5 : 26.02.2012, 14:35:50 »

А как его можна в шаблоне вызвать?
А вот так вот:

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

Кстати, если в качестве суффикса указать слово с пробелом впереди, то получим второй класс:
Код
$pageClassSuffix = ' about-me';
 
Код
<div class="page about-me">...</div>
 
Код
.page{
border: 1px solid gray;
}
.about-me{
background: url(../images/about-me.jpg) no-repeat;
}
 
Иногда удобно
Записан
Efanych
Группа развития
*****

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

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



« Ответ #6 : 26.02.2012, 16:58:19 »

Полезная фишка. Спасибо.
Записан
Algemir
Захожу иногда
**

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

Сообщений: 10


« Ответ #7 : 01.03.2012, 17:07:28 »

А не будет ли господин столь великодушен, что объяснит более на пальцах)
Делаю свой шаблон с нуля. Но в PHP ничего не смыслю.

Какие строчки и куда именно нужно вставить что бы класс прописывался в body?
Записан
danik.html
Практически профи
*******

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

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



« Ответ #8 : 01.03.2012, 20:35:20 »

Код
<?php 
 $pageClassSuffix = JSite::getMenu()->getActive()? JSite::getMenu()->getActive()->params->get('pageclass_sfx', '-default') : '-default';
?>
<body class="page<?php echo $pageClassSuffix ?>">
...
</body>
 
Записан
Algemir
Захожу иногда
**

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

Сообщений: 10


« Ответ #9 : 02.03.2012, 11:22:15 »

Спасибо!
Оказывается я и в первый раз почти угадал)
Записан
Ohar
Новичок
*

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

Сообщений: 2


« Ответ #10 : 17.03.2012, 21:02:39 »

Ох, а я вот такую штуку писал:
Код
<?php //Определение ID для <body>
if (strpos($_SERVER['REQUEST_URI'],'index.php')){
$body_id = 'index_page';
}
elseif (strpos($_SERVER['REQUEST_URI'],'about')){
$body_id = 'about_page';
}
elseif (strpos($_SERVER['REQUEST_URI'],'projects')){
$body_id = 'projects_page';
}
elseif (strpos($_SERVER['REQUEST_URI'],'faq')){
$body_id = 'faq_page';
}
else {
$body_id = 'inner_page';
}
?>
<body id="<?php echo $body_id;?>">
Записан
danik.html
Практически профи
*******

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

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



« Ответ #11 : 10.05.2012, 03:24:45 »

Ох, а я вот такую штуку писал:
Тогда уж лучше брать из активного пункта меню алиас, и использовать его в качестве класса страницы
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #12 : 11.05.2012, 02:18:39 »

Код
<body id="<?php echo JMenuSite::getInstance('site')->getActive()->alias; ?>">
из совета danik.html   Smiley
Записан
xabbep
Осваиваюсь на форуме
***

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

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



« Ответ #13 : 11.05.2012, 03:19:27 »

Код:
<div class="item-page<?php echo $this->pageclass_sfx?>">
...в самом начале файла components\com_content\views\article\tmpl\default.php
Посмотрите, чтобы в templates\шаблон\html\com_content\article\default.php тоже так было. Дальше просто. Пишете класс "-krevedki", и можете индивидуально оформлять CSS по селектору .item-page-krevedki

А если у меня нет файла default.php по пути templates\шаблон\html\com_content\article\ как быть ? J2.5, нужно изменить фон на нескольких страницах, а как это сделать не могу понять.
Записан
danik.html
Практически профи
*******

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

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



« Ответ #14 : 11.05.2012, 03:51:24 »

Значит этот файл нужно скопировать из components\com_content\views\article\tmpl\
Записан
xabbep
Осваиваюсь на форуме
***

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

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



« Ответ #15 : 11.05.2012, 17:49:31 »

Значит этот файл нужно скопировать из components\com_content\views\article\tmpl\

Я ничего не могу понять, скопировал этот файл, добавил недостающий путь. Смысл этого файла, если в шаблоне не был предусмотрен ни путь такой, ни файл, как и чем он будет обрабатываться? Он лежит там мёртвым грузом да и всё. Может кто-то "на пальцах" объяснить по-шагово ?
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #16 : 11.05.2012, 18:04:53 »

Я ничего не могу понять, скопировал этот файл, добавил недостающий путь. Смысл этого файла, если в шаблоне не был предусмотрен ни путь такой, ни файл, как и чем он будет обрабатываться? Он лежит там мёртвым грузом да и всё. Может кто-то "на пальцах" объяснить по-шагово ?
Переименуйте файл myarticle.php и в опциях материала Article Options нужно выбрать альтернативный шаблон Alternative Layout
Выберите свой файл. В нем и пропишите классы какие вам нужны. Так для разных материалов вы можете задавать свои шаблоны
Записан
xabbep
Осваиваюсь на форуме
***

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

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



« Ответ #17 : 11.05.2012, 18:13:51 »

Переименуйте файл myarticle.php и в опциях материала Article Options нужно выбрать альтернативный шаблон Alternative Layout
Выберите свой файл. В нем и пропишите классы какие вам нужны. Так для разных материалов вы можете задавать свои шаблоны

Будете смеяться, наверное, но у меня такого файла тоже нет((
Записан
xabbep
Осваиваюсь на форуме
***

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

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



« Ответ #18 : 11.05.2012, 18:17:08 »

может кто-то за небольшое вознаграждение помочь ? Тема называется veniyard1.7
« Последнее редактирование: 11.05.2012, 18:25:39 от xabbep » Записан
danik.html
Практически профи
*******

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

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



« Ответ #19 : 12.05.2012, 07:10:26 »

Я ничего не могу понять, скопировал этот файл, добавил недостающий путь. Смысл этого файла, если в шаблоне не был предусмотрен ни путь такой, ни файл, как и чем он будет обрабатываться? Он лежит там мёртвым грузом да и всё. Может кто-то "на пальцах" объяснить по-шагово ?
Он не мертвым грузом лежит, его подхватит Joomla. Это механизм "переопределения" или "перекрытия" (override) макета (layout). Не знаю где лучше об этом почитать, но можно тут например.
Будете смеяться, наверное, но у меня такого файла тоже нет((
Смеяться не будем, ибо вы неправильно поняли реплику. Нужно переименовать default.php в myarticle.php
Записан
xabbep
Осваиваюсь на форуме
***

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

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



« Ответ #20 : 12.05.2012, 14:53:34 »

Он не мертвым грузом лежит, его подхватит Joomla. Это механизм "переопределения" или "перекрытия" (override) макета (layout). Не знаю где лучше об этом почитать, но можно тут например.Смеяться не будем, ибо вы неправильно поняли реплику. Нужно переименовать default.php в myarticle.php

переименовал файл в myarticle.php а как теперь указать, что мне нужен в определённых пунктах меню другой фон ?
Записан
art-apple
Давно я тут
****

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

Сообщений: 389


« Ответ #21 : 08.10.2012, 19:58:45 »

А как его можна в шаблоне вызвать?
Еще можно вот так
Добавляем в шаблон
Код:
<?php
$menuitemid = JRequest::getInt( 'Itemid' );
if ($menuitemid) {
    $menu = JSite::getMenu();
    $bodysuffix = $menu->getParams( $menuitemid )->get('pageclass_sfx');
}
?>
теперь можем использовать класс
Код:
<body class="<?php echo $bodysuffix; ?>">
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #22 : 08.10.2012, 22:59:13 »

А если класса нет будем видеть ошибку. Копируем чужие ошибки так это называется
Записан
art-apple
Давно я тут
****

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

Сообщений: 389


« Ответ #23 : 09.10.2012, 04:46:25 »

А если класса нет будем видеть ошибку. Копируем чужие ошибки так это называется
Не будет ошибки
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #24 : 09.10.2012, 05:00:56 »

Код
<body class="">
art-apple Это не ошибка по твоему. Из твоего примера где $bodysuffix вернет пустой результат на всех страницах где класс не определен. Глянь выше в постах на примерах. Где при пустых значениях класс подставляется.
Код
<body class="mybd<?php echo $bodysuffix; ?>">
//Видиш разницу
Записан
art-apple
Давно я тут
****

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

Сообщений: 389


« Ответ #25 : 09.10.2012, 07:34:20 »

Код:
<body class="">
Еще раз повторяю, это не является ошибкой! Если вы намекаете на валидность, то подучите HTML. Где он не определен там его и не должно быть, это логично. И к тому же никто не мешает вам дописать условие.
Записан
Shustry
Moderator
*****

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

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


Рисую дизайны


« Ответ #26 : 09.10.2012, 12:00:15 »

art-apple, пустой аттрибут - не ошибка? О_o. Мы с валидатором и Poznakomlus считаем, что да.
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #27 : 09.10.2012, 12:17:22 »

http://bytes.com/topic/html-css/answers/435777-class
Еще немножко ошибок
art-apple
Код:
<body class="">
Еще раз повторяю, это не является ошибкой! Если вы намекаете на валидность, то подучите HTML. Где он не определен там его и не должно быть, это логично. И к тому же никто не мешает вам дописать условие.
Не старайтесь мне говорить, что мне делать и я не скажу куда вам идти.
Записан
art-apple
Давно я тут
****

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

Сообщений: 389


« Ответ #28 : 09.10.2012, 15:03:15 »

art-apple, пустой аттрибут - не ошибка? О_o. Мы с валидатором и Poznakomlus считаем, что да.
Да? а вот теперь проверьте валидатором (http://validator.w3.org) вот такую разметку с пустым атрибутом, я сделал это только что
Код:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />
</head>

<body class="">

<div id="wrapper">

<header id="header">
<strong>Header:</strong> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras tortor. Praesent dictum, libero ut tempus dictum, neque eros elementum mauris, quis mollis arcu velit ac diam. Etiam neque. Quisque nec turpis. Aliquam arcu nulla, dictum et, lacinia a, mollis in, ante. Sed eu felis in elit tempor venenatis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut ultricies porttitor purus. Proin non tellus at ligula fringilla tristique. Fusce vehicula quam. Curabitur vel tortor vitae pede imperdiet ultrices. Sed tortor.
</header><!-- #header-->

<div id="content">
<strong>Content:</strong> Sed placerat accumsan ligula. Aliquam felis magna, congue quis, tempus eu, aliquam vitae, ante. Cras neque justo, ultrices at, rhoncus a, facilisis eget, nisl. Quisque vitae pede. Nam et augue. Sed a elit. Ut vel massa. Suspendisse nibh pede, ultrices vitae, ultrices nec, mollis non, nibh. In sit amet pede quis leo vulputate hendrerit. Cras laoreet leo et justo auctor condimentum. Integer id enim. Suspendisse egestas, dui ac egestas mollis, libero orci hendrerit lacus, et malesuada lorem neque ac libero. Morbi tempor pulvinar pede. Donec vel elit.
</div><!-- #content-->

</div><!-- #wrapper -->

<footer id="footer">
<strong>Footer:</strong> Mus elit Morbi mus enim lacus at quis Nam eget morbi. Et semper urna urna non at cursus dolor vestibulum neque enim. Tellus interdum at laoreet laoreet lacinia lacinia sed Quisque justo quis. Hendrerit scelerisque lorem elit orci tempor tincidunt enim Phasellus dignissim tincidunt. Nunc vel et Sed nisl Vestibulum odio montes Aliquam volutpat pellentesque. Ut pede sagittis et quis nunc gravida porttitor ligula.
</footer><!-- #footer -->

</body>
</html>
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #29 : 09.10.2012, 15:19:25 »

art-apple Ну чего вы так уперлись. Еше раз ошибка это. Поменяйте doctype на другой сразу увидите.
Записан
Страниц: [1] 2 3  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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