КАК подключить Style. css

Главные вкладки

Аватар пользователя artemrrr artemrrr 14 октября 2011 в 13:37

Всем привет!
Парни торможу уже часов шесть, в поиске - болт,
Скажите плиз КАК? прописать для определенной странице свой style
тупо просто ТОЛЬКО свой стиль css. (вообще не соображу)
Пожалуйста если можно по подробнее а то мозги уже устали...???

Комментарии

Аватар пользователя STINGER STINGER 14 октября 2011 в 15:04

При условии, что файл лежит в папке с темой в папке "css":

 <?php drupal_add_css(drupal_get_path('theme''название-темы') . '/css/имя-файла.css''theme'); ?> 
Прописывать нужно в node.tpl.php или писать модуль для подключения стиля на определенной странице, вылавливая ее например по URL или ID.

Аватар пользователя artemrrr artemrrr 14 октября 2011 в 19:14

ХулиGUN - только не стыди(но я им не пользуюсь)

Знаешь я думаю какая то хрень в какой то мелочи, может я че то не туда пишу в node.tpl мы в любое место вставляем код или нет? (дьявол в деталях)
может я что то не учел?

Аватар пользователя STINGER STINGER 14 октября 2011 в 22:42

"artemrrr" wrote:
STINGER что то не получается может где ошибка?

Все должно работать, если вы правильно указали название темы и прописали путь к нужному файлу CSS внутри нее. Вставьте этот код в самом-самом верху node.tpl.php

P.S. Ну, а фаербагом (или аналогами подобного инструмента в других браузерах) вы зря не пользуетесь, очень зря.
Мне, например, больше Dragonfly в Opera нравится.

Аватар пользователя artemrrr artemrrr 14 октября 2011 в 22:54

все получилось только теперь стиль прописался на все странице (то есть он добавился к основному)
как сделать что бы мой style-moy.css влиял не на все а на определенную страницу. в ноде код приведенный выше прописал бесполезно.

Аватар пользователя ihappy ihappy 14 октября 2011 в 23:11

рукалицо.php

Создай блок.
Описание: что душе угодно
Заголовок: (так и пишется прямо в заголовок)
body:
<?php
drupal_add_css('путь_к_css');
?>
Фильтр: php
показывать на страницах: написать урл нужной страницы к примеру node или forum/*
Сохранить и выставить блок в шапку. И радоваться.

Аватар пользователя Orion76 Orion76 15 октября 2011 в 8:41

В блоке подключать css - если блок кешируется, код отрабатывать не будет..css не подключиться.
В шаблоне - хидер уже сформирован, ниче ниполучиться..

Лучше подключать в функции ИМЯ_ТЕМЫ_preprocess_page(&$vars) в файле template.php в папке темы.

Аватар пользователя artemrrr artemrrr 15 октября 2011 в 10:15

Скажите а в info-файле темы свой стиль прописывать или нет, (сейчас он прописан и проявляется везде) я читал что так оно и будет так как info-собирает все данные в общий стиль- вывод, что, его там не писать?

Неужели не кому не надо было свой css для определенной странице-что нет простого общего рецепта?

Аватар пользователя Orion76 Orion76 15 октября 2011 в 10:28

"orion76" wrote:
Лучше подключать в функции ИМЯ_ТЕМЫ_preprocess_page(&$vars) в файле template.php в папке темы.

анализируете адрес страницы(можно и не адрес, а все что угодно в переменной $vars), и в зависимости от результата поключаете нужный css... куда еще универсальнее?

Аватар пользователя artemrrr artemrrr 15 октября 2011 в 11:00

а куда именно в 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 прописывать?

Аватар пользователя Orion76 Orion76 15 октября 2011 в 11:25

http://koykov.fedora.md/node/87

если в template.php еще нет такой функции, вставляйте в конец файла в первую свободную строку..
если есть... в конц функции перед последней , "закрывающей" функцию , скобкой "}"

Аватар пользователя ihappy ihappy 15 октября 2011 в 12:20

"orion76" wrote:
В блоке подключать css - если блок кешируется, код отрабатывать не будет..css не подключиться.

Тогда у меня чудеса на многих сайтах.

Аватар пользователя artemrrr artemrrr 15 октября 2011 в 12:30

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();
}
}

как правильно заполнить код?

Аватар пользователя artemrrr artemrrr 15 октября 2011 в 12:46

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();
}
}

как правильно заполнить код?

Аватар пользователя Orion76 Orion76 15 октября 2011 в 16:17

"orion76" wrote:

http://koykov.fedora.md/node/87

если в template.php еще нет такой функции, вставляйте в конец файла в первую свободную строку..
если есть... в конц функции перед последней , "закрывающей" функцию , скобкой "}"

Аватар пользователя artemrrr artemrrr 15 октября 2011 в 16:58

как правильно заполнить код?
и еще при этом свой стиль в инфо файле темы, прописывать или не надо?

а в ссылке речь идет о подключении стиля в целом а не к конкретной странице..

Аватар пользователя web09 web09 15 октября 2011 в 17:30

Я вот так подключаю.
<?php drupal_add_css($directory.'/css/file.css');?>

Все работает

Прямо вначале нужного шаблона вписываю

Аватар пользователя web09 web09 15 октября 2011 в 19:54

Вижу 3 возможных проблемы
1. Неправильный путь
2. Подключаете не в том шаблоне
3. Нужно почистить кеш

Аватар пользователя artemrrr artemrrr 15 октября 2011 в 20:58

<?php drupal_add_css($directory.'/css/style-fob.css');?> вот мой путь (фаил находится в папке css)

шаблон использую и node-add-fob.tpl и пробывал page-node-add-fob.tpl (fob-это имя материала cck)

кеш очищаю через сохранение темы.

Аватар пользователя ihappy ihappy 15 октября 2011 в 21:10

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.
Но объяснять как делать модуль, я не буду)