1

在 ModX 中,我试图根据用户所在的页面进行简单的重定向。在我的网站上,我有一个块,其中包含指向“关于我们”、“职业”等页面的各种链接。这个夹头用于网站上的所有页面。

我的问题从这里开始 - 在“职业”页面中,有一个指向新页面的链接,其中包含所有可用的职位发布。我想这样当用户在“职业”页面上时,单击块上“职业”页面的链接会将他们直接带到职位发布页面,而不是让他们直接返回“职业”页面。

职业页面的网址采用以下格式:

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,但也没有。我应该使用if语句来获取 ModX 中的当前页面?我究竟做错了什么?

4

3 回答 3

3

The above solutions would work (especially WayFinder) but what I would suggest is to use MODX built in functionality which allows you to specify page alias to generate SEO friendly urls. Such alias can be used to easily locate the current page.

Simple and yet effective solution is to use page alias and compare it to the current one:

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

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

If you deal with multi-level pages you may want to get the resource parent to make the above work more efficently:

$parent = $modx->resource->get('parent');
于 2013-03-19T12:06:09.380 回答
2

我猜你对MODX很陌生。通常,Wayfinder用于构建动态菜单,避免像您正在做的那样需要硬编码的解决方案。

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

To switch the href attribute like you want to do, you can specify a different &hereTpl parameter which will be displayed for the menu item relating to the current page. The www.joblistsite.com url might be contained in a Template Variable set on each page.

于 2013-03-15T21:48:45.173 回答
0

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

echo '<pre>'; print_r($_SERVER); echo '</pre>';
于 2013-03-15T20:11:33.083 回答