---
title: "Advanced Group Finder"
canonical: "https://docs.kingdomfirstsolutions.com/space/RPD/41549855/Advanced%20Group%20Finder"
format: markdown
---
## Summary

---

Our Group finder is a significantly modified version of the core Rock version. Including but not limited to these features:

- Added ability to set default location so when address is enabled a campus can be selected and results auto load.
- Added single select campus filter setting so that the campus multiselect filter will be a drop down instead.
- Added ability to set filters by url parameter.
- Added an override setting for PersonGuid mode that enables search options.
- Added postal code search capability.
- Added Collapsible filters.
- Added Custom Sorting based on Attribute Filter.
- Added ability to hide attribute values from the search panel.
- Added Custom Schedule Support to Day of Week Filters.
- Added Keyword search to search name or description of groups.
- Added an additional setting to include Pending members in Over Capacity checking.
- Added a setting to override groups Is Public setting to show on the finder.
- Added ability to display Over Capacity groups with a filter.
- Added Auto Load Filter capability on value selection.
- Added ability to sort how filters are displayed.
- Added ability to load Group/Sign Up Opportunities into finder.

##  What’s New

---

The following new goodness will be added to your Rock install with this plugin:

- **New Block** Group Finder KFS

**Note**: This block will not be added automatically to a page. You will need to create a new page or add this block to an existing page.

## Group Finder Configuration

---

![GroupFinder_Screenshot_20240202.jpg](media://b0b70050-9aff-4971-91e1-c177203cc1b0)

|  |  |
| --- | --- |
| [1] | **Group Type** The type of groups to look for. |
| [2] | **Overcapacity Groups Handling** When set to Hide, groups that are at capacity or whose default GroupTypeRole are at capacity are hidden. If Display as Filter is chosen a toggle will show up to show/hide groups that are at capacity. |
| [3] | **Geofence Group Type** An optional group type that contains groups with geographic boundary (fence). If specified, user will be prompted for their address, and only groups that are located in the same geographic boundary ( as defined by one or more groups of this type ) will be displayed. |
| [4] | **Location Types** The text above the day of the week filter. |
| [5] | **Day of the Week Filter Label** The text above the day of the week filter. |
| [6] | **Time of Day Filter Label** The text above the time of day filter. |
| [7] | **Campus Filter Label** The text above the campus filter. |
| [8] | **Postal Code Label** The text above the postal code filter. |
| [9] | **Keyword Label** The text above the keyword filter. |
| [10] | **Filter Button Text** When using collapsible filters, what the dropdown button says on it. |
| [11] | **More Filters Button Text** When using Hide Filters on Initial Load, what the dropdown button says on it. |
| [12] | **Show Full Groups Label** The text above the Show Full Groups filter. |
| [13] | **Campus Types** The campus types to filter the list of campuses on. |
| [14] | **Campus Statuses** The campus statuses to filter the list of campuses on. |
| [15] | **Display Day of Week Filter** Flag indicating if and how the Day of the Week filter should be displayed to filter groups with 'Weekly' schedules. |
| [16] | **Display Time of Day Filter** Display a Time of Day filter to filter groups with 'Weekly' schedules. |
| [17] | **Display Campus Filter** Display the campus filter. |
| [18] | **Enable Campus Context** If the page has a campus context its value will be used as a filter. |
| [19] | **Enable Postal Code Search** Set to yes to enable simple Postal code search instead of full address. |
| [20] | **Require Postal Code** If Postal Code search is enabled, do you want to require a value to search (can be autofilled by default with a default location or logged in person's location). |
| [21] | **Display Keyword Filter** Display the Keyword filter. |
| [22] | **Display Attribute Filters** The group attributes that should be available for user to filter results by. |
| [23] | **Collapse Filters on Initial Load** Collapse/Hide these filter controls under a collapsible panel for user on first load. Note: Selected filters may impact Filter Display Order. |
| [24] | **Custom Sort from Attribute** Select an attribute to sort by if a group contains multiple of the selected attribute filter options. |
| [25] | **Hide Attribute Filter Values** The group attribute values that you would like to hide from the filter options. This could be used to hide internal attribute values used for reporting. |
| [26] | **Attributes in Keyword Search** The text-based group attributes that should be included in keyword search. |
| [27] | **Filter Display Order** List of filters to display filters in the set order. If using 'Collapse Filters on Initial Load' the sort order is within each individual area. |

(See the [Rock Your Groups Manual](https://community.rockrms.com/documentation/bookcontent/7/217#groupfinder) for the rest of the setting descriptions.)


## Block Properties

---

![Block_Properties.jpg](media://a2ccc7d0-06a7-48ff-bb35-0bd6c007bb91)

|  |  |
| --- | --- |
| [1] | **Name** The name of the block. |
| [2] | **Add Group Opportunities** Add the merge field GroupOpportunities to the lava result with a custom object for Sign-up Opportunities. [See below](#Custom-Lava-Properties) for the field properties. |
| [3] | **Allow Search in PersonGuid Mode** When set to yes, PersonGuid mode will allow you to change filters and search in that mode for that person. Generally used on an internal group finder page. The PersonGuid must be passed as a URL parameter. |
| [4] | **Auto Filter Enabled** When set to yes, the various filters will automatically filter the results, whether it is on checkbox checked, selection made, text changed, etc. |
| [5] | **Auto Load** When set to yes, all results will be loaded to begin. |
| [6] | **Campus Statuses** Allows selecting which campus statuses to filter campuses by. |
| [7] | **Campus Types** Allows selecting which campus types to filter campuses by. |
| [8] | **Collapse Filters on Search** When set to yes, all filters will be collapsed into a single 'Filters' dropdown. |
| [9] | **Default Location** The campus address that should be used as fallback for the search criteria. |
| [10] | **Formatted Output Enabled Lava Commands** Choose what commands to enable in formatted output lava. |
| [11] | **Overcapacity Groups include Pending** When set to yes, the Hide Overcapacity Groups setting also takes into account pending members. |
| [12] | **Show All Groups** When set to yes, all groups will show including those where Is Public is set to false. This is most often used on a staff internal page. |
| [13] | **Single Select Campus Filter** When set to yes, the campus filter will be a drop down instead of checkbox. |

## Advanced

---

**How to Set Attribute Filters via URL Parameters**

Attribute filters can be filled out using URL Parameters. If used in combination with the *Auto Load* setting, a search can be run automatically. To use this capability the parameters are in the format `filter_<attributeKey>_<fieldTypeId>=<value(s)>` (i.e. /page/236?filter_GroupCategory_16=609)

### Custom Lava Properties 

**Group Opportunities **

When "Add Group Opportunities" has been selected in the Block Properties above, GroupOpportunities properties can be accessed by `{% for groupopportunity in GroupOpportunities %}{{ 8 / 10 9 / 10 groupopportunity.[PropertyKey] }}{% endfor %}`.

| **Property** | **Description** |
| --- | --- |
| ** Group** | The Rock.Model.Group attached to the opportunity. |
| **Project** | A custom [Project ](#Project)model attached to the opportunity. |
| **Location** | The Rock.Model.Location attached to the opportunity. |
| **Schedule** | The Rock.Model.Schedule attached to the opportunity. |
| **NextStartDateTime** | Gets the next start time based on Rock.RockDateTime.Now. |
| **ScheduleName** | The Name of the Schedule. |
| **SlotsMin** | The Minimum Attendance from the sign up opportunity. |
| **SlotsDesired** | The Desired Attendance from the sign up opportunity. |
| **SlotsMax** | The Maximum Attendance from the sign up opportunity. |
| **ParticipantCount** | The total participants signed up to this opportunity. |
| **GeoPoint** | The GeoPoint (GeoLocation) for the location. |
| **ProjectName** | The Project Name. |
| **Description** | The Project Description. |
| **ScheduleHasFutureStartDateTime** | Boolean value to determine if the schedule has a future start date time. |
| **FriendlySchedule** | "No Upcoming Occurrences" or the date format: "dddd, MMM d h:mm tt" with optional year if it is displaying an opportunity for next year. |

#### **Project**

Sub-properties of the Group Opportunity above under the `Project` property.

| **Property** | **Description** |
| --- | --- |
| **Group** | The Rock.Model.Group attached to the opportunity. |
| **Name** | The Project Name. |
| **Description** | The Project Description. |
| **ScheduleName** | The Schedule Name. |
| **FriendlySchedule** | "No Upcoming Occurrences" or the date format: "dddd, MMM d h:mm tt" with optional year if it is displaying an opportunity for next year. |
| **AvailableSpots** | A calculated value of Available Spots for this project. |
| **ShowRegisterButton** | Boolean value if the project has a future start date time and available spots. |
| **MapCenter** | Latitude Longitude of the Location for centering the map or the street address of the Location if not geolocated. |
| **GroupId** | The Group Id. |
| **LocationId** | The Location Id. |
| **ScheduleId** | The Schedule Id. |
| **GroupIdKey** | The Group Hashed Id. |
| **LocationIdKey** | The Location Hashed Id. |
| **ScheduleIdKey** | The Schedule Hashed Id. |


**Collapsible Filters Screenshots**

![image](media://7a0510df-b422-4844-9baa-706ac0880855)

![image](media://99da4fa2-bdcb-420c-995e-ec7c30a5d3ea)

![image](media://432fb402-1dcc-41f5-a787-7c5a491f1bd2)