接续以前的drupal话题

在上一章中我们编写了一个模块,从自定义内容类型中读取数据、并显示为区块内容。这个模块使用了我们创建的 Quote 内容类型。为了给我们的新内容类型提供布局信息,我们创建了一个默认主题作为模块的一部分。我们编写的主题代码生成必要的 HTML 和 CSS 以显示名言。

提示:在上一章末尾,我们为 Descartes 主题添加了一个模板,覆写了模块的默认主题。不过,在本章中,我们将继续使用默认主题。你必须取消 Descartes 主题中针对 philquotes 的修改,以便继续使用默认的主题。

当我们的 philquotes 模块在区块中显示时,一条名言显示为区块的内容。输出类似下面:

插图 5-1

现在我们要扩充 philquotes 模块。

我们将为它添加新特性:不必重新装入页面就可以刷新名言。为了做到这一点,我们将使用 Drupal JavaScript API 以及 jQuery 库的几个特性。

因此,当我们的模块完成时,将生成如下的区块:

插图 5-2

注意这条名言底部的 Next >> 链接。当点击它时,将重新装入名言的出处和正文,从数据库中随机选择另一条名言。

那么如何才能做得到呢?我们从现有代码开始。不过大多数代码不必修改,我们将在其中添加代码。

我们上一章中开发的 Philosophy Quotes 模块定义了如下函数:

  • philquotes_help(): hook_help() 钩子的一个实现。这个函数不需要修改。
  • philquotes_block(): hook_block() 钩子的一个实现。因为我们不需要修改区块代码,因此这个函数也不用动。
  • philquotes_theme(): hook_theme() 钩子的一个实现。这个函数也不用修改。

在我们的更改中,它们不会提供新的服务,因此在模块中也不再是主角。我们将使用下列函数:

  • _philquotes_get_quote(): 这个函数处理数据库查询。我们将在另一个环境中使用这个函数。
  • theme_philquotes_quote(): 我们将对这个函数进行稍许修改。

当然,我们将在模块中添加一些新的函数。不过,本章中最大量的编程任务不是用 PHP 完成的,而是用 JavaScript。

提示:JavaScript 的调试是个令人头痛的问题。Firefox 的扩展 FireBug (http://www.getfirebug.com/) 能帮上很大的忙。FireBug提供了一个调试器,还提供了 DOM (Document Object Model), HTML, 和 CSS 浏览,一个高级日志设施,还可以通过命令行访问 JavaScript 解释器。

我们要做的第一件事儿,是用 JavaScript 为我们的网页添加一些 HTML。

 

评论

发表新评论

此内容将保密,不会被其他人看见。
  • 允许HTML标签:<a> <img><em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><p>
  • 自动断行和分段。

更多关於格式化选项的信息

Image CAPTCHA
验证码
|