From dd028bec3822d1d9c28c35d599d687e038c7705f Mon Sep 17 00:00:00 2001 From: wei <> Date: Thu, 4 Jan 2007 11:23:26 +0000 Subject: Add chat demo and tutorial. --- demos/chat/protected/pages/Home.php | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 demos/chat/protected/pages/Home.php (limited to 'demos/chat/protected/pages/Home.php') diff --git a/demos/chat/protected/pages/Home.php b/demos/chat/protected/pages/Home.php new file mode 100644 index 00000000..65cb22dc --- /dev/null +++ b/demos/chat/protected/pages/Home.php @@ -0,0 +1,56 @@ +Application->User->Name; + if(!$this->Application->Modules['users']->usernameExists($username)) + { + $auth = $this->Application->Modules['auth']; + $auth->logout(); + + //redirect to login page. + $this->Response->Redirect($this->Service->ConstructUrl($auth->LoginPage)); + } + } + + function processMessage($sender, $param) + { + if(strlen($this->userinput->Text) > 0) + { + $record = new ChatBufferRecord(); + $record->message = $this->userinput->Text; + $record->from_user = $this->Application->User->Name; + $record->saveMessage(); + $this->userinput->Text = ''; + $this->refresh($sender, $param); + $this->CallbackClient->focus($this->userinput); + } + } + + function refresh($sender, $param) + { + //refresh the message list + $content = ChatBufferRecord::finder()->getUserMessages($this->Application->User->Name); + if(strlen($content) > 0) + { + $client = $this->Page->CallbackClient; + $anchor = (string)time(); + $content .= " "; + $client->appendContent("messages", $content); + $client->focus($anchor); + } + + //refresh the user list + $lastUpdate = $this->getViewState('userList',''); + $users = ChatUserRecord::finder()->getUserList(); + if($lastUpdate != $users) + { + $this->Page->CallbackClient->update('users', $users); + $this->setViewstate('userList', $users); + } + } +} + +?> \ No newline at end of file -- cgit v1.2.3