在上一章中我们编写了一个模块,从自定义内容类型中读取数据、并显示为区块内容。这个模块使用了我们创建的 Quote 内容类型。为了给我们的新内容类型提供布局信息,我们创建了一个默认主题作为模块的一部分。我们编写的主题代码生成必要的 HTML 和 CSS 以显示名言。
提示:在上一章末尾,我们为 Descartes 主题添加了一个模板,覆写了模块的默认主题。不过,在本章中,我们将继续使用默认主题。你必须取消 Descartes 主题中针对 philquotes 的修改,以便继续使用默认的主题。
当我们的 philquotes 模块在区块中显示时,一条名言显示为区块的内容。输出类似下面:

插图 5-1
现在我们要扩充 philquotes 模块。
我们将为它添加新特性:不必重新装入页面就可以刷新名言。为了做到这一点,我们将使用 Drupal JavaScript API 以及 jQuery 库的几个特性。
因此,当我们的模块完成时,将生成如下的区块:

插图 5-2
注意这条名言底部的 Next >> 链接。当点击它时,将重新装入名言的出处和正文,从数据库中随机选择另一条名言。
那么如何才能做得到呢?我们从现有代码开始。不过大多数代码不必修改,我们将在其中添加代码。
我们上一章中开发的 Philosophy Quotes 模块定义了如下函数:
在我们的更改中,它们不会提供新的服务,因此在模块中也不再是主角。我们将使用下列函数:
当然,我们将在模块中添加一些新的函数。不过,本章中最大量的编程任务不是用 PHP 完成的,而是用 JavaScript。
提示:JavaScript 的调试是个令人头痛的问题。Firefox 的扩展 FireBug (http://www.getfirebug.com/) 能帮上很大的忙。FireBug提供了一个调试器,还提供了 DOM (Document Object Model), HTML, 和 CSS 浏览,一个高级日志设施,还可以通过命令行访问 JavaScript 解释器。
我们要做的第一件事儿,是用 JavaScript 为我们的网页添加一些 HTML。
评论
发表新评论