Bonjour, j'aimerais créer un chat avec le framework.
Voilà mes tables :
j'ai une page messagerie::list qui liste tous les utilisateurs qui peuvent communiquer entre eux.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 CREATE TABLE `conversations` ( `id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `conversations` (`id`) VALUES (1); CREATE TABLE `conversations_users` ( `id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `conversation_id` int(11) NOT NULL, `readt_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- table `conversations_users` -- INSERT INTO `conversations_users` (`id`, `user_id`, `conversation_id`, `readt_at`) VALUES (1, 1, 1, '2018-02-20 15:13:28'), (2, 14, 1, '2018-02-20 15:13:47'); CREATE TABLE `messages` ( `id` int(11) NOT NULL, `msg_from` varchar(150) NOT NULL, `conversation_id` int(11) NOT NULL, `content` text NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Déchargement des données de la table `messages` -- INSERT INTO `messages` (`id`, `msg_from`, `conversation_id`, `content`, `created_at`) VALUES (1, 'vincent.jue', 1, 'bonjour', '2018-02-20 13:07:42'), (2, 'beatrice.dijoux', 1, 'Bonjour', '2018-02-20 15:14:00'); ALTER TABLE `conversations` ADD PRIMARY KEY (`id`); ALTER TABLE `conversations_users` ADD PRIMARY KEY (`id`); ALTER TABLE `messages` ADD PRIMARY KEY (`id`);
quand je clique sur un des noms une page messagerie::show&id=1 ( avec l'id du user )
j'aimerais enregistré un message pour cette personne en base
Voilà mon controller
Comment dois je procédé au niveau de process_saveCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 <?php class module_messagerie extends abstract_module{ public function before(){ $this->oLayout=new _layout('bootstrap'); $this->oLayout->addModule('menu','menu::index'); } public function _list(){ $tUsers = model_users::getInstance()->findAll(); $oView=new _view('messagerie::list'); $oView->tUsers=$tUsers; $this->oLayout->add('main',$oView); } public function _show(){ $tUsers = model_users::getInstance()->findAll(); $oUserShow = model_users::getInstance()->findById( _root::getParam('id') ); $oView=new _view('messagerie::show'); $oView->tUsers=$tUsers; $oView->oUserShow=$oUserShow; $oPluginXsrf=new plugin_xsrf(); $oView->token=$oPluginXsrf->getToken(); $tMessage=$this->processSave(); $oMessages=new row_messages; $this->oLayout->add('main',$oView); } private function processSave(){ if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas return null; } /*$oPluginXsrf=new plugin_xsrf(); if(!$oPluginXsrf->checkToken( _root::getParam('token') ) ){ //on verifie que le token est valide return array('token'=>$oPluginXsrf->getMessage() ); }*/ $iId=_root::getParam('id',null); if($iId==null){ $oMessages=new row_messages; }else{ $oMessages=model_messages::getInstance()->findById( _root::getParam('id',null) ); } $tColumn=array('msg_from','conversation_id','content','created_at'); foreach($tColumn as $sColumn){ $oMessages->$sColumn=_root::getParam($sColumn,null) ; } if($oMessages->save()){ //une fois enregistre on redirige (vers la page liste) _root::redirect('messagerie::list'); }else{ return $oMessages->getListError(); } } public function after(){ $this->oLayout->show(); } }