我在 Drupal 7 中有一个创建节点的自定义模块。我希望在呈现由我的自定义模块创建的节点之一时应用自定义 css 样式表(customstyle.css),但仅在呈现由我的自定义模块创建的节点之一时。
简单的解决方案(添加stylesheets[all][] = customstyle.css
到我的自定义模块的 .info 文件)将样式表应用于所有页面,包括包含不是由我的自定义模块创建的节点的页面。我不要那个。
我在 Drupal 7 中有一个创建节点的自定义模块。我希望在呈现由我的自定义模块创建的节点之一时应用自定义 css 样式表(customstyle.css),但仅在呈现由我的自定义模块创建的节点之一时。
简单的解决方案(添加stylesheets[all][] = customstyle.css
到我的自定义模块的 .info 文件)将样式表应用于所有页面,包括包含不是由我的自定义模块创建的节点的页面。我不要那个。
我假设“我的自定义模块创建的节点”意味着它们有一些特殊的节点类型。如果是这样,您可以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');
}
}
}
我会以网站建设者的方式来做。使用Context来定位该节点类型,然后分配响应以加载您的 CSS 文件,仅用于.context-[node type]
定位这些页面中的特定元素。
例如,如果您的节点类型是苹果食谱,您可以使用.context-apple-recipes