1

我想在其中包含一个外部 php 脚本或 modx 片段,index.php但它会导致blank screen(并且没有文档解析器错误)。问题可能是我想包含的这个脚本包含可能与 Modx 解析器发生冲突的starting session函数和set_include_path函数。我尝试使用 Modx API,但它似乎不起作用。我还在使用 Modx 0.9.2.6 .. 我该如何克服这个问题?如果用户在站点上登录(日志系统不是基于 modx 的),我的脚本会检查会话和数据库,然后根据用户权限打印菜单...

这是我放在索引页面模板开头的内容:[[modx_api_supernav]]

片段 modx_api_supernav 的代码:

<?php
$path = dirname(__FILE__).'/';
include_once($path.'modxapi.php'); //last release of Modx API file located in the root
$modx = new MODxAPI();
$modx->connect();
$modx->startSession();
$modx->runSnippet('supernav'); //snippet that contains external Zend Framework code
?>
4

2 回答 2

1

如果您包含[[modx_api_supernav]]在您的 MODx 块或模板之一中,那么您真的不需要片段中的所有代码。

尝试以下操作,如果 MODx 已经在运行,它可以正常工作(就像使用[[]]语法调用片段时一样

<?php
$modx->runSnippet('supernav'); //snippet that contains external Zend Framework code
?>

如果包含外部代码的 supernav 片段尝试创建新会话,您可能会得到一些非常奇怪的结果。

于 2010-07-12T13:43:24.317 回答
0

正如 PeterB 所说,您可以通过 $modx->runSnippet() 或将其包含在您的内容、模板或块中来调用您的片段。

您不需要检查用户是否有权访问某个页面,因为 modx 会为您处理这些。

丹尼尔是对的,你应该阅读更多的-相当彻底的-文档。您还应该查看其他一些片段的来源以帮助您继续前进。

而且你真的应该查看WayFinder 片段(并访问www.muddydogpaws.com -> development)

于 2010-08-24T20:14:22.370 回答