1

通常、拡張すると、 html出力をレンダリングCI_Controllerするための関数を使用できます。_output

HMVCを使用しています。MX_Controller関数をロードしません_output

私はそれをテストし、数回実行しました。

質問:

1-MX_Controller継承しCI_Controllerますか?

2-どうすれば実装でき_outputますか?

4

1 に答える 1

1

codeigniter-modular-extensions-hmvcは確かに_output()機能を壊しているようです。bitbucketでバグを送信する方法がわかりません: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

私の回避策は、クラスをオーバーライドしOutput、カスタム出力メソッドを起動するためのフックを追加することでした。これが私がしたことです。

Outputメインクラスを上書きします。

class MY_Output extends CI_Output
{
    function __construct()
    {
        parent::__construct();
    }

    // Overwrite the output
    public function my_output()
    {
        $content = $this->get_output();

        // do stuff to $content here

        $this->set_output($content);
        $this->_display();
    }
}

次に、構成でフックを有効にします。

$config['enable_hooks'] = TRUE;

次に、これをフック構成に追加します。

$hook['display_override'][] = array(
    'class' => '',
    'function' => 'custom_output',
    'filename' => 'custom_output.php',
    'filepath' => 'hooks'
    );

最後に、「custom_output.php」ファイルをhooksディレクトリに追加し、これを追加します。

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/*
 * Customize the output
 */
function custom_output()
{
    $CI =& get_instance();
    $CI->output->my_output();
}

クラス変数にアクセスする必要がない場合は、custom_output()関数で出力を直接編集するだけで、クラスをオーバーライドする必要はありませんOutput

非常にハッキーですが、機能します。:)

于 2013-06-25T21:44:55.283 に答える