在ModX中,我正在尝试根据用户所在的页面进行简单的重定向。在我的网站上,我有一个块,其中包含指向“关于我们”,“职业”等页面的各种链接。此浏览器用于网站上的所有页面。
我的问题从这里开始 - 在“职业”页面中,有一个指向新页面的链接,其中包含所有可用的职位发布。我想这样做,当用户在Careers页面上时,单击chunk上Careers页面的链接将直接将它们带到作业发布页面,而不是将它们循环回到Careers页面。
职业页面的网址采用以下格式:
www.example.com/index.php?q=careers.html
所以,我的代码在chunk中,如果用户在Careers页面上,则重定向到工作列表:
<?php
if ($_SERVER['PHP_SELF'] == "index.php?q=careers.html") {
echo '<p><a href="www.joblistsite.com">Careers</a></p>';
}
else {
echo '<p><a href="index.php?q=careers.html">Careers</a></p>';
}
?>
但这不起作用。它继续链接回“职业”页面而不是作业列表页面。我尝试过使用页面的ID,但也没有。我应该使用 if 语句来获取ModX中的当前页面?我做错了什么?
答案 0 :(得分:3)
上述解决方案可行(尤其是WayFinder),但我建议使用MODX内置功能,允许您指定页面别名以生成SEO友好URL。此类别名可用于轻松找到当前页面。
简单而有效的解决方案是使用页面别名并将其与当前的别名进行比较:
$page_alias = $modx->resource->get('alias'); // get alias of the current page
if($page_alias == 'something'){
// do something
}
如果您处理多级页面,您可能希望获得资源父级以更有效地完成上述工作:
$parent = $modx->resource->get('parent');
答案 1 :(得分:2)
我猜你是MODX的新手。通常,Wayfinder用于构建动态菜单,避免使用像您正在做的那样的硬编码解决方案。
开始使用: http://rtfm.modx.com/display/ADDON/Wayfinder+Introductory+Examples
要像您想要的那样切换href属性,您可以指定一个不同的&hereTpl
参数,该参数将显示与当前页面相关的菜单项。 www.joblistsite.com
网址可能包含在每个网页上的模板变量集中。
答案 2 :(得分:0)
我没有使用modx的经验,但确定这个的最佳选择是调试$_SERVER
变量并检查其中各种“键”的内容;
echo '<pre>'; print_r($_SERVER); echo '</pre>';