用drupal制作一个小型论坛过程中,想可以通过后台给每个论坛版块添加一个小图标,但是在路径“首页 » 管理 » 结构 » 论坛”这个设置界面里面找不到地方添加图标,也没有地方可以添加新字段,在热心群友“大连小齐”指点下,知道了可以通过“首页 » 管理 » 结构 » 分类 » 论坛”下,添加新字段,设置如下图
红色框里面的就是自己添加的新字段
由于我是想在forum-list.tpl.php里面获取到这个新增加的值,所以我hook了preprocess_forum_list,我的样式名为onetheme,hook函数如下:
function onetheme_preprocess_forum_list(&$variables){ foreach ($variables['forums'] as $id => $forum) { if(!isset($variables['forums'][$id]->icon)){ $taxonomy_term=taxonomy_term_load($variables['forums'][$id]->tid); $imageuri=$taxonomy_term->field_forum_image['und'][0]['uri']; $variables['forums'][$id]->icon=file_create_url($imageuri); } } }
这里要说明的是为什么要再次用taxonomy_term_load函数加载多一次每个论坛版块的内容,因为默认加载的论坛版块里面是没有新增加的字段的。
最后在forum-list.tpl.php就可以循环中通过$forum->icon获取到每个论坛版块的图标了。
板块
标签
Drupal 版本
谢谢东方老大的指正,后面的这个theme("image",
谢谢东方老大的指正,后面的这个theme("image",$variables = array())是我没想到的,还有这个代码弄得真漂亮!
做了一点优化和补充