# Boards and Forums Reference

This document provides a field-by-field reference for managing the organizational hierarchy of your forum through the **Boards** and **Forums** management interfaces.

---

## 1. Boards Management

Boards are the top-level organizational unit for your forum. They serve as categories that group related forums together.

### Board Fields

When creating or editing a board, you will find the following fields:

-   **Name**: The display name of the board (e.g., "General Discussion" or "Support"). This is shown in the forum index.
-   **Slug**: A URL-friendly version of the name. If left empty, it will be automatically generated from the board name.
-   **Routing Note**: Board slugs are currently for admin-side organization and record identity. Front-end routes do not have a dedicated board URL segment.
-   **Description**: (Optional) A brief explanation of the board's purpose. This description is displayed on the main forum index page, directly below the board name.
-   **Status**: A dropdown to set the board's visibility:
    -   **Active**: Regular access evaluation applies.
    -   **Private**: Child forums require login before capability checks.
    -   **Hidden**: Child forums require login and are not listed in non-admin indexes.
    -   **Draft**: Child forums become admin-only.
-   **Status Cascading Logic**: Board status acts as a parent restriction for every forum in that board.
-   **ID**: Each board is assigned a unique internal ID (visible in the ID column). Useful for admin/debug workflows.

### Nested Forums (Paid only)

GravityOps Forum supports a multi-level hierarchy through nested forums. This allows you to create sub-categories within your main discussion areas. This feature is only available on paid plans.

-   **Creating a Nested Forum**: When creating or editing a forum, use the **Parent Forum** dropdown to select another forum within the same board.
-   **Front-end Display**: Nested forums are displayed on the main forum index and individual forum pages, typically indented or listed as "Sub-forums" depending on the template.
-   **Permission Inheritance**: Nested forums do NOT automatically inherit permissions from their parent forum. You must explicitly assign an **Access Set** to each sub-forum.

### Board Actions

-   **Manage Forums**: Navigates to the list of forums contained within that specific board.
-   **Edit**: Opens the inline editor to modify the board's name, slug, or description.
-   **View**: Opens the forum index in a new tab.
-   **Delete**: Permanently removes the board record from the forum structure. **Warning:** Deleting a board will also delete all forums contained within it. When a board is deleted, all associated topics and replies are moved to the trash in Gravity Forms. Note that the original Gravity Forms themselves are not deleted.

---

## 2. Forums Management

Forums are the specific areas where topics are created and discussions take place. Each forum must belong to a parent board.

### Forum Fields

When creating or editing a forum, you will find the following fields:

-   **Name**: The display name of the forum (e.g., "Announcements" or "Bug Reports").
-   **Slug**: The URL-friendly identifier for the forum. If left empty, it will be automatically generated from the forum name. It follows the forum base slug directly (e.g., `yourdomain.com/forum/announcements/`).
-   **Routing Note**: Topic routes use the topic entry ID as the final segment (e.g., `yourdomain.com/forum/announcements/123/`).
-   **Description**: (Optional) A detailed description of what should be posted in this forum.
-   **Parent Forum**: (Optional) Use this to nest this forum inside another forum. This creates a multi-level structure in your community.
-   **Status**: A dropdown to set the forum's visibility:
    -   **Active**: The forum and its topics are visible according to access-set rules.
    -   **Private**: Login is required, then access-set rules apply.
    -   **Hidden**: Login is required, access-set rules apply, and the forum is not listed in non-admin indexes.
    -   **Draft**: The forum and its topics are hidden from all non-administrative users (`manage_options`).
-   **Access Set**: A dropdown to select which permission group applies to this forum. Access sets define who can view, post, and moderate content. You can manage these sets in the **Access** tab.
-   **Topics Per Page**: Controls how many topics are shown per page in this forum's topic list. Default is `20`.
-   **ID**: Each forum has a unique ID, which can be found in the ID column of the forums list. This ID is used by `[gofrm_forum id="..."]`. For `[gofrm_topic]`, use the topic entry ID.

### Forum Actions
-   **Edit**: Opens the inline editor for the forum's details and access settings.
-   **Topics**: Toggles a view of the most recent topics in the forum, showing their IDs and ready-to-use shortcodes.
-   **View**: Opens the public-facing view of the forum.
-   **Delete**: Permanently removes the forum record from the forum structure. Deleting a forum will automatically move all associated topics and replies to the trash in Gravity Forms. The assigned Gravity Forms themselves remain intact, but the entry data will no longer be accessible through the forum interface.

---

## 3. Status Behavior Matrix

The table below summarizes expected behavior for non-admin users:

| Status    | Index/List Visibility           | Direct URL Access | Login Required | Notes                                                                      |
|-----------|---------------------------------|-------------------|----------------|----------------------------------------------------------------------------|
| `active`  | Visible (if access-set permits) | Yes               | Not always     | Anonymous access is possible only if anonymous role mapping allows `view`. |
| `private` | Can appear to eligible users    | Yes               | Yes            | Must be logged in and pass access-set checks.                              |
| `hidden`  | Hidden from non-admin lists     | Yes               | Yes            | Usually accessed via direct URL only.                                      |
| `draft`   | Not visible                     | No                | N/A            | Admin-only content.                                                        |

Board status is a parent restriction:

- A `draft` board makes all child forums admin-only.
- A `private` or `hidden` board enforces login for all child forums, even if a child forum is `active`.
- An `active` board leaves child forums controlled by each forum's own status.
