Bonjour à tous et à toutes!
Je commence à découvrir CakePHP et j'avoue que lorsque qu'on m'a donné ce site, j'ai tout de suite été ravi. Vous faîtes du super boulot.
Cela dit, j'ai un petit problème. Je suis en train de suivre le tuto-vidéo [Développer un site avec CakePHP Jour 1]. Arrivé vers la 40aine de minutes, on doit s'occuper du prefix "admin" pour commencer à gérer un back-office. Je commence à faire donc ceci:
/* CORE.PHP */
Configure::write('Routing.prefixes', array('admin'));
Puis je m'occuper de créer le AppController.php en ajoutant ceci:
<?php
class AppController extends Controller{
function beforeFilter(){
if(isset($this->request->params"prefix"]) && $this->request->params"prefix"] == "admin"){
$this->layout = "admin";
} else {
$this->layout = "default";
}
}
}
?>
Mais lorsque je débug ceci, je n'ai pas le prefix qui s'affiche en clair mais quelque chose qui ressemble à ça: [prefix] => "*****". Donc au lieu de [prefix] => "admin" en clair comme sur le tuto.
J'essaye tout de même de continuer, en créant le layout "admin.ctp" à côté du "default.ctp". Rien n'y fait non plus. Peut importe ce que j'essaye de faire comme modifier les routes dans routes.php (ce qui est inutile normalement), cakePHP continue d'utiliser le default.ctp et j'ai encore, par exemple, le menu "Navigation" au lieu "Administration" et continuer de me faire une belle erreur comme celle-ci: Fatal Error (256): [MissingActionException] Action PagesController::admin_menu() could not be found.
Et j'avoue avoir bien besoin d'aide! Merci beaucoup d'avance!
PS: J'utilise CakePHP-2.1-stable.
Salut,
Pour l'histoire des étoiles, je crois que c'est dû à la nouvelle version de cakePHP. Je ne peux pas t'en dire plus car je suis encore sous cakePHP 2.0, mais j'ai lu cela sur différents sujet sur le forum.
Pour ton beforeFilter essaye avec ce code :
function beforeFilter(){
$this->Auth->loginAction = array('controller'=>'users','action'=>'login','membre'=>false,'admin'=>false);
$this->Auth->authorize = array('Controller');
if(!isset($this->request->params'prefix'])){
$this->Auth->allow();
}
if(isset($this->request->params'prefix']) && $this->request->params'prefix'] == 'admin'){
$this->layout = 'admin';
}
}
Finalement, j'ai recommencé le tuto ce matin et cette fois ça a marché avec le même code. J'ai du faire quelque chose avant cette étape qui fait tout péter.
Cela dit, j'ai un soucis avec le bootstrap de twitter. Le gitHub ne propose plus que la version 2.0 et pose problème et ne possède même pas les même fichiers, par exemple, le dossier libs qui est inexistant dans le zip. Avez-vous un lien vers la version 1.3 qu'utilise GraphikArt dans le tuto?
Merci beaucoup!
Montre ton code avec le bootstrap, j'utilise la version 2.0 et tout est nickel. Biensure les class n'ont plus les mêmes noms.
Je me permets de ressortir le sujet, car j'ai exactement le même problème, j'ai relus plusieurs fois mon code et rien a faire, il veut pas passer. Peut être une solution? (Zenkiai, j'ai tentais ta solution, elle ne fonctionne pas non plus :/)