Ja.
Erstellen Sie eine Datei mit dem Namen template.php
in Ihrem views
Ordner.
Der Inhalt von template.php
:
$this->load->view('templates/header');
$this->load->view($v);
$this->load->view('templates/footer');
Dann können Sie von Ihrem Controller aus Folgendes tun:
$d['v'] = 'body';
$this->load->view('template', $d);
Dies ist eigentlich eine sehr vereinfachte Version davon, wie ich persönlich alle meine Ansichten lade. Wenn Sie diese Idee auf die Spitze treiben, können Sie einige interessante modulare Layouts erstellen:
Überlegen Sie, ob Sie eine Ansicht mit dem Namen erstellen init.php
, die die einzelne Zeile enthält:
$this->load->view('html');
Erstellen Sie nun die Ansicht html.php
mit Inhalten:
<!DOCTYPE html>
<html lang="en">
<? $this->load->view('head'); ?>
<? $this->load->view('body'); ?>
</html>
Erstellen Sie nun eine Ansicht head.php
mit Inhalten:
<head>
<title><?= $title;?></title>
<base href="<?= site_url();?>">
<link rel="shortcut icon" href='favicon.ico'>
<script type='text/javascript'>
<!-- ETC ETC... DO A BUNCH OF OTHER <HEAD> STUFF... -->
</head>
Und eine body.php
Ansicht mit Inhalten:
<body>
<div id="mainWrap">
<? $this->load->view('header'); ?>
<?
<? $this->load->view($v); ?>
<? $this->load->view('footer'); ?>
</div>
</body>
Und erstellen header.php
und footer.php
Ansichten nach Bedarf.
Wenn Sie jetzt den Init vom Controller aus aufrufen, ist das ganze schwere Heben erledigt und Ihre Ansichten werden darin verpackt <html>
und <body>
Tags, Ihre Kopf- und Fußzeilen werden geladen.
$d['v'] = 'fooview'
$this->load->view('init', $d);