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]

5 réponses


re,

Personne n'a une idée dd'oui ca coince

merci

Cafreunion

Fait voir ton admin.ctp

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

Et dans ton Pagecontroller, tu as une function admin_menu ?

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