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!