"language", 'name' => "L", 'name_long' => "Language"],
['id' => "name", 'name' => "Name"],
['id' => "description", 'name' => "About", 'name_long' => "Description"],
['id' => "users", 'name' => "#", 'name_long' => "Active Users"],
['id' => "preview", 'name' => "Preview"],
['id' => "qr_code", 'name' => "QR", 'name_long' => "QR Code (for use in-app)"],
['id' => "server_icon", 'name' => "Host", 'name_long' => "Server host"],
['id' => "join_url", 'name' => "URL", 'name_long' => "Join URL (for use in-app)"],
];
$SERVER_ICON_COLUMN = array_keys(array_filter($TABLE_COLUMNS, function($column){return $column['id'] == "server_icon";}))[0];
?>
$column): ?>
id="th_=$column['id']?>" class="tbl_communities__th">
=$column['name']?>
|
$room): ?>
is_off_record()) {
// This can later allow SOGS
// to pass server-wide info using hidden dummy rooms.
continue;
}
$pubkey = $room->server->get_pubkey();
$icon_hue = hexdec($pubkey[2] . $pubkey[2]);
$icon_color = "hsl($icon_hue, 80%, 50%)";
$server_icon = server_icon($room->server, '64x64');
$pubkey_shorthand = strtoupper($pubkey[0] . $pubkey[1]);
$id = html_sanitize($room->get_room_identifier());
$language = html_sanitize($room->get_language_flag());
$name = html_sanitize($room->name);
// $name_trunc = truncate($name, 16);
$name_trunc = "Community";
$desc = html_sanitize($room->description);
$users = html_sanitize($room->active_users);
$users_cutoff = html_sanitize($room->format_user_cutoff_period());
$users_tooltip = $room->read
? "$users active users in the last $users_cutoff"
: "$users users with read privileges, ??? others";
$users = $room->read ? $users : "—";
$preview_link = html_sanitize($room->get_preview_url());
$join_link = html_sanitize($room->get_join_url());
$pubkey = html_sanitize($pubkey);
$hostname = html_sanitize($room->server->get_hostname());
$class_list = ["room-row"];
if ($room->is_stickied_room()) {
$class_list[] = "room-row-stickied";
}
$classname = implode(" ", $class_list);
/**
* Note on refactoring:
* Icon is hard to move to JSON because it'd have to be generated by fetching code
* Icon safety is depended on by CSS styles
*/
?>
:=$room->icon_safety()?>'
>
=$language?> |
=
$name
?>
get_showcased_room_tags() as $tag): ?>
=
truncate($tag->get_text_sanitized(), 16)
?>
|
=$desc?> |
=$users?> |
|
|
=$pubkey_shorthand?>
|
|