Orion
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 15
|
 |
« : 26.02.2012, 10:21:25 » |
|
При создании пунктов меню в Joomla 2.5 в разделе настроек присутствует раздел "Параметры отображения страницы". В этом разделе есть поле, которое называется "CSS-класс страницы", с помощью которого, судя по описанию, можно изменить внешний вид ТОЛЬКО данной страницы. Только вот, как это сделать? Что должно быть указано в этом поле? В ранних версиях Joomla, если не ошибаюсь, присутствовало большое поле, в которое можно было вставить CSS-код, изменявший вид страницы. А как в новой версии?
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +348/-0
Online
Пол: 
Сообщений: 2449
Заяц, который любит давать советы
|
 |
« Ответ #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
Сообщений: 15
|
 |
« Ответ #2 : 26.02.2012, 11:32:03 » |
|
Спасибо большое! Файлы default.php проверил: во втором файле (в файле шаблона) в тексте присутствует дополнительный символ " ;" перед вторым знаком вопроса: <div class="com-content <?php echo $this->pageclass_sfx; ?>"> Не знаю, имеет ли это значение? И еще, для уточнения: новый класс записывается как раз в то самое поле CSS-класс страницы, да? А где описать сам класс, в каком файле CSS?
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #3 : 26.02.2012, 11:39:59 » |
|
Вобще, этот суффикс можно вызывать в шаблоне и приклеивать например к тегу body, получаем больше возможностей
|
|
|
|
|
Записан
|
|
|
|
|
Efanych
|
 |
« Ответ #4 : 26.02.2012, 11:54:09 » |
|
Вобще, этот суффикс можно вызывать в шаблоне и приклеивать например к тегу body, получаем больше возможностей
А как его можна в шаблоне вызвать?
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #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
|
 |
« Ответ #6 : 26.02.2012, 16:58:19 » |
|
Полезная фишка. Спасибо.
|
|
|
|
|
Записан
|
|
|
|
Algemir
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 10
|
 |
« Ответ #7 : 01.03.2012, 17:07:28 » |
|
А не будет ли господин столь великодушен, что объяснит более на пальцах) Делаю свой шаблон с нуля. Но в PHP ничего не смыслю.
Какие строчки и куда именно нужно вставить что бы класс прописывался в body?
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #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
Сообщений: 10
|
 |
« Ответ #9 : 02.03.2012, 11:22:15 » |
|
Спасибо! Оказывается я и в первый раз почти угадал)
|
|
|
|
|
Записан
|
|
|
|
Ohar
Новичок
Репутация: +0/-0
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
|
 |
« Ответ #11 : 10.05.2012, 03:24:45 » |
|
Ох, а я вот такую штуку писал:
Тогда уж лучше брать из активного пункта меню алиас, и использовать его в качестве класса страницы
|
|
|
|
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #12 : 11.05.2012, 02:18:39 » |
|
<body id="<?php echo JMenuSite::getInstance('site')->getActive()->alias; ?>">из совета danik.html 
|
|
|
|
|
Записан
|
|
|
|
xabbep
Осваиваюсь на форуме
 
Репутация: +0/-1
Offline
Пол: 
Сообщений: 42
|
 |
« Ответ #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
|
 |
« Ответ #14 : 11.05.2012, 03:51:24 » |
|
Значит этот файл нужно скопировать из components\com_content\views\article\tmpl\
|
|
|
|
|
Записан
|
|
|
|
xabbep
Осваиваюсь на форуме
 
Репутация: +0/-1
Offline
Пол: 
Сообщений: 42
|
 |
« Ответ #15 : 11.05.2012, 17:49:31 » |
|
Значит этот файл нужно скопировать из components\com_content\views\article\tmpl\
Я ничего не могу понять, скопировал этот файл, добавил недостающий путь. Смысл этого файла, если в шаблоне не был предусмотрен ни путь такой, ни файл, как и чем он будет обрабатываться? Он лежит там мёртвым грузом да и всё. Может кто-то "на пальцах" объяснить по-шагово ?
|
|
|
|
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #16 : 11.05.2012, 18:04:53 » |
|
Я ничего не могу понять, скопировал этот файл, добавил недостающий путь. Смысл этого файла, если в шаблоне не был предусмотрен ни путь такой, ни файл, как и чем он будет обрабатываться? Он лежит там мёртвым грузом да и всё. Может кто-то "на пальцах" объяснить по-шагово ?
Переименуйте файл myarticle.php и в опциях материала Article Options нужно выбрать альтернативный шаблон Alternative Layout Выберите свой файл. В нем и пропишите классы какие вам нужны. Так для разных материалов вы можете задавать свои шаблоны
|
|
|
|
|
Записан
|
|
|
|
xabbep
Осваиваюсь на форуме
 
Репутация: +0/-1
Offline
Пол: 
Сообщений: 42
|
 |
« Ответ #17 : 11.05.2012, 18:13:51 » |
|
Переименуйте файл myarticle.php и в опциях материала Article Options нужно выбрать альтернативный шаблон Alternative Layout Выберите свой файл. В нем и пропишите классы какие вам нужны. Так для разных материалов вы можете задавать свои шаблоны
Будете смеяться, наверное, но у меня такого файла тоже нет((
|
|
|
|
|
Записан
|
|
|
|
xabbep
Осваиваюсь на форуме
 
Репутация: +0/-1
Offline
Пол: 
Сообщений: 42
|
 |
« Ответ #18 : 11.05.2012, 18:17:08 » |
|
может кто-то за небольшое вознаграждение помочь ? Тема называется veniyard1.7
|
|
|
|
« Последнее редактирование: 11.05.2012, 18:25:39 от xabbep »
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #19 : 12.05.2012, 07:10:26 » |
|
Я ничего не могу понять, скопировал этот файл, добавил недостающий путь. Смысл этого файла, если в шаблоне не был предусмотрен ни путь такой, ни файл, как и чем он будет обрабатываться? Он лежит там мёртвым грузом да и всё. Может кто-то "на пальцах" объяснить по-шагово ?
Он не мертвым грузом лежит, его подхватит Joomla. Это механизм "переопределения" или "перекрытия" (override) макета (layout). Не знаю где лучше об этом почитать, но можно тут например. Будете смеяться, наверное, но у меня такого файла тоже нет((
Смеяться не будем, ибо вы неправильно поняли реплику. Нужно переименовать default.php в myarticle.php
|
|
|
|
|
Записан
|
|
|
|
xabbep
Осваиваюсь на форуме
 
Репутация: +0/-1
Offline
Пол: 
Сообщений: 42
|
 |
« Ответ #20 : 12.05.2012, 14:53:34 » |
|
Он не мертвым грузом лежит, его подхватит Joomla. Это механизм "переопределения" или "перекрытия" (override) макета (layout). Не знаю где лучше об этом почитать, но можно тут например.Смеяться не будем, ибо вы неправильно поняли реплику. Нужно переименовать default.php в myarticle.php переименовал файл в myarticle.php а как теперь указать, что мне нужен в определённых пунктах меню другой фон ?
|
|
|
|
|
Записан
|
|
|
|
|
art-apple
|
 |
« Ответ #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
|
 |
« Ответ #22 : 08.10.2012, 22:59:13 » |
|
А если класса нет будем видеть ошибку. Копируем чужие ошибки так это называется
|
|
|
|
|
Записан
|
|
|
|
|
art-apple
|
 |
« Ответ #23 : 09.10.2012, 04:46:25 » |
|
А если класса нет будем видеть ошибку. Копируем чужие ошибки так это называется
Не будет ошибки
|
|
|
|
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #24 : 09.10.2012, 05:00:56 » |
|
<body class=""> art-apple Это не ошибка по твоему. Из твоего примера где $bodysuffix вернет пустой результат на всех страницах где класс не определен. Глянь выше в постах на примерах. Где при пустых значениях класс подставляется. <body class="mybd<?php echo $bodysuffix; ?>"> //Видиш разницу
|
|
|
|
|
Записан
|
|
|
|
|
art-apple
|
 |
« Ответ #25 : 09.10.2012, 07:34:20 » |
|
<body class=""> Еще раз повторяю, это не является ошибкой! Если вы намекаете на валидность, то подучите HTML. Где он не определен там его и не должно быть, это логично. И к тому же никто не мешает вам дописать условие.
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +348/-0
Online
Пол: 
Сообщений: 2449
Заяц, который любит давать советы
|
 |
« Ответ #26 : 09.10.2012, 12:00:15 » |
|
art-apple, пустой аттрибут - не ошибка? О_o. Мы с валидатором и Poznakomlus считаем, что да.
|
|
|
|
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #27 : 09.10.2012, 12:17:22 » |
|
http://bytes.com/topic/html-css/answers/435777-class Еще немножко ошибокart-apple <body class=""> Еще раз повторяю, это не является ошибкой! Если вы намекаете на валидность, то подучите HTML. Где он не определен там его и не должно быть, это логично. И к тому же никто не мешает вам дописать условие. Не старайтесь мне говорить, что мне делать и я не скажу куда вам идти.
|
|
|
|
|
Записан
|
|
|
|
|
art-apple
|
 |
« Ответ #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
|
 |
« Ответ #29 : 09.10.2012, 15:19:25 » |
|
art-apple Ну чего вы так уперлись. Еше раз ошибка это. Поменяйте doctype на другой сразу увидите.
|
|
|
|
|
Записан
|
|
|
|
|