Le carnet de bord du webmaster
Passez votre chemin c'est mes notes ici...
31 | 19 | 8 | 20 | 6 | 32 | 10 | 11 | 21 | 34 | 16 | 9 | 36 | 17 | 30 | 18 | 28 | 29 | 7 | 27 | 25 | 22 | 13 | 15 | 37 | 12 | 23 | 26 | 24 | 35 | 33
**** 7-06-2010
06h sysadmin sieste 09h Kif 09h36, modification majeure dans le concept de kif list : le requestObject (ro) n'est plus passé directement au fetcher lors de son instanciation. Mais le fetcher a un méthode setConfig(ro) qui sera appelée par le listHandler au moment opportun. Cela me permet d'avoir moins de code à l'extérieur. Le problème venait du fait que pour faire des liens (ou formulaires) qui permettent de trier la liste. Avec l'objet de config à l'extérieur, cela m'oblige à récupérer des variables depuis le code, et en fonction de certaines conditions de les définir, je passe ensuite ces variables dans le tableau de config du RequestObject. Ces quelques lignes de code sont donc maintenant prises en charge par le listHandler, qui saura, par convention, en fonction de l'objet sortLink utilisé, quels paramètres utiliser et quoi afficher, l'objet étant un tout cohérent avec lui même. 12h36 :le gros problme de tout passer en post comme désiré hier, c'est que la navigation du côté utilisateur peut devenir rapidement un cauchemar, si l'utilisateur utilise les boutons suivant et précédent de son navigateur, alors le navigateur peut lui redemander à chaque fois si il veut reposter les infos : trop pénible pour valider cette solution; Nous allons donc plutôt garder GET, mais implicite, grâce aux sessions. Nous ne passons par get que pour signaler un changement. 13h musique 14h Ah ben non en fait c bon 18h sport 20h30 résolution d'un bug d'inadvertance qui faisait que les listes d'annones ne fonctionnairent plus correctement 01h12 : la liste marche très basiquement, mais avec les 4 éléments suivants : moteur de recherche, système de tri, liste, système de pagination. Le design me plaît. Cette fois-ci, aucun paramètre dans l'url, sauf le numéro de page, donc système optimisé pour le référencement (on va pas m'la faire 2 fois…) Voici mon code réél d'appel : /*******************************************************************************/ // DISPLAYER /*******************************************************************************/ $htmlTable = new Kif_HtmlTable(); $htmlTable->addAttribute("style", "width:100%;"); $htmlTable->setOutputFieldsHumanNames(array( 'name' => 'nom', )); /*******************************************************************************/ // SORTLINKS /*******************************************************************************/ $oSortTriggers = new Kif_List_SortTriggers_PostSessionDefault(); /*******************************************************************************/ // SEARCHENGINE /*******************************************************************************/ $oSearchEngine = new Kif_List_SearchEngine_PostSessionDefault(); /*******************************************************************************/ // PAGINATION /*******************************************************************************/ $oPagination = new Kif_List_Pagination_FixedSize(); /*******************************************************************************/ // LISTHANDLER /*******************************************************************************/ $listHandlerTemplate = FS_APPLICATION_ROOT . '/template/listhandler/model1.php'; $aConfig=array( // 'searchExpression'=>'meublé tours', 'searchFields'=>array('titre'), 'allowedSortFields'=> array('a.id', 'a.titre'), 'aCurrentSortFirstField'=> array('id' , 0), 'sortFieldsTriggersName'=> array('a.id' => '#', 'a.titre' => 'titre'), 'tablename'=>'annonce_en_ligne', 'selectedFields'=>'a.id, a.titre, c.NCCENR', 'currentPage'=>1, 'pageLinkFormat'=> $_SERVER['REDIRECT_URL'] . '?' . Kif_ListHandler_PostSession::GET_CURRENTPAGE . '=%d', 'sessionNameSpace'=> 'listhandler_01', // 'nbItemsPerPage'=>3, 'innerjoin'=>'a inner join commune c ON c.id=a.id_commune', // 'where'=>"WHERE NCCENR='Tours'", ); $ro = new Kif_RequestObject_Database($aConfig); $fetcher = new Kif_Fetcher_Database(); $lh = new Kif_ListHandler_PostSession($fetcher, $ro, $listHandlerTemplate); $lh->setDisplayer($htmlTable); $lh->setSortTriggers($oSortTriggers); $lh->setSearchEngine($oSearchEngine); $lh->setPagination($oPagination); $lh->prepareTemplate(); $lh->display(); C'est un très bon début, même si j'ai mis longtemps à le créer. Hélas le timing est short, mais sinon, j'aurais du normalement voir comment implémenter les actions sur les éléments de la liste, commer effacer, éditer. Egalement, j'aurais du créer d'autres objets ViewObject comme Kif_HtmlTable qui n'affiche qu'une bête table : c'est à dire développer des objets html/css plus comlexes comme le système grid ou autre. En tout cas l'implémentation de base est relativement très ouverte, beaucoup plus que le système liste5 qui mélangeait code, configuration, logique… Ici,en réalité, il n'ya pas grand chose à faire, juste appeler correctement le listHandler avec les bons paramètres. Bon je dois me coucher tôt car le délai pour bind me presse, et je suis fatigué, demain j'attaque le formulaire, et je verrais les amliorations de mon objet de liste je ne sais pas quand, peut être pendant la création de l'esclave, ou peut être demain finalement, sholesmarrons.