Bonjour,

Puis-je modifier directement depuis mon contrôleur ( tutoriel.php pour prendre l'exemple du tuto ) le layout ? Je m'explique, dans mon layout j'ai par exemple :

<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta http-equiv="Content-Type" Content="text/html; charset=utf-8" />
        <title>Titre</title>
    </head>
    <body>
        <?php echo $content_for_layout; // Contenu ?>
    </body>
</html>

Comment je peut faire pour modifier la balise <title> ?

Je crée une fonction dans mon contrôleur ?
Je modifie mon contrôleur principale ?
Ou encore je crée un contrôleur Layout pour gérer ça ?
Aidez moi svp :)

5 réponses


Mramine
Réponse acceptée

la method la plus simple c'est
var $title = "index"; // par defaut dans le controller
dans l'index dans le controller tu fait $this->title = "grafikart";
dans le layout : <title>echo $this->title;</title>
c''est trés simple mon ami

Si tu fonctionnes à la façon de CakePHP, il existe un moyen très simple. Dans ton controlleur tu fais ça :

public function __construct(){
     $this->title_for_layout = 'Titre de ma page';
}

Et dans ton HTML :

<title><?php echo $title_for_layout; ?></title>
mortilo
Auteur

Je fonctionne à la façon du MVC proposé en tutoriel sur ce site même. Ta solution fonctionnera quand même ?

Oui il te suffit de pouvoir accéder a la variable $this->title_for_layout dans ta vue ;)

Dans le tuto proposé il y a la fonction set() qui prend en paramètre un array donc il te suffit de mettre dans ton controller :

$d'titre'] = 'nouveau titre';
$this->set($d);

Dans ton layout :

<?php if (isset ($titre)): ?>
     <title><?php echo $titre; ?></title>
 <?php else: ?>
    <title>TITRE PAR DEFAUT</title>
 <?php endif; ?>