Куда мне включить css-файл?


Будучи полным новичком в Drupal, я спросил себя, куда мне включить css-файл? (С использованием Drupal 6)

Я написал веб-приложение с javascript, php и mysql, и теперь я делаю первые шаги в переносе этого приложения на Drupal. Я уже узнал об этом в Stackoverflow Как включить файлы css и javascript.
Поскольку теперь я знаю, какую функцию использовать для включения моего css-файла, я не знаю , где.
Должен ли я просто создать новый модуль (названный "mymodule", как в примере из stackoverflow)?
Или файл css применяется только к модулю "mymodule"? Если да, то как я могу применить его к странице, заполненной обычным HTML?

 2
Author: Community, 2014-03-11

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>";
}
 1
Author: rwg1138, 2014-03-11 11:22:33

Чтобы включить свой пользовательский css, скажите demo_global.css в свою тему, напишите следующую строку в theme_name.info файл вашей папки с темой -

      stylesheets[all][] = css/demo_global.css

Примечание: Вы должны очистить кэш, чтобы увидеть изменения. Для получения дополнительной информации, пожалуйста, обратитесь к https://drupal.org/node/171209

 4
Author: Astha chauhan, 2014-03-11 11:07:18

Это для пользовательского модуля, вы помещаете это в свой файл .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');
}
 1
Author: John O, 2015-06-30 21:59:51

Для создания пользовательского модуля, пожалуйста, перейдите по следующим ссылкам:

Чтобы включить файл CSS для всех страниц сайта, вы можете выполнить одно из следующих действий:

  1. Включите его в информационный файл темы как: таблицы стилей[все][] = ИМЯ ФАЙЛА.css
  2. Включите его в информационный файл модуля как: таблицы стилей[все][] =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

 0
Author: Ankit Agrawal, 2014-03-11 12:00:11