Bonjour,
J'ai recommencer ce tutoriel à la suite de la création d'un espace membre, mais j'ai un soucis dans le chargement du layout admin
Mon layout par défaut se charge deux fois dans la même page (ci-dessous les élément que j'ai à l'écrant
le code de mon AppController
<?php
App::uses('Controller', 'Controller');
class AppController extends Controller {
public $helpers = array('Text','Form','Html','Session','Cache');
public $components = array('Session','Cookie',
'Auth' => array(
'authenticate' =>array(
'Form' => array(
'scope'=>array('User.active'=>1)
)
)
)
);
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';
}
}
}
dans core, j'ai fais les modifications pour les prefix comme dans le tutoriel
merci de votre aide
Cafreunion
Layout par defaut
Se connecter
S'inscrire
??
Layout par defaut
Se connecter
S'inscrire
?
Fatal Error (256): [MissingActionException] Action PagesController::admin_menu() could not be found.
#0 E:\wamp\www\multicites\lib\Cake\Routing\Dispatcher.php(103): Controller->invokeAction(Object(CakeRequest))
#1 E:\wamp\www\multicites\lib\Cake\Routing\Dispatcher.php(85): Dispatcher->_invoke(Object(PagesController), Object(CakeRequest), Object(CakeResponse))
#2 E:\wamp\www\multicites\lib\Cake\Core\Object.php(97): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse), Array)
#3 E:\wamp\www\multicites\app\View\Elements\menu.ctp(1): Object->requestAction(Array)
#4 E:\wamp\www\multicites\lib\Cake\View\View.php(908): include('E:\wamp\www\mul...')
#5 E:\wamp\www\multicites\lib\Cake\View\View.php(872): View->_evaluate('E:\wamp\www\mul...', Array)
#6 E:\wamp\www\multicites\lib\Cake\View\View.php(412): View->_render('E:\wamp\www\mul...', Array)
#7 E:\wamp\www\multicites\app\View\Layouts\default.ctp(27): View->element('menu')
#8 E:\wamp\www\multicites\lib\Cake\View\View.php(908): include('E:\wamp\www\mul...')
#9 E:\wamp\www\multicites\lib\Cake\View\View.php(872): View->_evaluate('E:\wamp\www\mul...', Array)
#10 E:\wamp\www\multicites\lib\Cake\View\View.php(527): View->_render('E:\wamp\www\mul...')
#11 E:\wamp\www\multicites\lib\Cake\View\View.php(471): View->renderLayout('', 'default')
#12 E:\wamp\www\multicites\lib\Cake\Controller\Controller.php(959): View->render('error500', NULL)
#13 E:\wamp\www\multicites\lib\Cake\Error\ExceptionRenderer.php(285): Controller->render('error500')
#14 E:\wamp\www\multicites\lib\Cake\Error\ExceptionRenderer.php(267): ExceptionRenderer->_outputMessageSafe('error500')
#15 E:\wamp\www\multicites\lib\Cake\Error\ExceptionRenderer.php(187): ExceptionRenderer->_outputMessage('missingControll...')
#16 [internal function]: ExceptionRenderer->_cakeError(Object(MissingControllerException))
#17 E:\wamp\www\multicites\lib\Cake\Error\ExceptionRenderer.php(165): call_user_func_array(Array, Array)
#18 E:\wamp\www\multicites\lib\Cake\Error\ErrorHandler.php(127): ExceptionRenderer->render()
#19 [internal function]: ErrorHandler::handleException(Object(MissingControllerException))
#20 {main} [CORE\Cake\Error\ErrorHandler.php, line 136]
re,
Ci-dessous mon layout admin.ctp
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-Type" content="text/html"; charset="utf8"/>
<title><?php echo $title_for_layout;?></title>
<?php echo $this->Html->css(array('bootstrap')); ?>
<?php echo $scripts_for_layout;?>
</head>
<body>
<div class="topbar">
<div class="topbar-inner">
<div class="container">
<h3<a href="#"> Layout Administration</a></h3>
<ul class=" menu">
<?php if(AuthComponent::user('id')):?>
<li><?php echo $this->Html->link("Se déconnecter",array('action'=>'logout','controller'=>'users'));?></li>
<li><?php echo $this->Html->link("Pages",array('action'=>'index','controller'=>'pages'));?></li>
<?php else:?>
<li><?php echo $this->Html->link("Se connecter",array('action'=>'login','controller'=>'users'));?></li>
<li><?php echo $this->Html->link("S'inscrire",array('action'=>'signup','controller'=>'users'));?></li>
<?php endif; ?>
</ul>
</div>
<div>
</div>
<div class="container">
<?php echo $this->Session->flash();?>
<?php echo $content_for_layout;?>
</div>
<div class="container">
<?php echo $this->element('debug'); ?>
</div>
</body>
</html>
J'utilise la dernière version de cakephp
Cafreunion
re,
J'ai pas de fonction index_menu dans mon conroller, j'ai créé la fonction mais pour l'instant c'est a vide afin de voir si rl problème disparaissait.
Je me suis connecter sur la page et maintenant j'ai un autre message d'erreur mais toujours pas mon layout admin
Ci-dessous le message que j'ai
Fatal Error (256): [CakeException] $controller does not implement an isAuthorized() method.
#0 E:\wamp\www\multicites\lib\Cake\Controller\Component\Auth\BaseAuthorize.php(71): ControllerAuthorize->controller(Object(PagesController))
#1 E:\wamp\www\multicites\lib\Cake\Controller\Component\AuthComponent.php(414): BaseAuthorize->__construct(Object(ComponentCollection), Array)
#2 E:\wamp\www\multicites\lib\Cake\Controller\Component\AuthComponent.php(376): AuthComponent->constructAuthorize()
#3 E:\wamp\www\multicites\lib\Cake\Controller\Component\AuthComponent.php(330): AuthComponent->isAuthorized(Array)
#4 [internal function]: AuthComponent->startup(Object(PagesController))
#5 E:\wamp\www\multicites\lib\Cake\Utility\ObjectCollection.php(130): call_user_func_array(Array, Array)
#6 [internal function]: ObjectCollection->trigger(Object(CakeEvent))
#7 E:\wamp\www\multicites\lib\Cake\Event\CakeEventManager.php(246): call_user_func(Array, Object(CakeEvent))
#8 E:\wamp\www\multicites\lib\Cake\Controller\Controller.php(671): CakeEventManager->dispatch(Object(CakeEvent))
#9 E:\wamp\www\multicites\lib\Cake\Routing\Dispatcher.php(100): Controller->startupProcess()
#10 E:\wamp\www\multicites\lib\Cake\Routing\Dispatcher.php(85): Dispatcher->_invoke(Object(PagesController), Object(CakeRequest), Object(CakeResponse))
#11 E:\wamp\www\multicites\lib\Cake\Core\Object.php(97): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse), Array)
#12 E:\wamp\www\multicites\app\View\Elements\menu.ctp(1): Object->requestAction(Array)
#13 E:\wamp\www\multicites\lib\Cake\View\View.php(908): include('E:\wamp\www\mul...')
#14 E:\wamp\www\multicites\lib\Cake\View\View.php(872): View->_evaluate('E:\wamp\www\mul...', Array)
#15 E:\wamp\www\multicites\lib\Cake\View\View.php(412): View->_render('E:\wamp\www\mul...', Array)
#16 E:\wamp\www\multicites\app\View\Layouts\default.ctp(27): View->element('menu')
#17 E:\wamp\www\multicites\lib\Cake\View\View.php(908): include('E:\wamp\www\mul...')
#18 E:\wamp\www\multicites\lib\Cake\View\View.php(872): View->_evaluate('E:\wamp\www\mul...', Array)
#19 E:\wamp\www\multicites\lib\Cake\View\View.php(527): View->_render('E:\wamp\www\mul...')
#20 E:\wamp\www\multicites\lib\Cake\View\View.php(471): View->renderLayout('', 'default')
#21 E:\wamp\www\multicites\lib\Cake\Controller\Controller.php(959): View->render('error500', NULL)
#22 E:\wamp\www\multicites\lib\Cake\Error\ExceptionRenderer.php(285): Controller->render('error500')
#23 E:\wamp\www\multicites\lib\Cake\Error\ExceptionRenderer.php(267): ExceptionRenderer->_outputMessageSafe('error500')
#24 E:\wamp\www\multicites\lib\Cake\Error\ExceptionRenderer.php(187): ExceptionRenderer->_outputMessage('cake')
#25 [internal function]: ExceptionRenderer->_cakeError(Object(CakeException))
#26 E:\wamp\www\multicites\lib\Cake\Error\ExceptionRenderer.php(165): call_user_func_array(Array, Array)
#27 E:\wamp\www\multicites\lib\Cake\Error\ErrorHandler.php(127): ExceptionRenderer->render()
#28 [internal function]: ErrorHandler::handleException(Object(CakeException))
#29 {main} [CORE\Cake\Error\ErrorHandler.php, line 136]
Merci de votre aide