Maison >développement back-end >tutoriel php >Comment automatiser l'inclusion d'en-tête et de pied de page dans CodeIgniter ?

Comment automatiser l'inclusion d'en-tête et de pied de page dans CodeIgniter ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 05:30:30835parcourir

How to Automate Header and Footer Inclusion in CodeIgniter?

Incorporation transparente des en-têtes et des pieds de page dans CodeIgniter

La nécessité de charger à plusieurs reprises des vues d'en-tête et de pied de page dans chaque contrôleur peut être fastidieuse. Pour résoudre ce problème, explorons une solution qui automatise ce processus et offre une flexibilité dans la personnalisation de ces éléments communs.

Dans CodeIgniter, une classe de chargeur personnalisée peut être créée pour y parvenir. En remplaçant la méthode template() dans MY_Loader.php, nous pouvons définir une fonction qui combine les vues d'en-tête, de corps et de pied de page.

<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>

Pour CodeIgniter 3.x, la méthode template() modifiée serait inclure une instruction elseif supplémentaire :

<code class="php">// application/core/MY_Loader.php
class MY_Loader extends CI_Loader {
    public function template($template_name, $vars = array(), $return = FALSE) {
        if($return):
            $content  = $this->view('templates/header', $vars, $return);
            $content .= $this->view($template_name, $vars, $return);
            $content .= $this->view('templates/footer', $vars, $return);

            return $content;
        elseif:
            $this->view('templates/header', $vars);
            $this->view($template_name, $vars);
            $this->view('templates/footer', $vars);
        endif;
    }
}</code>

Avec ce chargeur personnalisé, les contrôleurs peuvent simplement charger le contenu du corps souhaité sans se soucier des vues d'en-tête et de pied de page :

<code class="php">// controller
$this->load->template('body');</code>

Cette approche offre de la flexibilité, permettant une personnalisation facile du contenu de l'en-tête et du pied de page sans encombrer les contrôleurs.

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!

Déclaration:
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