2

我需要为我的灯箱设置主题。我可以在 lightbox.js 中看到 JavaScript 代码生成的 HTML,但我无法覆盖该文件,否则在更新模块时我将丢失所做的更改。有没有更好的方法来覆盖主题输出?

4

2 回答 2

1

您没有报告您对哪个 Drupal 版本感兴趣;我给出的答案对 Drupal 6 有效,但对于 Drupal 7 来说几乎没有什么改变。

Lightbox2 使用模板文件作为其输出。如果您创建实现hook_theme_registry_alter()的自定义模块以使用不同的模板文件,那么您可以使用使用您编写的 JavaScript 文件的模板文件。

于 2011-04-09T15:37:15.200 回答
0

你不能仅仅通过改变 CSS 来做主题吗?

在您的主题的.info 文件中,您可以覆盖模块的css和/或js,然后将 css 或 js 文件从模块复制到您自己的主题文件夹中(每个主题都应该有一个 .info,如果没有创建一个) - 这意味着您不要触摸实际的 contrib 模块文件

然后 Drupal 将使用您主题中的一个,您可以根据自己的内容对其进行编辑,如果您确实遇到问题,您只需从 .info 文件中删除该条目,然后它将返回使用原始模块 filea。

我还没有为 JS 做过,但我相信这个过程与 CSS 相同,这是我的 .info 文件中的一个片段 - 顺便说一句,我认为一旦你使用这种覆盖方法,你就必须声明默认样式。也有 css

stylesheets[all][] = style.css
stylesheets[all][] = lightbox.css

更新:

只能使用 .info 文件来覆盖 D7 中的 JS,但是有一个模块JSAlter可能对 D6 有所帮助

于 2011-04-09T10:42:49.730 回答