Listing screen keys: category filter bar and sort sheet

Summary

A listing screen (a button whose content type shows a list of listings, such as a GeoDirectory list) can show a row of category “pills” at the top, the category filter bar, and a sort sheet the user opens to reorder the list. This article covers the screen keys that control both.

All keys are optional and all values are JSON strings, like every other app setting (see Mobile JSON shape). They are read from the screen (button) settings for the listing screen.


Category filter bar

Key Values Default Effect
filter_bar_min_choices number as a string, for example "2" "2" The bar is shown only when the listings have at least this many different real categories. “All” does not count. With fewer, the bar is hidden.
require_top_tabbar "yes" not set Always show the bar, even with fewer choices than filter_bar_min_choices, and even when hide_top_tabbar is "yes".
hide_top_tabbar "yes" not set Hide the bar on this screen. require_top_tabbar wins if both are set.

What changes when the bar is hidden

  • Filtering does not change. The list still uses the same starting category it would have used with the bar showing. Hiding the bar only removes the row of pills.
  • Subcategory tags stay. If the screen uses subcategories (use_subcategories), the subcategory tags still show when a lone category bar is hidden because of filter_bar_min_choices.
  • The image category scroller is not affected. Screens with use_scroller_for_categories set to "yes" use a different bar that these keys do not control.

Examples

A listing screen where every listing is in one category used to show a bar with a single pill. From iOS 26.40.14 that bar is hidden by default. To keep it:

{ "require_top_tabbar": "yes" }

Show the bar only when there are at least three categories to choose from:

{ "filter_bar_min_choices": "3" }

Never show the bar on this screen:

{ "hide_top_tabbar": "yes" }

hide_top_tabbar was not honoured on some earlier iOS builds. iOS 26.40.14 honours it again.


Sort sheet

The sort sheet lists Alphabetically (A-Z), Alphabetically (Z-A), Date Added (Newest) and Date Added (Oldest). On iOS 26.40.14+ it also lists:

  • Distance (Nearest), shown only when at least one listing row carries a numeric distance value (a number, or a string such as "2.4"). It sorts the list nearest-first on the device.

There is no key to turn this option on. It appears when the server sends distance on the rows. For GeoDirectory listings, mam-geodirectory 26.40.3+ adds distance (miles from the user) whenever the app sends the user’s location; see Content type: GeoDirectory list and map. A custom content class can do the same by adding a distance string to each row.

Date Added sorts on each row’s date. When no row has a date but every row has a post_date timestamp, it sorts on post_date instead, which is what GeoDirectory rows carry.


Gotchas

  • Values are strings. Send "2", not 2, and "yes", not true.
  • Older app builds ignore these keys. An iOS build before 26.40.14 shows a single-pill bar and has no Distance (Nearest) option. Android support for these keys is pending.
  • Distance (Nearest) is a device-side sort. It does not change the order the server sends. The server’s default order for GeoDirectory is set by the Display order using Distance from User app setting.

  • Mobile JSON shape
  • Per-button and per-role settings
  • Content type: GeoDirectory list and map
  • Mobile listing data shape

Metadata

Field Value
Article type JSON Key Reference
Plugin slug mam-main
Applies to app version iOS 26.40.14+ (Android support pending)
Category App Settings Reference
Audience App builder, PHP developer
Last verified 2026-10-01
Was this article helpful?
Contents

    Need Support?

    Can't find the answer you're looking for? Don't worry we're here to help!