As of the Satellite release version 3.6.0, there is a new shortcode available: The [[bmlt_quicksearch]] shortcode. We’ll discuss it in depth, here.
As you can see, it is possible to have multiple instances on a single page.
First, we’ll set up a default [[bmlt_quicksearch]] instance, using the default setting for this site:
This uses the default theme, and displays towns and boroughs for the entire database (We are pointing at a copy of the Greater New York database).
Note that it indicates there are “too many results.” This is because the shortcode has an idea of how big the search will be, and can predict when it will not go through.
In this case, you can do things like pick a specific town (the popup menu) or select only a couple of weekdays. Once the shortcode has decided that the search set is manageable, it will restore the “GO” button.
Now, the default set of values for the popup menu is to get every single town (location_municipality), combined with every single borough (location_city_subsection) from the entire database. Even if there is only one meeting in that town/borough, the town will be shown. If there are no meetings in that town, then the town will not be shown. Only values that contain meetings are shown.
The top value of the popup always executes a search for every meeting in the database, which, for some Root Servers, will be prohibitively large.
Note, however, how incredibly fast the shortcode is, even with the entire database.
Now, why don’t we simply filter out the five boroughs of New York City. There’s a couple of ways we could do this. One, is to have the popup only display values in the location_city_subsection field:
This works, but it is not ideal. In this case, it works, because the only boroughs in the database are in New York City. However, if we included Boston, there may also be Boston boroughs listed.
Instead, we can be explicit in what we want to see. We add each name we want, separated by commas. Spaces are OK:
The strange character casing is deliberate, and demonstrates that we don’t need to worry about case. However, correct spelling is important.
Fine. Let’s misspell one of the boroughs:
I took the space out between “STATEN” and “island”:
Note that “Staten Island” is now gone. The shortcode looked for a borough named “statenisland” in the database, and found no meetings were in that borough, so it didn’t show up. Just because we asked for it, does not mean we got it.
Now, let’s look for meetings ONLY in Staten Island:
Notice anything missing? The popup is not necessary, as there is only one choice. Additionally, the dataset for Staten Island is small enough that we get the “GO” button from the git-go.
Yo can choose between all these fields:
location_neighborhood(neighborhoods or districts)
location_postal_code_1(Zip codes, but often unreliable, as administrators frequently fail to add zip codes to their addresses)
It is possible to specify sets where even a single choice is too much. Here’s an example:
If you select “NY”, you will get the “too many results” message. Try deselecting a few weekdays.
This shortcode is best for providing a simple “window” onto a big database. Let’s have a real-world example of a few towns that are part of the Huntington Township of Long Island, New York. Long Island has “townships,” which are actually collections of smaller towns and villages. Let’s specify only the towns within the Huntington Township. This time, we will reference a setting that has a different display theme. We use the same syntax as with other shortcodes, with the ID separated from the specifier by a “##-##”:
[[bmlt_quicksearch(1339674838##-##location_municipality=Huntington,Huntington Village,South Huntington,Huntington Station,Dix Hills,Elwood,Greenlawn,Centerport,Melville,Northport,EastNorthport,Fort Salonga,Halesite,Lloyd Harbor,Asharoken,Eaton’s Neck,Huntington Bay,Vernon Valley,West Hills,Wincoma,Cold Spring Harbor)]]
Oops. We made a mistake, there. “EastNorthport” should be “East Northport”:
[[bmlt_quicksearch(1339674838##-##location_municipality=Huntington,Huntington Village,South Huntington,Huntington Station,Dix Hills,Elwood,Greenlawn,Centerport,Melville,Northport,East Northport,Fort Salonga,Halesite,Lloyd Harbor,Asharoken,Eaton’s Neck,Huntington Bay,Vernon Valley,West Hills,Wincoma,Cold Spring Harbor)]]
That’s better. Note that several towns that we asked for are not displayed, because they don’t have any meetings.