我有一个Drupal 7 网站。我想要的是以下内容:
- 如果用户位于名为'fotos(-20xx)'或'filmpjes(-20xx)'的页面上(括号内的内容是可选的,x是0-9的数字),则不会发生任何事情
- 如果用户位于其他页面上,则会在rel
$attributes
atriibute
这就是我的想法:
$fotos = array('/fotos', '/fotos-2004', '/fotos-2005', '/fotos-2006', '/fotos-2007', '/fotos-2008', '/fotos-2009', '/fotos-2010', '/fotos-2011', '/filmpjes', '/filmpjes-2007', '/filmpjes-2009', '/filmpjes-2010', '/filmpjes-2011');
$currentpage = $_SERVER['REQUEST_URI'];
foreach ($fotos as $foto) {if($foto != $currentpage) {$attributes['rel'] = 'shadowbox';}}
这有两个问题:
有没有人知道如何用简短的片段写这个?而且,更重要的是,有人看到错误吗?
答案 0 :(得分:1)
我认为您的要求是在数组中不存在uri时添加变量。
$base = array('/fotos','/filmpjes');
$baseFotos = '/fotos-';
$baseFilm = '/filmpjes-';
$i = '2004'; $j = date('Y');
while ($i <= $j) {
$fotos[] = $baseFotos.$i;
$film [] = $baseFilm.$i;
$i++;
}
$result = array_merge($base,$fotos,$film);
// check if base uri in array.
if (!in_array($_SERVER['REQUEST_URI'], $result)) {
$attributes['rel'] = 'shadowbox';
}
答案 1 :(得分:0)
要解决多年来的问题,您可以像这样创建$fotos
。
<?php
$fixed = '/fotos';
$time = strtotime('now');
$year_start = '2004';
$year_end = date('Y', $time);
$fotos = array($fixed);
for( ; $year_start <= $year_end; $year_start++){
$fotos[] = "$fixed-$year_start";
}
我不明白代码的其他代码段应该做什么,但是每次都要覆盖相同的元素!无论如何你都在谈论$attribute
但写了$attributes
答案 2 :(得分:0)
我只想到这一行
<?php $currentpage = $_SERVER['REQUEST_URI']; ?>
也许这可以改为
<?php $currentpage = drupal_get_path_alias($_GET['q']); ?>