2011-01-06 18 views
0

Gerade begann mit Codeigniter (gestern) und ich frage mich, welche Template-Funktionen Menschen verwenden?CodeIgniter: Tipps für die Verwendung von Vorlagen

Ist es möglich, eine Ansicht zu erstellen und sie einfach zu laden, wenn es notwendig ist?

Danke,

Jonesy

+1

Duplizieren von http://stackoverflow.com/questions/3957000/what-codeigniger-template-library-is-best. – treeface

Antwort

1

Die Idee des Templating ist es, ein gemeinsames Layout mit einem gemeinsamen Header zu erstellen. Fußzeile usw. und dann nur einen "Körper", der sich pro Seite ändert.

Auf der elementarsten Ebene können Sie einfach umfassen Kopf- und Fußzeilen in jedem von Ihren Ansichten wie folgt aus:

last-> Ansicht (‚Header‘); ?>

Dies ist meine Seite.

load-> view ('Fußzeile'); ?>

Das kann gut sein, aber beginnen Sie mit dem Erstellen einer Anwendung von jeder realen Größe und Sie werden Probleme finden.

Es gibt Millionen Möglichkeiten, Templating zu tun, aber die Art, wie ich seit Jahren verwendet habe, ist diese Template library. Es hat mich durch 20-30 verschiedene Projekte gesehen und wird von vielen benutzt, damit Sie wissen, dass es erprobt ist.

+0

Seite Link wird zu einem 404. tatsächlichen Link: https://github.com/philsturgeon/codeignit-template –

0

Ist es möglich, eine Ansicht zu erstellen und es nur laden whenerever notwendig?

Ja. Dies ist das typische Verhalten der MVC-Struktur, nicht nur in CI. Ihre Ansichten sind Präsentationsebenen, die weitgehend frei von Logik/Verarbeitung sein sollten.

+0

Also sagen, ich hatte eine Ansicht namens Header ich kann nur Header in einer anderen Ansicht laden? – iamjonesy

+0

Ja, genau. So wird es gemacht.Grundsätzlich verwenden Sie in deinen Ansichten. Die Ansicht ist dieselbe wie eine Standard-PHP-Datei mit der Ausnahme, dass Sie niemals direkt auf sie zugreifen. :) –

+1

@iamjonesy: Nein, Sie sollten nicht die Include-Syntax in Ihren Ansichten verwenden müssen. Wenn Sie eine Ansicht in eine andere Ansicht laden möchten, verwenden Sie den ViewLoader von CodeIgniter: '$ this-> load-> view ('header')'. – treeface

0

Eine andere Möglichkeit, dies zu tun, ist die folgende.

In Ihrem Controller, die Vorlage laden, wie so

$template_data = array('contains', 'data', 'for', 'template', 
         'while', 'the', 'specific' => array('may', 'contain', 
         'data', 'for', 'the', 'view_file')); 
$this->load->view('template/needed.php'); 

in Ihrer Vorlage haben Sie jetzt die $template_data Array um es zu füllen [wenn nötig!]. Sie können nun die bestimmte Ansicht laden, wie so

<div id="yield"> 
    <?php echo $this->view('specific/viewer.php', $template_data['specific']); ?> 
</div> 

Hinweis:

  1. Die template/needed.php im application/views Ordner sein sollte.
  2. Die specific/viewer.php Datei sollte
  3. (auf diese Datei so etwas wie WEB_ROOT/application/views/specific/viewer.php sein sollte, dh den Pfad) in Ihrem views Verzeichnis
seine auch

Das Schöne daran ist, dass jede View-Datei als Vorlage verwendet werden könnte, wenn es sein muss .

Verwandte Themen