私は自分のアプリケーションにcodeigniterを使用しており、ここに追加されたパッケージを使用してHMVCアプローチで開発しています。
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
ビュー用に作成したカスタムテンプレートがあり、コンテンツビューには次の行があります。
if ((!isset($page_view)) || (is_null($page_view)) || (!file_exists(APPPATH . 'views/backend/' . $this->cms_template . '/cpanel/pages/' . $page_view . '.php')))
{
$this->load->view('backend/' . $this->cms_template . '/cpanel/template/page_unknown_view');
}
else
{
$this->load->view('backend/' . $this->cms_template . '/cpanel/pages/' . $page_view);
}
?>
これは、フォルダーにビューがある場合に機能しますが、このHMVCアプローチでは一部のビューが別のフォルダーにあるため、常に不明なページファイルとして表示されます。このアプローチで機能するように変更するにはどうすればよいですか。
編集:これをすべて言い換えてみましょう。これは私のファイルシステムです...
/application/views/backend/{templatename}/cpanel/index_view
/application/views/backend/{templatename}/cpanel/template/(header.php, footer.php, content.php)
/application/modules/users/controllers/users
/application/modules/users/views/users_view
ユーザーコントローラーが、3つのテンプレートページをロードするメインビューページとしてcpanelビューをロードするとします。ヘッダー、フッター、コンテンツページであること。コンテンツページ内で、上記のようにifステートメントを実行します。ロードするコントローラー固有のビューを見つける変数が送信されます。この場合、users_viewファイルをロードします。したがって、私のifステートメントでは、そのモジュールのフォルダーのどこかにファイルが存在するかどうかを確認する必要があります。
これはまったく役に立ちますか?