drupal - 在 Drupal 6 中包含特定节点的 CSS 或 Javascript 文件

标签 drupal preprocessor

在 Drupal 6 中包含特定节点的 CSS 或 Javascript 文件的最佳方法是什么?

我想在我的网站上创建一个运行了一个小 javascript 应用程序的页面,因此 CSS 和 javascript 是特定于该页面的,根本不希望包含在其他页面加载中。

最佳答案

我建议不要使用 hook_nodeapi为了那个原因。添加 CSS 和 Javascript 与布局有关,所以 hook_nodeapi不是它的地方:使用主题。这样,您可以在开发新主题时覆盖这些文件。使用 nodeapi 方法执行此操作会有点困难(您必须在 js/css 列表中搜索文件,删除它们并用您自己的替换它们)。

无论如何:您需要做的是添加一个节点预处理功能,为您添加这些文件。您可以在模块或自定义主题中执行此操作。对于一个模块,这将是:

function mymodule_preprocess_node(&$variables) {
  $node = $variables['node'];
  if (!empty($node) && $node->nid == $the_specific_node_id) {
    drupal_add_js(drupal_get_path('module', 'mymodule') . "/file.js", "module");
    drupal_add_css(drupal_get_path('module', 'mymodule') . "/file.css", "module");
  }
}

或主题:
function mytheme_preprocess_node(&$variables) {
  $node = $variables['node'];
  if (!empty($node) && $node->nid == $the_specific_node_id) {
    drupal_add_js(path_to_theme() . "/file.js", "theme");
    drupal_add_css(path_to_theme(). "/file.css", "theme");
  }
}

首先不要忘记清除缓存。

这些函数在节点主题化之前被调用。在那里指定 js/css 允许级联方法:您可以在模块中拥有通用/基本的东西,并在主题中提供增强或特定的功能。

关于drupal - 在 Drupal 6 中包含特定节点的 CSS 或 Javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61735/

相关文章:

url - 列出所有具有占位符图片的产品

drupal - Drupal 托管服务应具备的功能列表

C、#if指令和编译错误: operator '/' has no right operand

c - 在预处理器指令中使用枚举值

mysql - 从 couchbase 到 MySql 的 Drupal cronjob 不工作

drupal - 访问 $form_state 并从中获取数据

php - 从 ms word 复制和粘贴后,ckeditor 格式看起来不太好

c# - C# 中的 Java 预处理器

c++ - 使用 C++ 预处理器自动生成重复代码

java - 在将数据转换为 XML 之前对其进行预处理?