modx插件404并显示数据库中不存在的内容

时间:2014-06-16 13:23:57

标签: php plugins modx modx-revolution

我需要在modx 404事件中显示一些数据。

我在目录中有一些文件。当我在404事件中获得特定URL时,我想显示来自特定目录的文件,该文件不是modx资源。

我无法显示任何自定义输出。 我怎么能这样做?

插件中的

我已将插件事件设置为onPageNotFind,我尝试过这样:

global $modx;
if ($modx->event->name == 'OnPageNotFound') {
   $out = file_get_contents('my_file');
   $modx->event->output( $out);
}

我也尝试过这样:

global $modx;
if ($modx->event->name == 'OnPageNotFound') {
   $out = file_get_contents('my_file');
   $strContent = &$modx->resource->_output;
   $strContent = $out;
}

1 个答案:

答案 0 :(得分:1)

如果您仅在OnPageNotFound上触发插件,则无需添加对事件名称的检查。只有当您的插件使用不同的代码处理多个事件时,才需要这样做。

您也无法使用$modx->resource->output,因为当MODX找不到资源时会触发此插件。

您的插件可能就像这样简单:

$url = 'http://www.example.com/404.html';
$modx->sendRedirect($url);

当MODX无法找到所请求网址的匹配时,只会将用户重定向到您的静态文件。

有关modX::sendRedirect()的更多信息:http://rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.sendredirect