2012-05-05 3 views
0

私はcodeIgniterとModular Extensionを試しています。これまでのところ、私はwiredesignz on bitbucketからインストールの指示に従った。今、NetTutsのチュートリアルHMVC: an Introduction and Applicationを試しています。モジュールロードブレイクビューロード(旧コード)

私は実際のバージョンのCodeIgniter 2.1と実際のバージョンのModular Extension(bitbucketから.zipバージョンをダウンロード)でこれを行います。

他のモジュールのコントローラからメソッドを実行しようとするまで、すべて正常に動作します。

簡単な設定は、2つのモジュール(サイト&ログイン)です。サイトのコントローラ内には、ユーザがログインしているかどうかをチェックするメソッドを持つsite.php(/modules/site/controllers/site.php)があります。このメソッドは、ログインしていない状態でサイトにアクセスするとスクリプトの実行を終了します。著者はそれをそこに移すことを提案する。したがって、それは/modules/login/controllers/login.phpに移動されます。

今問題は、サイトモジュール内からログインモジュールのメソッドにアクセスする方法です。このよう

// modules/site/controllers/site.php 

function __construct() 
{ 
    // parent::Controller(); 
    // replaced with: 
    parent::__construct(); 

    // modules::run('login/is_logged_in'); 
    // replaces with: 
    $this->load->module('login')->is_logged_in(); 
} 

私はエラーを取得しています::チュートリアルから少し調整コード

Unable to load the requested file: logged_in_area.php

の問題の方法は、同様に、サイトのモジュール内にある:

// modules/site/controllers/site.php 

function members_area() 
{ 
$this->load->view('logged_in_area'); 
} 

スクリプトはload->view行まで実行され、エラーが発生します。

$this->is_logged_in(); 

任意のアイデア:ラインでサイトコントローラ内からis_logged_in方法を実行しているとlogged_in_area.phpにアクセスしても問題はありませんか?

編集:

アプリケーションツリー:

/application 
    /... 
    /modules 
    /login 
     /controllers 
     login.php 
     /models 
     /views 
     login_form.php 
     signup_form.php 
     signup_successful.php 
    /site 
     /controllers 
     site.php 
     /models 
     membership_model.php 
     /views 
     logged_in_area.php 

PS:どのように私は、エラーに関する詳細な情報を得ることができますか? CodeIgniterでは、ドキュメントhereで述べたように、別のモジュール内からビューをロードするために

+0

index.phpには、あなたの環境を定義する行があります。 'define( 'ENVIRONMENT'、 'development');という行が表示されていることを確認してください。この方法では、すべてのエラーを取得します。 – Zombaya

+0

これは '開発'に設定されています。エラー報告は 'E_ALL'です。そこに何も変えなかった。 – fourreux

+0

しかし、他のモジュールからのビューを読み込んではいけないと思います。モジュラーエクステンションのコンセプトは、ほかのコントローラではなく他のコントローラを呼び出すことができると思っていました。私は私のloginstateとすべてを扱うライブラリを作った。この方法でどこでも使用できます。それでは、ログインフォームとすべてを表示するモジュールを作ることができます。 – Zombaya

答えて

0

...エラー出力について非常に予約されているようだ、あなたは拡張MXコントローラとメソッドを使用する必要があります。

<?php echo Modules::run('module/controller/method', $param, $...); ?>

+0

そしてそこに行く!私はsite.phpに 'CI_Controller'を拡張しました。それを 'MX_Controller'に置き換えることはやりました。しかし、私は別のモジュールからビューをロードしません!シンプルな 'CI_Controller'では、別のコントローラの「クロスモジュール」ロードが機能します...まあ...すべてを理解する必要はありません... – fourreux