2

TinyMCEでのMadFileManagerの統合に問題があります。問題はこのコードにあると思います:

<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' => '',
)
4

2 に答える 2

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はデフォルトで実行されます)。

乾杯と幸せなコーディング!

于 2012-12-04T17:49:47.100 に答える
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によって適切なコントローラーにルーティングされます。

于 2012-12-04T17:11:07.200 に答える