【问题标题】:Theming for/with javascript?为/使用 javascript 进行主题化?
【发布时间】:2010-12-16 21:18:43
【问题描述】:

一位同事做了一个小模块,根据用户可配置的搜索词检索推特搜索结果,并将它们显示在一个块中。

他正在使用 javascript 进行搜索以将流量保持在客户端,例如: $.getJSON('http://search.twitter.com' etc.. 然后在返回 json 结果时将它们插入到块中,将返回的数据包装在 html 中并将其附加到块中。

有没有办法可以从 javascript 层使它成为主题?如果没有将它 back 传递到 drupal 并失去让它位于客户端的带宽等优势?

【问题讨论】:

  • 附带说明,您可能需要检查 juitter 模块 (drupal.org/project/juitter)。它几乎与您描述的一样,仅在页面内而不是在块内。添加块生成逻辑已经是那里的功能请求,因此您的同事可能有兴趣扩展它而不是维护单独的模块。

标签: javascript drupal twitter theming


【解决方案1】:

从 Drupal 6 开始,通过 javascript 提供/获取动态内容的模块应该通过从 Drupal js 命名空间调用 Drupal.theme('function_name', ...) 将其转换为 HTML。模块可以/应该通过将它们添加到 Drupal.theme.prototype 命名空间来提供自己的 js 主题功能(或覆盖)。

该机制应该与标准主题机制类似,但到目前为止记录不足。请参阅this entry in the module conversion guide,以及the example towards the end of this post

【讨论】:

    【解决方案2】:

    使用 semantic HTML 并将生成的 HTML 设置为 CSS

    【讨论】:

    • 是的,这差不多现在正在发生,并且可能是最好的解决方案。我想我也对一个通用解决方案感兴趣,该解决方案可以应用于可能无法涵盖所有​​基础的更复杂示例。
    • 一般的解决方案是使用通用语义 HTML 进行建模,例如“远程消息”。
    【解决方案3】:

    你可以完全用 CSS 来做主题。

    【讨论】:

    • 我认为您将样式与主题混为一谈。 Drupal 中的主题化表示从某种任意形式的数据(例如本例中的 json 或 XML)生成标记。因此,您需要先将数据主题 放入标记中,以便之后通过 CSS 对其进行样式
    猜你喜欢
    • 2020-06-19
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2017-10-20
    • 2014-06-26
    • 1970-01-01
    • 2014-11-29
    • 2016-01-03
    相关资源
    最近更新 更多