Rock 1.6.3 Documentation

Lava Additions

Rock has an amazing collection of filters that you can use to customize your Lava templates. But they don't have everything, and sometimes you just need a little bit more to get the data you need.

Ever wanted to loop through an collection of results and use a complex conditional check to see if that item should be displayed? Well sure, you can do that now. But what if you then want to apply a complex sorting algorythm to those final results? It's kind of hard to do that with the Lava filters that come with Rock. Now you can add those matching results to a temporary array and then apply custom sorting logic to it later before displaying.

How about those complex sorting operations? Ever wanted to display a list of group members sorted by if they are a leader or not and then sorted by last name? Pretty hard to do until you use our new BBM_OrderBy filter that allows sorting by multiple keys simultaneously.

We run into this a lot. We have a collection of items, such as GroupMembers. We want to display them but we want them grouped by their Role. Sure we could use the above mentioned BBM_OrderBy filter to sort by role and then name and use some complex checking to detect when the role changes in our loop. Or we could simply group the results by role. Grouped results can then be sorted by last name and each group displayed as a whole unit without complex logic. Take a look at the BBM_GroupBy filter for an example of this one.

  • Create and modify arrays of objects.
  • Create and modify dictionarys to store information during loops that you want to display later.
  • Add custom HTTP headers to a page or Lava API.
  • Run Lava that is stored in a variable or entity attribute.

These are a few of the types of things you can do with this plugin. There are always new things we are seeing a need for and adding so be sure to keep an eye on the release notes below. And let us know if there is anything that would be helpful to you!

Version History

  • Added BBM_Sum filter to sum a collection of numbers.
  • Added BBM_RegExMatches to find and return information about found matches to a regular expression.
  • Added BBM_RegExReplace to find and replace a regular expression with a string.
  • Added BBM_ComputeHash to compute the SHA1, SHA256, SHA386, SHA512 or MD5 hash of a string or byte array.
  • Added BBM_ToBase64 to convert a string or byte array to a base64 encoded string.
  • Added BBM_FromBase64 to convert a base64 encoded string to a byte array or readable string.
  • Added BBM_PageRoute to build a URL based on a Page Id or Guid and optional route parameters.
  • Added BBM_Call to replace the BBM_Function filter to reduce confusion.
  • Deprecated BBM_Function filter.
  • Added BBM_AddToArray to add a new item to an array of items.
  • Added BBM_RemoveFromArray to remove an item from an array of items.
  • Added BBM_Distinct to return only the unique set of items in an array.
  • Added BBM_GroupBy to group items in an array by the specified property.
  • Added BBM_OrderBy to sort items in an array by the specified property/properties.
  • Added BBM_AddToDictionary to add a new key/value pair to a dictionary.
  • Added BBM_RemoveFromDictionary to remove a key from a dictionary.
  • Added BBM_AllKeysFromDictionary to retrieve all keys from a dictionary.
  • Added BBM_AddHttpHeader to add a new HTTP Header to the response send to the client.
  • Added BBM_RunLava to parse and execute the lava contained in a string.
  • Added BBM_Function to define and call set of lava that can be used in multiple places.