2013-03-15 118 views
1

在ModX中,我试图根据用户所在的页面进行简单的重定向。在我的网站上,我有一个链接页面的链接,如“关于我们”,“工作机会”等。这个查克在网站上的所有页面上使用。modx php获取当前页面名称

我的问题从这里开始 - 在职业页面,有一个链接到一个新的页面,其中包含所有可用的招聘信息。我想这样做的目的是,当用户在职业页面上时,单击块上职业页面的链接将直接将他们带到工作发布页面,而不是直接返回职业页面。

的URL的招聘网页的格式如下:

www.example.com/index.php?q=careers.html 

所以,我在一块的,如果用户是在招聘网页上的代码,重定向到工作列表:

<?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,但那也不是。 如果声明使用ModX获取当前页面,应该如何使用?我究竟做错了什么?

+0

你试过echo'ing $ _SERVER ['PHP_SELF']吗? – 2013-03-15 20:00:24

+0

您是否尝试过使用'http:// www.'而不仅仅是'www.'? – 2013-03-15 20:00:45

+1

我没有modx的经验,但确定这一点的最佳选择是调试$ _SERVER变量并检查其中的各个“键”的内容; 'echo'

'; print_r($_SERVER); echo '
';' – thaJeztah 2013-03-15 20:01:47

回答

0

我没有使用modx的经验,但确定此问题的最佳选择是调试$_SERVER变量并检查其中各个“键”的内容;

echo '<pre>'; print_r($_SERVER); echo '</pre>'; 
1

我猜你对MODX来说很新。一般来说,Wayfinder用于构建动态菜单,避免需要硬编码的解决方案,比如你在做什么。

要开始: http://rtfm.modx.com/display/ADDON/Wayfinder+Introductory+Examples

喜欢你想要做的切换href属性,你可以指定不同的&hereTpl参数,该参数将显示与当前页面的菜单项。 www.joblistsite.com url可能包含在每个页面上设置的模板变量中。

+0

您也可以通过以下网址转到友好的网址:http://rtfm.modx.com/显示/ revolution20 /使用+友好+网址 – okyanet 2013-03-15 21:50:34

3

上述解决方案将工作(特别是WayFinder),但我会建议使用MODX内置的功能,它允许您指定页面别名来生成SEO友好的网址。这种别名可以用来轻松定位当前页面。

简单而有效的解决方案是使用网页的别名,并比较其当前的一个:

$page_alias = $modx->resource->get('alias'); // get alias of the current page 

if($page_alias == 'something'){ 
// do something 
} 

如果你对付的多级页面,你可能想要获取资源的父,使上述工作更有效:

$parent = $modx->resource->get('parent');