Zend Framework - TinyMCE中的集成Mad文件管理器

时间:2012-12-04 16:09:26

标签: zend-framework tinymce integration

我在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 Framework返回异常:消息:指定的控制器无效(mfm.php)

Request Parameters:
array (
  'controller' => 'mfm.php',
  'action' => 'index',
  'module' => 'default',
  'field' => 'src',
  'url' => '',
)

2 个答案:

答案 0 :(得分:1)

如果控制器名为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。每个请求都通过index.php传递,并由Zend_Route路由到右侧控制器。

答案 1 :(得分:1)

如果您使用的是Zend Framework,则所有请求都会通过应用程序的前端控制器传递,即index.phpindex.php解析此格式的请求URL(controllername / actionname?param)并转发指定控制器指定操作的请求(这是默认行为)。对于这种情况,您应该有一个名为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。)

欢呼和快乐的编码!