玩转Drupal主题(2):在mission statement中添加PHP脚本

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多一些,那么每次刷新页面得到的图片重复的几率就小了。

Blog分类: