1

インストールに 2 つのモジュールがあります。両方のモジュールのコントローラーは、という変数を渡します

$data['content']

彼らの見解に。また、最初のモジュールのビューは、次の方法で 2 番目のモジュールを実行します。

<?php echo Modules::run('module2'); ?>

その後、その $data['content'] 変数から値を表示することになっています。残念ながら、それは最初のモジュールの $data コンテンツが 2 番目のモジュールの $data に置き換えられるときです。これは私にとってかなり不便なので、$content 変数を「保護」し、関連するモジュール内にのみ保持する方法があるかどうか知りたいですか?

可能であれば、$data['content'] の名前を変更したくありません。を使用して、それほど完璧ではない解決策を見つけました

$data(__CLASS__)

しかし、$data['content'] を変更しないことが可能かどうか興味があります。

4

1 に答える 1

0
class Some extends MX_Controller{

    public function __construct(){parent::__construct();}

    public function index(){
        $this->load->view('template', array( //Primary template
            'content'    =>  'some_index' // index view
        ));
    }

    public function _module_1(){
      $this->load->view('module_1_view', array( //Module View : NO primary template
            ''    =>  '' <= no need to load view here, only data
        ));
    }

    public function _module_2(){
      $this->load->view('module_2_view', array( //Module View : NO primary template
            ''    =>  '' <= no need to load view here, only data
        ));
    }
}

-

template.php

<html>
  <?php $this->load->view($content); ?>
</html>

-

some_index.php

<html>

//call modules
<?php echo Modules::run('some/_module_1'); ?>

<?php echo Modules::run('some/_module_2'); ?>

//call module from another class
<?php echo Modules::run('another_class/_module_1'); ?>

</html>
于 2012-06-08T01:42:35.857 に答える