Доброго времени суток. Что-то меня "осенило", а есть возможность сделать свой фон для каждой категории на сайте? И как можно это сделать? Шаблон стандартный, который шёл по умолчанию в 0.863.
Спасибо.
7 3734
Еще записи по теме
- Всплывающая форма с фильтром в select
- Как сделать вывод записей сеткой/таблицей?
- Почему не отображаются стили после установки https?
- Как добавить к body параметры атрибута data?
- Как разместить свой слайдер в "первом блоке шапки"?
- Ошибка в плагине Хлебные крошки
- Как разместить lightslider над контентом записи?
Сергей, уточни - «сделать свой фон» - это имеется в виду поставить картинку в фон?
Допустим, если речь идёт об установке разных картинок в фон и воздействие должно быть оказано на тег body (в общем случае задача может быть иначе поставлена и фон нужно менять у какого-то другого блока, но тогда и решение будет немного иначе выглядеть).
Тогда нам нужно открыть файл \application\maxsite\templates\default\main\main.php и увидеть такой код:
Он означает, что если моменту его исполнения будет задана переменная body_class, то её значение будет прописано в качестве css-класса. Т.е. если мы создадим несколько классов с разными фонами, то задача сведётся к тому как и где установить значение переменной body_class?
Само по себе значение задаётся функцией mso_set_val(переменная, значение). Т.е. нам остаётся только понять где эту функцию вызвать.
Если мы хотим менять фон только на страницах рубрик, то логично было бы начать поиск с \application\maxsite\shared\type\category\category.php (в default-шаблоне по-умолчанию используется этот type-файл для отображения страниц рубрик), но это только на первый взгляд. Если поискать, то можно увидеть более логичное место для таких действий - \application\maxsite\templates\default\custom\my_functions.php. Это файл как раз и предназначен для хранения ваших функций и установки значений глобальных (для шаблона) переменных. Его прелесть в контексте нашей задачи ещё и в том, что этот файл выполняется для всех страниц сайта, т.е. в перспективе, можно здесь же порешать вопрос с фонами остальных типов страниц, а не только рубрик.
Итак, с местом определились и осталось понять каким кодом это можно сделать. Вариантов много, для примера приведу самый простой. Допустим у нас есть три рубрики со slug-ами - articles, news и media. Тогда можно написать такой код:
Поясню. Во-первых, мы делаем проверку - открываемая страница имеет тип category. Во-вторых, устанавливаем значение переменной body_class равной строке из двух классов - category и mso_segment(2). Т.к. функция mso_segment(2) возвращает значение второго сегмента поступившего запроса (для категорий стандартные запросы выглядят как /category/slug), то это будет одно из слов - articles, news и media. Тогда нам останется только прописать настройки css классов:
В целом, должно работать. Единственно, что могу ещё добавить так это то, что если использовать функцию mso_segment, то при внедрении плагина ЧПУ возможно потребуется подкорректировать код, чтобы он опирался в расчётах на правильный сегмент.
Чтобы изменять фон не с помощью тега body, а через свойства какого-то другого блока, нужны будут примерно те же действия, только вам нужно будет для вашего блока самому прописать примерно такой код:
И, соответственно, устанавливать значение переменной my_div_class, а не body_class.
Да. спс
Работает =) Пример
А если воспользоваться уже готовым решением? В папке css/profiles, где находятся файлы theme-red.css, theme-black.css и так далее, создаём файлы category_name1.css, category_name2.css, category_name3.css, category_name4.css по числу рубрик, в которых прописываем соответствующие css-стили. Затем, при редактировании статьи во вкладке "Дополнительные поля" выбираем "Профиль оформления" где указываем для статьи соответствующий профиль. Правда, такой способ не будет работать на странице вывода статей по указанной рубрике.
И как описал способ Илья в полной новости, тоже не подхватывается фон.
Немного по тестировал, мелькает в глазах, а это не очень хорошо, только если похожие фоны стоят, только например с разными иконками. Просто как вариант
Я так и не понял, так получилось или нет сделать по моему методу? А то в одном предложении вроде не подхватывается, а в другом уже "мелькает в глазах"
http://sovlife.ru/category/gotovim-doma