Comment puis-je automatiser l'inclusion d'en-têtes et de pieds de page dans les vues CodeIgniter ?

Mary-Kate Olsen
Libérer: 2024-11-03 00:08:30
original
399 Les gens l'ont consulté

How Can I Automate Header and Footer Inclusion in CodeIgniter Views?

Automatiser l'en-tête et le pied de page dans CodeIgniter

Le processus de chargement des vues par défaut de CodeIgniter nécessite la tâche répétitive consistant à inclure des vues d'en-tête et de pied de page dans chaque contrôleur. Cela peut devenir fastidieux et prendre du temps lorsque vous travaillez avec plusieurs contrôleurs et vues.

Pour résoudre ce problème, une classe de chargeur personnalisée peut être créée pour automatiser le processus d'inclusion des vues d'en-tête et de pied de page. Cela permet aux développeurs de charger des vues sans appeler explicitement la méthode load->view() pour chaque composant.

Classe de chargeur personnalisé

Créez un nouveau fichier nommé MY_Loader.php dans l'application/core annuaire. Ce fichier étendra la classe CI_Loader de CodeIgniter et ajoutera une nouvelle méthode template().

<code class="php">// application/core/MY_Loader.php

class MY_Loader extends CI_Loader {
    public function template($template_name, $vars = array(), $return = FALSE) {
        $content  = $this->view('templates/header', $vars, $return);
        $content .= $this->view($template_name, $vars, $return);
        $content .= $this->view('templates/footer', $vars, $return);

        if ($return) {
            return $content;
        }
    }
}</code>
Copier après la connexion

Dans la méthode template() :

  • Il charge la vue d'en-tête dans le $ variable de contenu.
  • Il charge ensuite la vue spécifiée (par exemple, le corps) dans $content.
  • Enfin, il charge la vue de pied de page et l'ajoute à $content.
  • Si $return est défini sur TRUE, il renvoie le contenu combiné ; sinon, il affiche la vue combinée.

Utilisation dans les contrôleurs

Après avoir créé la classe de chargeur personnalisée, mettez à jour le constructeur dans vos contrôleurs pour charger le chargeur étendu :

<code class="php">class My_Controller extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load = new MY_Loader();
    }
}</code>
Copier après la connexion

Maintenant, vous pouvez charger vos vues avec la méthode template() :

<code class="php">$this->load->template('body');</code>
Copier après la connexion

Cela chargera automatiquement les vues d'en-tête, de corps et de pied de page. Vous pouvez également transmettre des variables aux vues selon vos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!