Bonjour tout le monde,

D'abord, merci pour toutes ces infos et ces cours.

J'ai suivi le tuto de création et ça fonctionne bien.

Je me heurte maintenant à un problème que je qualifierai de compréhension.

Le site créé génere des pages supplémentaires en passant par l'administration ("auto-render"). Seulement, je ne comprends pas comment créer des pages supplémentaires sans passer par l'administration, mais directement dans mon dossier view: je souhaite une page "gallerie"(photos) où il y aura des codes PHP.

En d'autre termes, je veux créer une page comme je peux le faire avec l'administration, mais je veux y mettre du PHP.

Dois-je créer une "function _gallerie" dans mon pagecontroller ? ou modifier ma function_render ? ou rien de tout ça ?
Il y a un truc qui m'échappe.

Merci de votre aide :)

Edit: Je me suis embrouillé:

Pour créer une page, je dois passer par Myphpadmin. Seulement, ce ne peut être que des pages sans PHP. J'ai besoin de mettre du php sur mes pages.
Je dois normalement créer des pages.php et les controllers qui vont avec. Mais il y a le controller et le pagecontroller qui rendent les vues déjà. Je ne vois pas la subtilité...

5 réponses


Carouge10
Réponse acceptée

Bonsoir,
Si tu as suivi les tutos de ce site. Il suffit de faire un fonction "gallerie" dans le "pagescontroller" est de vrée une vue dans le dossier vue.
Tu as peut-être crée un page "contact"...... ce qui serait un peut la même chose....

JoHuv
Auteur
Réponse acceptée

Merci de ta réponse. C'est bien ce que je pensais. Mais je n'ai pas encore fait de page contact: j'aime m'attarder sur les détails pour bien comprendre ^^.
Mais une question me reste cependant: pourquoi l'"auto-render" ne la trouve pas lui même ? je ne comprends pas la différence que fait le code.

function view($id){

    $this->loadModel('Post');
    $d['page']  = $this->Post->findFirst(array(
        'conditions' => array('online' => 1,'id'=>$id,'type'=>'page')
    )); 
    if(empty($d['page'])){
        $this->e404('Page introuvable'); 
    }
    $this->set($d);

En ajoutant une condition, du genre
"et/ou si la page est dans ce répertoire, rendre la vue de cette page ? est ce que ça rendrait la page ? ou il me manque une logique ?

Merci.

Carouge10
Réponse acceptée

Oui il te manque la condition dans le find afin de trouver ce que tu cherches.
Et puis as-tu crée un lien dans le menu afin d'accéder à ta page ?

JoHuv
Auteur

Bonjour, je reviens à nouveau sur le sujet. Je n'arrives pas à assimiler certaines choses.

J'ai crée dans pagecontroller:

function galerie($id){
$this->loadModel('Post');
$this->layout = 'default'; 
$d['page'] = $this->Post->find();
$this->set($d);
}

Et ma page 'galerie.php' dans le dossier '/view/page' avec ma view.php

<?php $title_for_layout = $page->name ?>

<h1>page galerie</h1>

Pa mouyen de voir ma nouvelle page. Il me manque une information, mais quoi ?! je vu et revu le tuto j2 pour comprendre ce qu'il se passe, mais visiblement un truc m'échappe. Quelqu'un pour m'expliquer ce qu'il ne va pas ?
Merci de votre aide.

JoHuv
Auteur

Merci, et merci de m'avoir fait penser au lien ! ^^
ça fonctionne bien ! je n'ai plus qu'a coder la page... et ce ne sera pas une mince affaire : le but est d'afficher les photos qui sont sur mon serveur multimédias. (si tu as des conseils à ce sujet, je suis preneur...
Merci encore Carouge10 !