Subversion-Projekte lars-tiefland.prado

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
class ChatBufferRecord extends TActiveRecord
4
{
5
	const TABLE='chat_buffer';
6
 
7
	public $id;
8
	public $for_user;
9
	public $from_user;
10
	public $message;
11
	private $_created_on;
12
 
13
	public function getCreated_On()
14
	{
15
		if($this->_created_on === null)
16
			$this->_created_on = time();
17
		return $this->_created_on;
18
	}
19
 
20
	public function setCreated_On($value)
21
	{
22
		$this->_created_on = $value;
23
	}
24
 
25
	public static function finder($className=__CLASS__)
26
	{
27
		return parent::finder($className);
28
	}
29
 
30
	public function saveMessage()
31
	{
32
		foreach(ChatUserRecord::finder()->findAll() as $user)
33
		{
34
			$message = new self;
35
			$message->for_user = $user->username;
36
			$message->from_user = $this->from_user;
37
			$message->message = $this->message;
38
			$message->save();
39
			if($user->username == $this->from_user)
40
			{
41
				$user->last_activity = time(); //update the last activity;
42
				$user->save();
43
			}
44
		}
45
	}
46
 
47
	public function getUserMessages($user)
48
	{
49
		$content = '';
50
		foreach($this->findAll('for_user = ?', $user) as $message)
51
			$content .= $this->formatMessage($message);
52
		$this->deleteAll('for_user = ? OR created_on < ?', $user, time() - 300); //5 min inactivity
53
		return $content;
54
	}
55
 
56
	protected function formatMessage($message)
57
	{
58
		$user = htmlspecialchars($message->from_user);
59
		$content = htmlspecialchars($message->message);
60
		return "<div class=\"message\"><strong>{$user}:</strong> <span>{$content}</span></div>";
61
	}
62
}
63
 
64
?>