mirror of
				https://github.com/Mibew/java.git
				synced 2025-10-31 18:41:09 +03:00 
			
		
		
		
	Moved themeMessage method from ThreadProcessor to Thread
This commit is contained in:
		
							parent
							
								
									c26fc8bb26
								
							
						
					
					
						commit
						1528c610d7
					
				| @ -381,6 +381,55 @@ Class Thread { | |||||||
| 		return $kind_names[$message_kind]; | 		return $kind_names[$message_kind]; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Theme message to display in chat window | ||||||
|  | 	 * | ||||||
|  | 	 * @param array $message Message array | ||||||
|  | 	 * @return string Ready to display themed message | ||||||
|  | 	 */ | ||||||
|  | 	public static function themeMessage($message) { | ||||||
|  | 		global $webim_encoding; | ||||||
|  | 
 | ||||||
|  | 		// No theming for avatars
 | ||||||
|  | 		if ($message['ikind'] == Thread::KIND_AVATAR) { | ||||||
|  | 			return ''; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		// Prepare messages fields
 | ||||||
|  | 		$creation_date = date("H:i:s", $message['created']); | ||||||
|  | 		$kind_name = Thread::kindToString($message['ikind']); | ||||||
|  | 		$sender_name = $message['tname'] | ||||||
|  | 			? "<span class='n{$kind_name}'>" . htmlspecialchars($message['tname']) . "</span>: " | ||||||
|  | 			: ''; | ||||||
|  | 
 | ||||||
|  | 		// Prepare message text
 | ||||||
|  | 		// Escape special chars
 | ||||||
|  | 		$text = htmlspecialchars($message['tmessage']); | ||||||
|  | 		// Replace URL's by <a> tags
 | ||||||
|  | 		$text = preg_replace('/(https?|ftp):\/\/\S*/', '<a href="$0" target="_blank">$0</a>', $text); | ||||||
|  | 		// Add <br> tags instead of \n chars
 | ||||||
|  | 		$text = str_replace("\n", "<br/>", $text); | ||||||
|  | 		// Span and storng tags available for system messages
 | ||||||
|  | 		if ($message['ikind'] != Thread::KIND_USER && $message['ikind'] != Thread::KIND_AGENT) { | ||||||
|  | 			$text = preg_replace('/<(span|strong)>(.*)<\/\1>/U', '<$1>$2</$1>', $text); | ||||||
|  | 			$text = preg_replace( | ||||||
|  | 				'/<span class="(.*)">(.*)<\/span>/U', | ||||||
|  | 				'<span class="$1">$2</span>', | ||||||
|  | 				$text | ||||||
|  | 			); | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		// Build result message
 | ||||||
|  | 		$result = sprintf( | ||||||
|  | 			"<span>%s</span> %s<span class='m%s'>%s</span><br/>", | ||||||
|  | 			$creation_date, | ||||||
|  | 			$sender_name, | ||||||
|  | 			$kind_name, | ||||||
|  | 			$text | ||||||
|  | 		); | ||||||
|  | 		return myiconv($webim_encoding, "utf-8", $result); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	/** | 	/** | ||||||
| 	 * Return next revision number (last revision number plus one) | 	 * Return next revision number (last revision number plus one) | ||||||
| 	 * | 	 * | ||||||
|  | |||||||
| @ -224,55 +224,6 @@ class ThreadProcessor extends RequestProcessor { | |||||||
| 		return $requests; | 		return $requests; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** |  | ||||||
| 	 * Theme message to display in chat window |  | ||||||
| 	 * |  | ||||||
| 	 * @param array $message Message array |  | ||||||
| 	 * @return string Ready to display themed message |  | ||||||
| 	 */ |  | ||||||
| 	protected function themeMessage($message) { |  | ||||||
| 		global $webim_encoding; |  | ||||||
| 
 |  | ||||||
| 		// No theming for avatars
 |  | ||||||
| 		if ($message['ikind'] == Thread::KIND_AVATAR) { |  | ||||||
| 			return ''; |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 		// Prepare messages fields
 |  | ||||||
| 		$creation_date = date("H:i:s", $message['created']); |  | ||||||
| 		$kind_name = Thread::kindToString($message['ikind']); |  | ||||||
| 		$sender_name = $message['tname'] |  | ||||||
| 			? "<span class='n{$kind_name}'>" . htmlspecialchars($message['tname']) . "</span>: " |  | ||||||
| 			: ''; |  | ||||||
| 
 |  | ||||||
| 		// Prepare message text
 |  | ||||||
| 		// Escape special chars
 |  | ||||||
| 		$text = htmlspecialchars($message['tmessage']); |  | ||||||
| 		// Replace URL's by <a> tags
 |  | ||||||
| 		$text = preg_replace('/(https?|ftp):\/\/\S*/', '<a href="$0" target="_blank">$0</a>', $text); |  | ||||||
| 		// Add <br> tags instead of \n chars
 |  | ||||||
| 		$text = str_replace("\n", "<br/>", $text); |  | ||||||
| 		// Span and storng tags available for system messages
 |  | ||||||
| 		if ($message['ikind'] != Thread::KIND_USER && $message['ikind'] != Thread::KIND_AGENT) { |  | ||||||
| 			$text = preg_replace('/<(span|strong)>(.*)<\/\1>/U', '<$1>$2</$1>', $text); |  | ||||||
| 			$text = preg_replace( |  | ||||||
| 				'/<span class="(.*)">(.*)<\/span>/U', |  | ||||||
| 				'<span class="$1">$2</span>', |  | ||||||
| 				$text |  | ||||||
| 			); |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 		// Build result message
 |  | ||||||
| 		$result = sprintf( |  | ||||||
| 			"<span>%s</span> %s<span class='m%s'>%s</span><br/>", |  | ||||||
| 			$creation_date, |  | ||||||
| 			$sender_name, |  | ||||||
| 			$kind_name, |  | ||||||
| 			$text |  | ||||||
| 		); |  | ||||||
| 		return myiconv($webim_encoding, "utf-8", $result); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Send new messages to window | 	 * Send new messages to window | ||||||
| 	 * | 	 * | ||||||
| @ -287,7 +238,7 @@ class ThreadProcessor extends RequestProcessor { | |||||||
| 		$messages = $thread->getMessages($is_user, $last_message_id); | 		$messages = $thread->getMessages($is_user, $last_message_id); | ||||||
| 		if (! empty($messages)) { | 		if (! empty($messages)) { | ||||||
| 			foreach($messages as $key => $msg) { | 			foreach($messages as $key => $msg) { | ||||||
| 				$messages[$key] = $this->themeMessage($msg); | 				$messages[$key] = Thread::themeMessage($msg); | ||||||
| 			} | 			} | ||||||
| 			$this->responses[] = array( | 			$this->responses[] = array( | ||||||
| 				'token' => md5(time() . rand()), | 				'token' => md5(time() . rand()), | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user