Куда мне включить css-файл?
Будучи полным новичком в Drupal, я спросил себя, куда мне включить css-файл? (С использованием Drupal 6)
Я написал веб-приложение с javascript, php и mysql, и теперь я делаю первые шаги в переносе этого приложения на Drupal. Я уже узнал об этом в Stackoverflow Как включить файлы css и javascript.
Поскольку теперь я знаю, какую функцию использовать для включения моего css-файла, я не знаю , где.
Должен ли я просто создать новый модуль (названный "mymodule", как в примере из stackoverflow)?
Или файл css применяется только к модулю "mymodule"? Если да, то как я могу применить его к странице, заполненной обычным HTML?
4 answers
Как и в любом другом случае, есть несколько различных способов сделать это.
Если у вас есть пользовательский модуль (что, ИМО, вам следует, поскольку вы переносите пользовательское приложение), вы можете добавить любой CSS, необходимый для вашего модуля, в функции обратного вызова страницы вашего модуля. CSS, добавленный таким образом, применим только к этому конкретному пути. Просто К вашему сведению, если вы хотите, чтобы css применялся ко всему сайту, вам следует поместить его в тему.
Таким образом, ваш модуль будет выглядеть примерно так:
function mymodule_menu() {
$items['mymodule/blah'] = array(
'page callback' => 'mymodule_page_blah',
);
return $items;
}
function mymodule_page_blah(){
drupal_add_css(drupal_get_path('module', 'mymodule') . '/file.css', 'module', 'all', TRUE);
...
return "<your blah page's html>";
}
Чтобы включить свой пользовательский css, скажите demo_global.css в свою тему, напишите следующую строку в theme_name.info файл вашей папки с темой -
stylesheets[all][] = css/demo_global.css
Примечание: Вы должны очистить кэш, чтобы увидеть изменения. Для получения дополнительной информации, пожалуйста, обратитесь к https://drupal.org/node/171209
Это для пользовательского модуля, вы помещаете это в свой файл .module
В Drupal 6:
/**
* Implements of hook_preprocess_page()
*/
function <YOURMODULE>_preprocess_page(&$variables) {
$module_path = drupal_get_path('module', '<YOURMODULE>');
drupal_add_css($module_path . '/css/file.css');
$variables['styles'] = drupal_get_css();
}
В Drupal 7:
/**
* Implements hook_preprocess_page().
*/
function <YOURMODULE>_preprocess_page(&$variables) {
$module_path = drupal_get_path('module', '<YOURMODULE>');
drupal_add_css($module_path . '/css/file.css');
}
Для создания пользовательского модуля, пожалуйста, перейдите по следующим ссылкам:
- Создание модулей - учебное пособие: Drupal 6.x
- Написание файлов .info (Drupal 6.x)
- Быстрая и Умная Настройка модуля Drupal
- Рассказывая Drupal о своем модуле
Чтобы включить файл CSS для всех страниц сайта, вы можете выполнить одно из следующих действий:
- Включите его в информационный файл темы как: таблицы стилей[все][] = ИМЯ ФАЙЛА.css
- Включите его в информационный файл модуля как: таблицы стилей[все][] =FILENAME.css
Не забывайте очистите кэш после добавления файла CSS в файл .info
.
Однако, если вы включаете его в файл модуля, то помните, что он будет загружен только в том случае, если модуль включен.
Чтобы загрузить файл CSS для определенного узла, вы можете выполнить следующие действия в модуле файл:
/**
* Implements hook_preprocess_node().
*/
function MODULE_NAME_preprocess_node(&$variables) {
$node = $variables['node'];
// Check if the node is the one on which you want to include the CSS file.
if ((!empty($node)) && ($node->nid === $NODE_ID_ON_WHICH_YOU_WANT_TO_LOAD_CSS)) {
drupal_add_js(drupal_get_path('module', 'MODULE_NAME') . "/FILENAME.js", "module");
drupal_add_css(drupal_get_path('module', 'MODULE_NAME') . "/FILENAME.css", "module");
}
}
, Также вы можете проверить эту ссылку:
добавление таблицы стилей
drupal_add_css