我希望在模板文件(Drupal 7)中实现一个简单的条件,它检查URL路径,并且仅在字符串是精确/页面是父项时才运行。目前,我有条件工作,但匹配时URL条件的子页面仍然执行条件。 E.g:
UNION
这仍适用于任何层级,所以:
$url_vars = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url_vars, 'parent-page') !== false) {
// Do something
}
如何使这项工作使条件严格管理父目录而不是子目录?任何指导或想法都会有很大帮助。我更喜欢处理这个服务器端,而不是前端。
谢谢! 标记
答案 0 :(得分:1)
我不确定您的REQUEST_URI
字符串会有多大差异,但这可能就足够了:
if(strpos($_SERVER['REQUEST_URI'],'parent-page')!==false && strpos($_SERVER['REQUEST_URI'],'parent-page/')===false){
这只会检查parent_page
中是否存在REQUEST_URI
(静态字符串),并且它没有尾随/
如果没有这个诀窍,请提供有关您的URI值的更多具体细节。
答案 1 :(得分:0)
您可以使用“父页”'爆炸网址。并计算数组以查看它是否为子级。
$arr = explode("parent-page", $url_vars);
If(count($arr) <= 1) {
// Parent-page
}
由于爆炸删除了父页面&#39;并创建一个其余的数组,你最终应该有一个项目,其中包含&#34; http://&#34;。
如果你得到第二个项目是你的子页面。
答案 2 :(得分:-1)
@Html.Sitecore().Field(TPage.Headline, new { @class="page-heading", EnclosingTag="h1"})
变量应包含当前页面路径。尝试使用它而不是$_GET['q']
。
有关上下文模块的更高级用法检查: