2012-04-14 5 views
1

Kann mir jemand sagen, wie ich eine Standardvorlage/Layout für mein gesamtes Projekt in Codeigniter implementieren kann?Wie kann ich Standard Vorlage/Layout für das gesamte Projekt in Codeigniter bekommen?

Ein Weg, ich fand, ist Templating with Code Igniter (CI Forums)

Gibt es eine andere Art und Weise? Kann jemand vollständigen Beispielcode posten?

+1

Ein Vorschlag, Probieren Sie es aus, und postet dann irgendwelche Probleme, niemand hier mag es, ganze Codeblöcke zu veröffentlichen, wenn es keinen Versuch durch das OP – Hailwood

Antwort

3

Erstellen Sie eine Layoutansicht.Manche Dinge wie folgt aus:

<html> 
    <head> 
    <title>My awesome site</title> 
    </head> 
    <body> 
    <?= $this->load->view('shared/header') ?> 
    <?= $this->load->view($partial) ?> 
    <?= $this->load->view('shared/footer') ?> 
    </body> 
</html> 

Dann in Ihrem Controller dies zu tun:

$this->data['partial'] = 'pages/index'; 
$this->load->view('layout/layout', $this->data); 

Wenn Sie eine MY_Controller-Datei können Sie eine Methode erstellen dort:

function load_view($partial) 
{ 
    $this->data['partial'] = $partial; 
    $this->load->view('layout/layout', $this->data); 
} 

Dann in Steuerungen, die erben von MY_Controller können Sie verwenden:

$this->load_view('pages/index'); // pages/index will be loaded in the layout 
0

Sie können immer eine Ansicht mit anderen Ansichten laden und implementieren, was Sie wollen.

Andere bessere Weg ist, ein Template-Engine zu verwenden, die Vorlage Vererbung wie

Mit ihnen in CodeIgniter unterstützt wird ziemlich einfach, da es viele sind Implementierungen der Bibliotheken für CI.

2

Es gibt einige Möglichkeiten, von denen ich weiß, ist eine Kopf- und Fußzeile Ansicht für Ihre Website/Projekt zu erstellen.

application/views/template/header.php 
application/views/template/footer.php 

Dann haben Sie Ihre anderen Seiten so angeordnet, wie Sie möchten.

application/views/users/login.php 

In Ihrem Controller würden Sie so etwas wie dieses

<?php 
    class Blah extends CI_Controller 
    { 
     public function __construct() 
     { 
      parent::__construct(); 
     } 

     public function index() 
     { 
      $this->load->view('template/header'); 
      $this->load->view('users/login'); 
      $this->load->view('template/footer'); 
     } 
    } 

Es gibt auch eine nützliche kleine Template-Bibliothek kann ich über gestolpert, dass dies noch einfacher macht. Ich finde es nicht so flexibel wie die andere Art, es zu tun.

http://maestric.com/doc/php/codeigniter_template

EDIT :: ich für die Vorlage einige Beispiel-Code gegebener sollte so hier gehen Sie

header.php

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Lovely Title</title> 
    </head> 
    <body> 
     <h1>Check This Out!!1!</h1> 
     <div class="container"> 

footer.php

 </div> 
    </body> 
</html> 
+0

Ich denke nicht, dass es eine gute Idee ist, Kopf- und Fußzeilen in den Controller zu laden . Du wirst dich immer wieder wiederholen. Es ist besser, eine Layout-Ansichtsdatei zu erstellen und Kopf-/Fußzeilen dort einzuladen. Dann müssen Sie es nur einmal tun. – Mischa

+0

Ja, der von mir angebotene Link entspricht genau dem Vorschlag. Zu viele Möglichkeiten, eine Katze zu häuten :) – Dale

Verwandte Themen