"identifier", 'name' => "Identifier"],
		['id' => "language", 'name' => "L"],
		['id' => "name", 'name' => "Name"],
		['id' => "description", 'name' => "Description"],
		['id' => "users", 'name' => "Users"],
		['id' => "preview", 'name' => "Preview"],
		['id' => "qr", 'name' => "QR"],
		['id' => "server_icon", 'name' => "Server"],
		['id' => "join_url", 'name' => "Join URL"],
	];
?>
	
 $column): ?>
		| id="th_=$column['id']?>">
			=$column['name']?> | 
 $room): ?>
	server->get_pubkey();
		$icon_hue = hexdec($token[2] . $token[2]);
		$icon_color = "hsl($icon_hue, 80%, 50%)";
		$hostname = $room->server->get_base_url();
		// Escape external input.
		// Ternaries prevent passing null-equal strings, which produce warnings.
		$id = htmlspecialchars($room->get_room_identifier());
		$language = $room->language_flag ? htmlspecialchars($room->language_flag) : "";
		$name = htmlspecialchars($room->name);
		$desc = $room->description ? htmlspecialchars($room->description) : "";
		$users = htmlspecialchars($room->active_users);
		$preview_link = htmlspecialchars($room->get_preview_url());
		$join_link = htmlspecialchars($room->get_join_url());
		// TODO: Do not forget to rename this escape when merging!
		$token = htmlspecialchars($token);
		$hostname = htmlspecialchars($hostname);
	?>
	">
		| =$id?> | =$language?> | =$name?> | =$desc?> | =$users?> | get_preview_url(), 'http://')): ?>
					HTTP
				
				get_preview_url(), 'https://')): ?>
					HTTPS |   | 
				=strtoupper($token[0] . $token[1])?>
			 |  |