Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'ai presque finalisé mon blog en php. Il est en mvc orienté objet.Je suis débutant et j'arrive devant une difficulté.
Mon contrôleur va demander au modèle les données, les analyse, prend les décisions et renvoient le texte à afficher à la vue.
La plupart du temps il est sous cette forme:

if (isset($_GET['action'])) {
    if ($_GET['action'] == 'listPosts') {
        $ctrlfrontend->listPosts();
    }
    elseif ($_GET['action'] == 'post') {
        if (isset($_GET['id']) && $_GET['id'] > 0) {

            $ctrlfrontend->post();
        }

Ce que je veux

usqu'a maintenant j'ai travaillé avec '$_GET['action'] ==' du coup la fonction était appelé lors de ce get action ,c'etait facile a mettre en place avec un form ou un lien.
Mais maintenant je desire utiliser des données dans mon template ou gabarit de page sauf que je ne sais pas quoi utilisé pour appeler la fonction dans le template.Je vois comment faire en procédural mais pas en mvc.
si vous pouviez m'aider merci.

1 réponse


Homeland
Auteur

Pour exemple en procédural cela fonctionne:

<?php

try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=localhost;dbname=blog_forteroche;charset=utf8', 'root', '');
}
catch(Exception $e)
{
    // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}

// Si tout va bien, on peut continuer

// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT id,user_id, title,chapter, content, DATE_FORMAT(creationDate, \'%d/%m/%Y\') AS creation_date_fr FROM posts ORDER BY creationDate ');?>
    <!DOCTYPE html>
    <html>

    <head>

"></script>
        <script src="https://cloud.tinymce.com/stable/tinymce.min.js?apiKey=i9qtcs3a3bdsajmuw9vustqee9f5wd2z1pnc8mpv2bjzzzn0"></script>
        <script>
            tinymce.init({
                selector: "textarea"
                , selector: "textarea:not(.mceNoEditor)"
                , theme: 'modern'
                , plugins: 'lists advlist image imagetools'
            });
        </script>
    </head>
    <title>
        <?= $title ?>
    </title>

    <body>
        <nav class="navbar navbar-default navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
                </div>
                <div class="collapse navbar-collapse" id="myNavbar">
                    <?php if (!$_SESSION) { ?>
                        <ul class="nav navbar-nav">
                            <li><a href="#about" class="billet">Billet simple pour l'Alaska</a></li>
                            <li><a href="index.php"><i class="fa fa-home"></i>Accueil</a></li>
                            <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="index.php?action=chapterList" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Chapitres
        </a>
                                <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                                    <?php while ($data = $posts->fetch())
{
?>
                                        <a action="" class="dropdown-item" href="#">
                                            <?php echo $data['chapter']; ?>
                                        </a>
                                        <?php
}
$reponse->closeCursor(); // Termine le traitement de la requête ?>
                                </div>
                            </li>
                            <li><a href="index.php?action=connect"><i class="fa fa-sign-in" aria-hidden="true"></i>Connexion</a></li>
                        </ul>
                        <?php } else { ?>
                            <ul class="nav navbar-nav">
                                <li><a href="#about" class="billet">Billet simple pour l'Alaska</a></li>
                                <li><a href="index.php"><i class="fa fa-home"></i>Accueil</a></li>
                                <li><a href="index.php?action=board">Board</a></li>
                                <li><a href="index.php?action=deconnexion"><i class="fa fa-sign-in" aria-hidden="true"></i>Déconnexion</a></li>
                            </ul>
                            <?php } ?>
                </div>
            </div>
        </nav>
        <div>
            <?= $content ?>
        </div>
        <footer id="footer" class="navbar-fixed-bottom">
            <p>©forteroche</p>
        </footer>
    </body>

    </html>