Всем привет!
Парни торможу уже часов шесть, в поиске - болт,
Скажите плиз КАК? прописать для определенной странице свой style
тупо просто ТОЛЬКО свой стиль css. (вообще не соображу)
Пожалуйста если можно по подробнее а то мозги уже устали...???
При условии, что файл лежит в папке с темой в папке "css":
<?php drupal_add_css(drupal_get_path('theme', 'название-темы') . '/css/имя-файла.css', 'theme'); ?>
Прописывать нужно в node.tpl.php или писать модуль для подключения стиля на определенной странице, вылавливая ее например по URL или ID.
Знаешь я думаю какая то хрень в какой то мелочи, может я че то не туда пишу в node.tpl мы в любое место вставляем код или нет? (дьявол в деталях)
может я что то не учел?
Все должно работать, если вы правильно указали название темы и прописали путь к нужному файлу CSS внутри нее. Вставьте этот код в самом-самом верху node.tpl.php
P.S. Ну, а фаербагом (или аналогами подобного инструмента в других браузерах) вы зря не пользуетесь, очень зря.
Мне, например, больше Dragonfly в Opera нравится.
все получилось только теперь стиль прописался на все странице (то есть он добавился к основному)
как сделать что бы мой style-moy.css влиял не на все а на определенную страницу. в ноде код приведенный выше прописал бесполезно.
Создай блок.
Описание: что душе угодно
Заголовок: (так и пишется прямо в заголовок)
body:
<?php
drupal_add_css('путь_к_css');
?>
Фильтр: php
показывать на страницах: написать урл нужной страницы к примеру node или forum/*
Сохранить и выставить блок в шапку. И радоваться.
Скажите а в info-файле темы свой стиль прописывать или нет, (сейчас он прописан и проявляется везде) я читал что так оно и будет так как info-собирает все данные в общий стиль- вывод, что, его там не писать?
Неужели не кому не надо было свой css для определенной странице-что нет простого общего рецепта?
Лучше подключать в функции ИМЯ_ТЕМЫ_preprocess_page(&$vars) в файле template.php в папке темы.
анализируете адрес страницы(можно и не адрес, а все что угодно в переменной $vars), и в зависимости от результата поключаете нужный css... куда еще универсальнее?
если в template.php еще нет такой функции, вставляйте в конец файла в первую свободную строку..
если есть... в конц функции перед последней , "закрывающей" функцию , скобкой "}"
если в template.php еще нет такой функции, вставляйте в конец файла в первую свободную строку..
если есть... в конц функции перед последней , "закрывающей" функцию , скобкой "}"
drupal_add_css как и drupal_add_js не работают в шаблонах. Там выводится уже сформированная переменная $script/$styles и после формирования $script/$styles, добавлять через drupal_add_css/script бесполезно.
Поэтому есть два варианта.
1. В шаблоне после строки $styles, добавить типа такой строки
2. в самой теме, в файле ИМЯ_ТЕМЫ.info найти строки stylesheets[all][]
и добавить на строку ниже типа такого stylesheets[all][] = css/theme/theme.css
Оба варианта как по мне, не ахти. Как по мне, легче через модуль свой добавить css или script.
Но объяснять как делать модуль, я не буду)
Комментарии
http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_ad...
При условии, что файл лежит в папке с темой в папке "css":
<?php drupal_add_css(drupal_get_path('theme', 'название-темы') . '/css/имя-файла.css', 'theme'); ?>
Прописывать нужно в node.tpl.php или писать модуль для подключения стиля на определенной странице, вылавливая ее например по URL или ID.
STINGER что то не получается может где ошибка?
прописал, че то все равно глухо (кэш тоже скинул)
ХулиGUN - только не стыди(но я им не пользуюсь)
Знаешь я думаю какая то хрень в какой то мелочи, может я че то не туда пишу в node.tpl мы в любое место вставляем код или нет? (дьявол в деталях)
может я что то не учел?
Все должно работать, если вы правильно указали название темы и прописали путь к нужному файлу CSS внутри нее. Вставьте этот код в самом-самом верху node.tpl.php
P.S. Ну, а фаербагом (или аналогами подобного инструмента в других браузерах) вы зря не пользуетесь, очень зря.
Мне, например, больше Dragonfly в Opera нравится.
все получилось только теперь стиль прописался на все странице (то есть он добавился к основному)
как сделать что бы мой style-moy.css влиял не на все а на определенную страницу. в ноде код приведенный выше прописал бесполезно.
рукалицо.php
Создай блок.
Описание: что душе угодно
Заголовок: (так и пишется прямо в заголовок)
body:
<?php
drupal_add_css('путь_к_css');
?>
Фильтр: php
показывать на страницах: написать урл нужной страницы к примеру node или forum/*
Сохранить и выставить блок в шапку. И радоваться.
iHappy блин не получается с блоком, а по другому нельзя че так сложно?
проверь правильно пути к CSS
Должен начинаться не с "/"
Есть еще способы... но легче этого нет.
В блоке подключать css - если блок кешируется, код отрабатывать не будет..css не подключиться.
В шаблоне - хидер уже сформирован, ниче ниполучиться..
Лучше подключать в функции ИМЯ_ТЕМЫ_preprocess_page(&$vars) в файле template.php в папке темы.
Скажите а в info-файле темы свой стиль прописывать или нет, (сейчас он прописан и проявляется везде) я читал что так оно и будет так как info-собирает все данные в общий стиль- вывод, что, его там не писать?
Неужели не кому не надо было свой css для определенной странице-что нет простого общего рецепта?
анализируете адрес страницы(можно и не адрес, а все что угодно в переменной $vars), и в зависимости от результата поключаете нужный css... куда еще универсальнее?
а куда именно в template.php прописывать?
function phptemplate_preprocess_page(&$variables) {
if (file_exists($section_style = path_to_theme() .'/'. arg(0) .'.css')) {
drupal_add_css($section_style);
$variables['styles'] = drupal_get_css();
}
}
и как правильно его заполнить и в какое место template.php прописывать?
http://koykov.fedora.md/node/87
если в template.php еще нет такой функции, вставляйте в конец файла в первую свободную строку..
если есть... в конц функции перед последней , "закрывающей" функцию , скобкой "}"
Тогда у меня чудеса на многих сайтах.
function phptemplate_preprocess_page(&$variables) {
if (file_exists($section_style = path_to_theme() .'/'. arg(0) .'.css')) {
drupal_add_css($section_style);
$variables['styles'] = drupal_get_css();
}
}
как правильно заполнить код?
function phptemplate_preprocess_page(&$variables) {
if (file_exists($section_style = path_to_theme() .'/'. arg(0) .'.css')) {
drupal_add_css($section_style);
$variables['styles'] = drupal_get_css();
}
}
как правильно заполнить код?
как правильно заполнить код?
и еще при этом свой стиль в инфо файле темы, прописывать или не надо?
а в ссылке речь идет о подключении стиля в целом а не к конкретной странице..
Я вот так подключаю.
<?php drupal_add_css($directory.'/css/file.css');?>
Все работает
Прямо вначале нужного шаблона вписываю
Блин что же у меня не подключается, у меня не просто страница а тип материала cck может в этом дело?
Вижу 3 возможных проблемы
1. Неправильный путь
2. Подключаете не в том шаблоне
3. Нужно почистить кеш
<?php drupal_add_css($directory.'/css/style-fob.css');?> вот мой путь (фаил находится в папке css)
шаблон использую и node-add-fob.tpl и пробывал page-node-add-fob.tpl (fob-это имя материала cck)
кеш очищаю через сохранение темы.
drupal_add_css как и drupal_add_js не работают в шаблонах. Там выводится уже сформированная переменная $script/$styles и после формирования $script/$styles, добавлять через drupal_add_css/script бесполезно.
Поэтому есть два варианта.
1. В шаблоне после строки $styles, добавить типа такой строки
2. в самой теме, в файле ИМЯ_ТЕМЫ.info найти строки stylesheets[all][]
и добавить на строку ниже типа такого stylesheets[all][] = css/theme/theme.css
Оба варианта как по мне, не ахти. Как по мне, легче через модуль свой добавить css или script.
Но объяснять как делать модуль, я не буду)
iHappy спасибо буду знать