Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] point d'entrée / jurl / interface admin

Posted by pakyann on 04/14/2013 17:26

Bonjour à toutes et à tous,

Je viens vers vous car j'ai un petit soucis sur mon projet jelix (v 1.4). Je viens de créer une interface d'administration avec initadmin et mon master-admin est dans jelix (je n'ai appris qu'ultérieurement qu'on pouvait scinder master-admin et mon app).

Au sein de cette interface d'admin, j'ai créé un bouton avec comme href :

href="{jurl 'jelix~updatepageaccueil@classic', array('idpageaccueil'=>$COURANTPAGEACCUEIL->idpageaccueil)}"

Sur la page :

http://127.0.0.1/HETRESITE/www/indexadmin.php

je clique sur mon bouton qui devrait me rediriger vers :

http://127.0.0.1/HETRESITE/www/indexadmin.php/master-admin/updatepageaccueil

mais j'ai le lien suivant :

http://127.0.0.1/HETRESITE/www/index.php/jelix/default/updatepageaccueil

avec ce message :

Unknown module in the selector "jauthdb~jelixuser"
Code: 18
File: C:\wamp\www\jelix\lib\jelix\core\selector\jSelectorDao.class.php 48
0	jSelectorDao->_createPath()	app:../jelix\lib\jelix\core\selector\jSelectorModule.class.php	44
1	jSelectorModule->__construct()	app:../jelix\lib\jelix\core\selector\jSelectorDao.class.php	42
2	jSelectorDao->__construct()	app:../jelix\lib\jelix\init.php	117
3	jelix_autoload()	[php]	
4	spl_autoload_call()	[php]	
5	session_start()	app:../jelix\lib\jelix\core\jSession.class.php	81
6	jSession::start()	app:../jelix\lib\jelix\core\jCoordinator.class.php	135
7	jCoordinator->process()	app:../HETRESITE\www\index.php	19

index.php est le point d'entrée de mon application et indexadmin.php est le point d'entrée de mon interface d'administration

Je ne sais pas si j'ai été clair, n'hésitez pas à m'engueuler je débute :)

Merci d'avance.

  [Opened] Re: point d'entrée / jurl / interface admin

Reply #1 Posted by EricD on 04/15/2013 11:28

Tu veux être redirigé sur un controlleur du module master-admin et tu spécifies jelix comme module (dans ta balise jurl) :) De plus pour il faut lui spécifier la méthode que tu veux appeler.

{jurl 'master-admin~updatepageaccueil:index@classic', array('idpageaccueil'=>$COURANTPAGEACCUEIL->idpageaccueil)}

  [Opened] point d'entrée / jurl / interface admin

Reply #2 Posted by pakyann on 04/15/2013 14:29

J'ai donc remplacé :

href="{jurl 'jelix~updatepageaccueil@classic', array('idpageaccueil'=>$COURANTPAGEACCUEIL->idpageaccueil)}" 

par

 {jurl 'master_admin~updatepageaccueil:index@classic', array('idpageaccueil'=>$COURANTPAGEACCUEIL->idpageaccueil)}

donc maintenant en cliquant sur le bouton je suis dirigé vers l'url suivante :

 http://127.0.0.1/HETRESITE/www/indexadmin.php/master_admin/updatepageaccueil/  

mais ceci s'affiche, alors que mon TPL existe bien ainsi que ma fonction au sein du controleur.

404 Not Found

Sorry, the requested page doesn't exist

Page generated by Jelix.

erf j'espère que je vais en voir le bout ! Une idée ?

  [Opened] Re: point d'entrée / jurl / interface admin

Reply #3 Posted by EricD on 04/15/2013 14:40

Ton controlleur est dans quel module ? Quel est le nom de ton controlleur ? Et quel est le nom de la function ? Ta fonction est elle bien public ?

  [Opened] point d'entrée / jurl / interface admin

Reply #4 Posted by pakyann on 04/15/2013 14:50

Le controlleur est dans master_admin et s'appelle default.classic.php (master_admin/controllers/default.classic.php)

Voici son contenu :

class defaultCtrl extends jController {

    public $pluginParams = array(
        '*'=>array('auth.required'=>true),
     );

    /**
     *
     */
    function index() {
        $chemin = jApp::config()->urlengine['jelixWWWPath'];
        $resp = $this->getResponse('html');
        $resp->title = jLocale::get('gui.dashboard.title');
        $resp->body->assignZone('MAIN','dashboard');
        $user = jAuth::getUserSession();
        $driver = jAuth::getDriver();
        if (method_exists($driver, 'checkPassword') &&
            $user->login == 'admin' && $driver->checkPassword('admin', $user->password)) {
            jMessage::add(jLocale::get('gui.message.admin.password'), 'error');
        }
        $resp->body->assign('selectedMenuItem','dashboard');
       // $resp->addCssLink($chemin.'/design/jelix.css');
       
// --- affichage des éléments de page accueil --- //
        
        // Je charge la factory des textes
        $pageaccueilFactory=jDao::get("pageaccueil");
        
        // Je récupère tous les textes grâce à la Factory
        $listOfAllTexte=$pageaccueilFactory->findAll();
        
        // J'envoie la liste à la vue
        $resp->body->assign('ALLPAGEACCUEIL',$listOfAllTexte);
        
// --- affichage des éléments de page actualité --- //
        // Je charge la factory des textes
        $pageactualiteFactory=jDao::get("pageactualite");
        
        // Je récupère tous les textes grâce à la Factory
        $listOfAllTexte=$pageactualiteFactory->findAll();
        
        // J'envoie la liste à la vue
        $resp->body->assign('ALLPAGEACTUALITE',$listOfAllTexte);
        
// --- affichage des éléments de page offres --- //

        // Je charge la factory des textes
        $pageoffresFactory=jDao::get("pageoffres");
        
        // Je récupère tous les textes grâce à la Factory
        $listOfAllTexte=$pageoffresFactory->findAll();
        
        // J'envoie la liste à la vue
        $resp->body->assign('ALLPAGEOFFRES',$listOfAllTexte);
        
// --- affichage des éléments de page éthique --- //

        // Je charge la factory des textes
        $pageethiqueFactory=jDao::get("pageethique");
        
        // Je récupère tous les textes grâce à la Factory
        $listOfAllTexte=$pageethiqueFactory->findAll();
        
        // J'envoie la liste à la vue
        $resp->body->assign('ALLPAGEETHIQUE',$listOfAllTexte);
        
// --- affichage des éléments de page concept --- //
        
        // Je charge la factory des textes
        $pageconceptFactory=jDao::get("pageconcept");
        
        // Je récupère tous les textes grâce à la Factory
        $listOfAllTexte=$pageconceptFactory->findAll();
        
        // J'envoie la liste à la vue
        $resp->body->assign('ALLPAGECONCEPT',$listOfAllTexte);
        
        return $resp;
    }
        function updatepageaccueil() {
            
        // La vue sera une page HTML
        $rep = $this->getResponse('html');
        
        // Je spécifie la vue
        $rep->bodyTpl = "updatepageaccueil";
        
        //Je charge les styles Css de Jelix, mes scripts JS, et mes propres styles CSS
        $chemin = jApp::config()->urlengine['jelixWWWPath'];
        //$rep->addCssLink($chemin.'/design/jelix.css');
        $rep->addJSLink($chemin.'/js/mes_scripts.js');
        
      
        $paramidpageaccueil=$this->param('idpageaccueil');

      
       

        $pageaccueilForm=  jForms::create("master_admin~pageaccueil",$paramidpageaccueil);

        // J'initialise le formulaire à partir de la DAO pageaccueil

        $pageaccueilForm->initFromDao("master_admin~pageaccueil");

        // J'envoie le formulaire à la vue

        $rep->body->assign('FORMULAIREPAGEACCUEIL',$pageaccueilForm);
        
        // La vue est retournée à l'internaute
        return $rep;
    }
    function savepageaccueil() {
        // Je crée un formulaire sur la base de ce qu'à retourné l'internaute
        $pageaccueilForm=jForms::fill("master_admin~pageaccueil",$this->param('idpageaccueil'));
        // Je remplie l'objet formulaire avec les informations saisies par l'internaute
        $pageaccueilForm->initFromRequest();
        
        // Je contrôle si le formulaire respecte les contraintes
        if($pageaccueilForm->check()) {
            
            // Je indique qu'on va vouloir créer une DAO à partir du formulaire
            $result=$pageaccueilForm->prepareDaoFromControls('master_admin~pageaccueil');
            
            
            $pageaccueilFactory=$result['dao'];
            
            
            $COURANTPAGEACCUEIL=$result['daorec'];
            
            
            $pageaccueilFactory->update($COURANTPAGEACCUEIL);
            }
    
        // Que le formulaire soit correct ou non, je redirige vers l'accueil
        return $this->index(); 
    } 
}

  [Opened] point d'entrée / jurl / interface admin

Reply #5 Posted by pakyann on 04/15/2013 15:54

C'est bon ! En faite dans la ligne que tu m'a fournie il fallait juste enlever le ":index". Tout est nickel :)

Encore merci beaucoup aux internautes membres de ce forum qui aident les (très) jeunes développeurs comme moi !

 
Page
  1. Re: point d'entrée / jurl / interface admin