最初のページ ビューでのみヘッダー/フッター/ナビゲーションを読み込むソリューションを探しています。
この背後にある理由は、ナビゲーション パネルが Ajax を使用して、実際にページ自体を読み込むのではなく、メイン コンテンツ div のリンク先リンクのコンテンツをレンダリングするためです。
ただし、最初のビューの場合は、ヘッダー、ナビゲーション、実際のページ、フッターをロードするという行に沿って何かを言うことができる必要があります。ただし、最初のビューではなく、ページがコンテンツ div 領域に読み込まれている場合 (ナビゲーション リンクやフォーム送信など)、ヘッダー、ナビゲーション、フッターは読み込まれず、実際のページのみが読み込まれます。
たとえば、次の 4 つのビューがあります。
header_view navigation_view page_a_view footer_view
そして、このコントローラー:
コントローラ_a
ナビゲーションには、「ページ A」であり、 http://myurl.com/controller_aを指すリンクがあります。そのリンクがクリックされた場合、ナビゲーション リンクがそのページのデータを div にロードするため、controller_a が page_a_view ビューをロードすることだけが必要でした。
ただし、 http://myurl.com/controller_aに直接アクセスすると、ヘッダー/ナビゲーション/フッターもレンダリングする必要があります。
私が正しい行にいると思った解決策は、次のような関数 load_page() を持つベースコントローラーのようなものでした:
function load_page($page, $data) {
if($this->uri->segment($this->uri->total_segments()) == "initial_page_load") {
$this->load->view('header_view');
$this->load->view('navigation_view');
$this->load->view($page, $data);
$this->load->view('footer_view');
} else {
$this->load->view($page, $data);
}
}
したがって、http://myurl.com/controller_a/initial_page_loadに移動すると、ヘッダー/ナビゲーション/フッターが読み込まれますが、http: //myurl.com/controller_aに移動すると読み込まれません。
ただし、これですべての可能性がカバーされるわけではありません。
私が考えた別の方法は、参照 URL があるかどうかを確認することです。ある場合は、ヘッダー/ナビゲーション/フッターを読み込まないでください。しかし、繰り返しになりますが、リンクが外部の Web サイトから参照された場合はどうなるでしょうか。
必要なものを達成する方法について何か提案はありますか?