我想在模板文件(Drupal 7)中实现一个简单的条件,该文件检查URL路径,并且仅在字符串确切/页面是父时才在条件下运行。目前,我有一个有条件的工作,但是匹配时的条件仍针对URL字符串的子页面执行。例如:
$url_vars = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url_vars, 'parent-page') !== false) {
// Do something
}
这仍然适用于任何层次结构,因此:
parent-page/sub-page
我如何进行此工作,以便条件严格管理父级目录而不是子目录?任何指导或想法都会有很大的帮助。我更喜欢处理此服务器端,而不是在前端。
谢谢!标记。
我不确定您的REQUEST_URI
字符串会有所不同,但这可能足够:
if(strpos($_SERVER['REQUEST_URI'],'parent-page')!==false && strpos($_SERVER['REQUEST_URI'],'parent-page/')===false){
这只是检查parent_page
(静态字符串)是否存在于REQUEST_URI
中,并且没有尾随的/
如果这没有问题,请提供有关您的URI值的更多特定详细信息。
潜在有用的参考:https://stackoverflow.com/a/4731027/2943403
您可以用'parent-page'爆炸URL,并计算数组以查看是否是sublevel。
$arr = explode("parent-page", $url_vars);
If(count($arr) <= 1) {
// Parent-page
}
由于爆炸删除了"父页",并创建其余的数组,您最终应该以一个保存" http://"的项目。
如果您获得了您的子页面的第二个项目。
$_GET['q']
变量应包含当前页面路径。尝试使用它而不是$url_vars
。
有关上下文模块上一些更高级的用法检查:
https://www.drupal.org/project/context