Cartson 做了几个 Drupal China 的 brochure,非常的漂亮,所以想循环的在 Drupal China 的首页逐一显示,通常这个可以通过 javascript 来实现,但是为了网站的整体考虑,打算用 PHP 来实现,所以就写了一段最简单的显示代码:
$img = array();
$img[] = '';
$img[] = '';
$max = count($img);
$count = rand(0,$max);
print $img[$count];
?>
但是却遇到了一个问题,Drupal 的 Mission Statement 中自动滤掉了PHP代码,导致无法正常显示,但是好在 Drupal 异常的灵活,可以很方便的解决这个问题。下面是一个简单的解决方案。嗯,其实就一句话:把mission statement的内容放在一个新创建的 mission.tpl.php
文件中,然后将 page.tpl.php
中的 print $mission
修改为 include 'mission.tpl.php'
即可。这样做其实也有一个好处,可以更方便的编辑 Mission Statement,因为它现在有一个单独的模板文件控制,而无需再在 管理->设置 中的文本框中书写 Mission Statement 。效果见Drupal China的首页。
不过发现了一个小问题:用 rand()
函数生成的 random display 效果其实并不是很好,可能是因为只有两个brochure的缘故,每个的显示几率都是 50% ,连续两次显示同一个brochure的几率是 25% 还是挺大的,如果brochure多一些,那么每次刷新页面得到的图片重复的几率就小了。