Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MkFramework Discussion :

CRUD intégrables style poupées russes


Sujet :

MkFramework

  1. #1
    Membre régulier
    CRUD intégrables style poupées russes
    Bonjour,

    Dans votre tuto il y a
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $oView=$this->view('notreVueB');
     
    //on instancie le module integrable C
    $oModuleC=new module_monModuleC;
    //on recuere la vue de ce module C
    $oModuleC=$oModuleC->_index();
     
    //on assigne la vue C à la vue B <img src="images/smilies/icon_wink.gif" border="0" alt="" title=";)" class="inlineimg" />
    $oView->oModuleC=$oModuleC;


    Je ne comprend pas ce que je doit ecrire à la palce de "notreVueB"
    dans mon cas j'ai ce code dans la methode show()
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function _show(){
    		$oSessions=model_sessions::getInstance()->findById( _root::getParam('id') );
     
    		$oView=new _view('sessions::show');
    		$oView->oSessions=$oSessions;
    		$this->oLayout->add('main',$oView);
     
    		$oView->tJoinmodel_ateliers=model_ateliers::getInstance()->getSelect();		
    		$oView->tJoinmodel_sessions=model_sessions::getInstance()->getSelect();
    }

    J'integre le module dans la méthode ce qui donne
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public function _show(){
    		$oSessions=model_sessions::getInstance()->findById( _root::getParam('id') );
     
    		$oView=new _view('sessions::show');
    		$oView->oSessions=$oSessions;
    		$this->oLayout->add('main',$oView);
     
    		$oView->tJoinmodel_ateliers=model_ateliers::getInstance()->getSelect();		
    		$oView->tJoinmodel_sessions=model_sessions::getInstance()->getSelect();
     
    		//instancier le module
    	$oModuleClasses=new module_classes();
     
    	//si vous souhaitez indiquer au module integrable des informations sur le module parent
    	//$oModuleClasses->setRootLink('module::action',array('parametre'=>_root::getParam('parametre')));
     
    	//recupere la vue du module
    	$oViewModule=$oModuleClasses->_index();
     
    	//assigner la vue retournee a votre layout
    	$this->oLayout->add('main',$oViewModule);
    }

    Dans mon cas je met le module B dans A qui integrera C qui lui même D
    J'ai decommenté la ligne
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    //$oModuleClasses->setRootLink('module::action',array('parametre'=>_root::getParam('parametre')));


    Et modifier
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $oModuleClasses->setRootLink('sessions::show',array('id'=>_root::getParam('id')));


    Ce qui fonctionne parfaitement . Je continu à faire de même avec les trois autres modules integrables. Je suis confronté à un problème de RootLink entre mon module mes deux dernier module.
    C'est à dire que j'ai dans la barre d'adresse
    index.php?:nav=sessions::show&id=1&classesAction=show&classesid=1
    Quand je clique sur evaluation j'ai
    index.php?:nav=sessions::show&id=1&elevesAction=show&elevesid=4
    Au lieu de
    index.php?:nav=sessions::show&id=1&classesAction=show&classesid=1&elevesAction=show&elevesid=4

  2. #2
    Rédacteur

    1. j'ai mis à jour le tutoriaux pour que ce soit plus précis
    http://mkdevs.com/tutoriaux.html#crudembedded

    2. pour le rootLink: il faut mettre en l'ensemble de la chaîne des paramètres nécessaires au fonctionnement "poupée russe":

    Ici, il faut modifier le rootLink d'évaluation pour avoir l'ensemble des paramètres du contexte qui le concerne:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $oModuleClasses->setRootLink('sessions::show',array('id'=>_root::getParam('id'),
    'classesAction'=>_root::getParam('classesAction'),
    'classesid'=>_root::getParam('classesid')
    ));

    Il faut mettre dans le module enfant les paramètres de sa mère et (si c'est le cas ceux de sa grand-mère
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre régulier
    Bonjour ça marche. Donc le résume au niveau des RootLink
    Accueil ->liste des sessions (par exemple je choisi de voir les classes de la session 2011-2013)
    Alors j’intègre dans la methode show() du module sessions le 'module integrable classes' avec
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $oModuleClasses->setRootLink('sessions::show',array('id'=>_root::getParam('id')));


    Du coup j'ai la liste de toutes les classes de la sessions commandé.
    Je choisi de voir les éléves dans une des classes .
    Alors j’intègre dans la méthode classes show() le module 'integrable eleves avec cette fois
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $oModuleEleves->setRootLink('sessions::show',array('id'=>_root::getParam('id'),'classesAction'=>_root::getParam('classesAction'),'classesid'=>_root::getParam('classesid')));


    Et là j'ai la liste de tous les élèves. J'en choisi un pour l'évaluer.
    Alors j'intègre dans le module eleves méthode show() le module integrable evaluations" avec seulement
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $oModuleEvaluations->setRootLink('users::show',array('id'=>_root::getParam('id')));


    Si le module evaluations avait un petit il aurait falu mettre ça alors?
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $oModuleEvaluations->setRootLink('sessions::show',array('id'=>_root::getParam('id'),
    			'classesAction'=>_root::getParam('classesAction'),
    			'classesid'=>_root::getParam('classesid'),
    			'elevesAction'=>_root::getParam('elevesAction'),
    			'elevesid'=>_root::getParam('elevesid')));


    Pour ce qui concerne le tuto j'avais bien vue le changement mais j'aimerais avoir un exemple sur cette phrase. Car je ne sais pas ce qu'il faut entendre par "notreVueB"

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $oViewB=$this->view('notreVueB');

    Si le module s’appelle " titi"
    J'ai
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    ...$oView=new _view('titi::list');
    		$oView->tTiti=$tTiti;

    Donc ma vue c'est bien $oView? il faut mettre ça alors?
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $oViewB=$this->view('$oView');

  4. #4
    Rédacteur

    Oui pour l'explication des poupees russes

    Quand on fait
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $oViewB=$this->view('notreVueB');

    On initialise la variable $oViewB avec l'objet vue "notreVueB" (qui doit etre le fichier module/monModule/notrevueB.php)

    Si le module s'appelle titi
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    $oView=new _view('titi::list');
    $oView->tTiti=$tTiti;

    Donc ma vue c'est bien $oView? il faut mettre ça alors?

    $oViewB=$this->view('$oView');
    non pourquoi ?

    $oView est un objet ce n'est pas du texte
    Sur le mkframework on peut facilement manipuler ses vues car ce sont des objets que l'on peut instancier, enrichir retourner (module intégrable) voir passer à une autre vue (cas des poupées russes)

    Vous appelez vos variables objets comme vous voulez
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Membre régulier
    Bonsoir,

    Donc ma vue c'est bien $oView? il faut mettre ça alors?
    Citation:
    $oViewB=$this->view('$oView');
    non pourquoi ?
    $oView est un objet ce n'est pas du texte
    Sur le mkframework on peut facilement manipuler ses vues car ce sont des objets que l'on peut instancier, enrichir retourner (module intégrable) voir passer à une autre vue (cas des poupées russes)
    Vous appelez vos variables objets comme vous voulez

    J'ai compris que $oview est un objet qui représente la vue et qu'on peu l’appeler dans les fichiers /view/ du module
    Mais je ne comprend pas: Que faut il comprendre par "notreVueB" il faut mettre "$oview" ou autre chose?
    $oView est un objet ce n'est pas du texte
    Il faut mettre du texte entre les accolades
    $oViewB=$this->view('notreVueB');

  6. #6
    Rédacteur

    Autant pour moi, il y avait une erreur sur le tutorial, j'ai corrigé

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $oViewB=new _view('monModuleB::notreVueB');
     
    //on instancie le module integrable C
    $oModuleC=new module_monModuleC;
    //on recuere la vue de ce module C
    $oViewModuleC=$oModuleC->_index();
     
    //on assigne la vue C à la vue B <img src="images/smilies/icon_wink.gif" border="0" alt="" title=";)" class="inlineimg" />
    $oViewB->oViewModuleC=$oViewModuleC;
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Membre régulier
    Il faut mettre quoi alors a la place de "notreVueB"?
    $oView ?

  8. #8
    Rédacteur

    Citation Envoyé par pitu69 Voir le message
    Il faut mettre quoi alors a la place de "notreVueB"?
    $oView ?
    j'ai corrigé sur le tutorial et pas dans ma réponse c'est fait

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $oViewB=new _view('monModuleB::notreVueB');
     
    //on instancie le module integrable C
    $oModuleC=new module_monModuleC;
    //on recuere la vue de ce module C
    $oViewModuleC=$oModuleC->_index();
     
    //on assigne la vue C à la vue B <img src="images/smilies/icon_wink.gif" border="0" alt="" title=";)" class="inlineimg" />
    $oViewB->oViewModuleC=$oViewModuleC;

    Je pense que là ça répond à votre question
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  9. #9
    Membre régulier
    Merci c'est plus clair

    Maintenant que tout fonctionne je vais m'attaquer aux authentifications.
    J'espère que mon apprentissage va mieux se continuer.

    Merci pour votre patience et pour la rapidité de votre réaction.

  10. #10
    Rédacteur

    Merci à vos feedbacks ça me permet d'améliorer la doc

    C'est normal pour un framework comme le mien (fasse aux mastodontes Zend,Symfony and co) d'assurer le support, peut être un jour il y aura une "communauté" pour répondre aux questions
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux