是的,我还在 Drupal 5 上。别开玩笑了。
我使用 Aggregator 模块创建了一个类别,该类别的 URL 是www.example.com/aggregator/categories/2
. 我该如何主题化?它是一个可以使用模板主题的节点,还是我必须使用其他一些过程?
编辑:为了澄清,我想在标题下方添加一些文本,而不仅仅是主题单个聚合器项目。对不起,我一开始就忽略了。
是的,我还在 Drupal 5 上。别开玩笑了。
我使用 Aggregator 模块创建了一个类别,该类别的 URL 是www.example.com/aggregator/categories/2
. 我该如何主题化?它是一个可以使用模板主题的节点,还是我必须使用其他一些过程?
编辑:为了澄清,我想在标题下方添加一些文本,而不仅仅是主题单个聚合器项目。对不起,我一开始就忽略了。
看看源代码(总是有帮助的):
hook_menu()
Drupal 的“url 路由器”,我们看到它aggregator/categories/2
是由aggregator_page_category()
. 这个函数获取一些数据然后调用_aggregator_page_list()
,然后调用aggregator_page_list()
. while ($item = db_fetch_object($result))
此函数循环遍历所选类别中的所有提要项 ( ) 和theme('aggregator_page_item', $item)
*为主题瞧,这是您的主题点(主题覆盖),可以使用模板(或自定义主题功能)进行主题化。
编辑:使用标准 Drupal 5,主题化/修改标题似乎很困难。再次查看源代码:_aggregator_page_list()
只需连接所有(主题)提要项目,将它们包装在 a 中<div id="aggregator">
,并添加寻呼机和提要图标 - 没有什么可以挂钩的。_aggregator_page_list()
有一个可选的第三个参数$header
,它可以完全按照你的意愿做 - 不幸的是,这个参数不用于aggregator/categories/2
. 所以要在标题中添加一些文本,你必须破解aggregator.module
.
或升级到 Drupal 6,它为包装器添加了主题覆盖:
foreach ($items as $item) {
$output .= theme('aggregator_item', $item);
}
$output = theme('aggregator_wrapper', $output);
编辑结束
关于如何对 Drupal 5 进行主题化,请参见http://drupal.org/theme-guide/5,template.php :覆盖其他主题功能,聚合器模块的正确主题化,theme()
api doc等等等。
祝你好运!
*并添加一些类别处理并将所有项目包装到一个或另一个容器中