diff --git a/php/generate-listings.php b/php/generate-listings.php index d555290..c50005e 100644 --- a/php/generate-listings.php +++ b/php/generate-listings.php @@ -84,6 +84,11 @@ } } } + + $rooms = array_filter($rooms, function(CommunityRoom $room) { + return !$room->room_is_off_record(); + }); + $listings[] = new CommunityListing( $id, $listing_props['name'], diff --git a/php/servers/servers-rooms.php b/php/servers/servers-rooms.php index 38c9e5d..a1e3f76 100644 --- a/php/servers/servers-rooms.php +++ b/php/servers/servers-rooms.php @@ -136,6 +136,13 @@ $this->description = substr($this->description, 0, strpos($this->description, $tag_specification)); } + /** + * Returns true if room should not be reflected in listings. + */ + function room_is_off_record(): bool { + return !$this->read; + } + /** * Return information for JSON serialization. */ diff --git a/php/utils/utils.php b/php/utils/utils.php index 797cd98..cbc7a6a 100644 --- a/php/utils/utils.php +++ b/php/utils/utils.php @@ -17,7 +17,11 @@ function count_rooms(array $servers): int { $rooms_total = 0; foreach ($servers as $server) { - $rooms_total += count($server->rooms); + foreach ($server->rooms as $room) { + if (!$room->room_is_off_record()) { + $rooms_total += 1; + } + } } return $rooms_total; } diff --git a/sites/+components/tbl-communities.php b/sites/+components/tbl-communities.php index 6a42cc7..05a5ee3 100644 --- a/sites/+components/tbl-communities.php +++ b/sites/+components/tbl-communities.php @@ -49,10 +49,8 @@ $room): ?> read) { - // Skip unreadable rooms. - - // While not necessary, this hack can later allow SOGS + if ($room->room_is_off_record()) { + // This can later allow SOGS // to pass server-wide info using hidden dummy rooms. continue; }