我在TinyMCE中集成Mad File Manager时遇到了问题。我认为问题出在这段代码中:
<script type="text/javascript">
function MadFileBrowser(field_name, url, type, win) {
tinyMCE.activeEditor.windowManager.open({
file : "mfm.php?field=" + field_name + "&url=" + url + "",
}, {
window : win,
input : field_name
});
return false;
}
</script>
在
file : "mfm.php?field=" + field_name + "&url=" + url + ""
因为 Zend 框架返回异常: 消息:指定的控制器无效 (mfm.php)
Request Parameters:
array (
'controller' => 'mfm.php',
'action' => 'index',
'module' => 'default',
'field' => 'src',
'url' => '',
)
如果控制器名为 MfmController.php您应该执行以下操作:
<script type="text/javascript">
function MadFileBrowser(field_name, url, type, win) {
tinyMCE.activeEditor.windowManager.open({
file : "/mfm?field=" + field_name + "&url=" + url + "",
}, {
window : win,
input : field_name
});
return false;
}
</script>
在 zend 框架中,你从不直接调用.php。每个请求都通过索引.php并通过Zend_Route路由到正确的控制器。
如果你使用的是Zend Framework,你的所有请求都通过应用程序的前端控制器,那就是index.php
。 index.php
解析此格式的请求 URL(控制器名称/操作名称?参数),并转发指定控制器指定操作的请求(这是默认行为)。在这种情况下,您应该有一个名为 controllernameController
的控制器和一个名为 actionnameAction
的控制器的操作。这就是为什么
<script type="text/javascript">
function MadFileBrowser(field_name, url, type, win) {
tinyMCE.activeEditor.windowManager.open({
file : "mfm.php?field=" + field_name + "&url=" + url + "",
}, {
window : win,
input : field_name
});
return false;
}
</script>
应该是
<script type="text/javascript">
function MadFileBrowser(field_name, url, type, win) {
tinyMCE.activeEditor.windowManager.open({
file : "mfm?field=" + field_name + "&url=" + url + "",
}, {
window : win,
input : field_name
});
return false;
}
</script>
并且您应该有一个名为 mfmController
的控制器indexAction
该方法来处理您的请求(如果未提及任何操作,则默认执行 indexAction)。
干杯,编码愉快!