我正在使用SPIP我自己的文件,这些文件是根据关键字包含的。例如,将关键字inc-bla
添加到文章会使文件.../squellettes/.../inc-bla.html
包含在内。在其中一个文件中,我想要添加到URL的GET变量链接到当前页面:
[(#ENV{date}|diffdays|<{40}|?{<a href="#URL_ARTICLE?date=[(#ENV{date}|next_sunday)]">Some text...</a>,''})]
现在的问题是问号?
是硬编码的,有时网址已经有了问号。因此,此代码会创建...spip.php?article123?date=2014-03-30
之类的链接,该链接应为...spip.php?article123&date=2014-03-30
。我无法对&号进行硬编码&
,因为并非所有链接都有问号。
有没有办法在SPIP中为URL添加GET变量?
答案 0 :(得分:1)
正确的方法是使用filters。我们需要创建自己的过滤器,这样的PHP函数:
function url_add_get_var($url,$name,$value) {
$name = urlencode($name);
$value = urlencode($value);
// If there is no question mark in the URL ...
if (strpos($url,'?') === false) {
// Add the variable with a question mark
return "$url?$name=$value";
} else {
// If there is a question mark, add the variable with an ampersand
return "$url&$name=$value";
}
}
现在,我们可以在SPIP中使用它:
[(text|filter{var1,var2, ...})]
所以,在这种情况下:
[(#URL_ARTICLE|url_add_get_var{date,[(#ENV{date}|next_sunday)]})]
完整代码:
[(#ENV{date}|diffdays|<{40}|?{<a href="[(#URL_ARTICLE|url_add_get_var{date,[(#ENV{date}|next_sunday)]})]">Some text...</a>,''})]