如何仅对Drupal 7中自定义模块创建的节点使用自定义css

时间:2012-12-10 21:31:59

标签: drupal drupal-7 drupal-theming

我在Drupal 7中有一个创建节点的自定义模块。我希望在呈现由我的自定义模块创建的其中一个节点时应用自定义css样式表(customstyle.css),但在呈现由我的自定义模块创建的其中一个节点时,

简单的解决方案(将stylesheets[all][] = customstyle.css添加到我的自定义模块的.info文件中)将样式表应用于所有页面,包括包含节点 not 创建的页面通过我的自定义模块。我不希望这样。

2 个答案:

答案 0 :(得分:5)

我认为“我的自定义模块创建的节点”意味着它们有一些特殊的节点类型。如果是,您可以在模块中实现hook_node_view(),然后根据节点类型或任何其他属性调用drupal_add_css()

function mymodule_node_view($node, $view_mode) {
  if ($view_mode != 'rss') {
    if ($node->type == 'mynodetype') {
      drupal_add_css(drupal_get_path('module', 'mymodule') . '/mynodetype.css');
    }
  }
}

答案 1 :(得分:0)

我会这样做网站建设者的方式。使用Context定位该节点类型,然后指定反应以加载CSS文件,只需使用.context-[node type]来定位这些页面中的特定元素。

例如,如果您的节点类型是苹果食谱,则可以使用.context-apple-recipes