2012-12-04 31 views
2

我在TinyMCE中集成Mad文件管理器时遇到问题。 我认为这个问题是在这样的代码:Zend Framework - 在TinyMCE中集成Mad文件管理器

<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)

+0

什么是您的控制器名称?它是mfm.phpController吗? –

+0

我没有任何控制器。 mfm.php是来自Mad File Manager作者的真正的PHP文件。 – user1876221

+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

如果您使用的是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默认情况下执行)。

干杯和快乐的编码!