Ja.
Erstellen Sie eine Datei mit dem Namen template.phpin Ihrem viewsOrdner.
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.phpmit Inhalten:
<!DOCTYPE html>
<html lang="en">
<? $this->load->view('head'); ?>
<? $this->load->view('body'); ?>
</html>
Erstellen Sie nun eine Ansicht head.phpmit 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.phpAnsicht mit Inhalten:
<body>
<div id="mainWrap">
<? $this->load->view('header'); ?>
<?
<? $this->load->view($v); ?>
<? $this->load->view('footer'); ?>
</div>
</body>
Und erstellen header.phpund footer.phpAnsichten 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);