Filter By Host (Author)

Written By Luke Wakefield

Last updated 2 months ago

This Option Lets you filter Events by Host

Prerequisites

  • You have installed the Events Module
  • You have installed the Authors Module
  • You have added at least one Author as an Event Host

Introduction

This article explains:

  • How to include the Browse by Host (Author) Option when including a Blog List
  • Default Layout Examples
  • How to give feedback to the User about their results e.g. in the screenshot "Events hosted by Regina Alexander"

Add "use_adv_search" parameter to include for Event List View

The "use_adv_search" parameter is needed to allow filtering from the URL to apply to your Event Items, this can be added to the include for Event List like so:

Example
{%- include 'module' id: '12' layout: 'default' per_page: '20' show_pagination: 'true' sort_type: 'created_at' sort_order: 'desc' use_adv_search: 'true' -%}

To Include this Option

Include the following liquid to dynamically get a list of available Event Hosts for the User to select.

Example
{%- include 'modules/siteglide_authors/get/get_authors' author_layout: 'design_system/1/author' author_layout_type: 'list' author_field: 'module_field_12_4' -%}

The author_field will be module_field_12_4 if you are using Siteglide's Authors Module. The layouts are structured in the same way as Category Layouts in the previous section.

Default Layout Examples with Explanation

wrapper.liquid

Example
<div class="row no-gutters"> <div class="col-12"> <h2>Authors</h2> <ul> {%- include 'modules/siteglide_system/get/get_items', item_layout: 'item' -%} </ul> </div> </div>

item.liquid

Example
<a class="authorAnchorSidebar" href="{{context.location.pathname}}?module_field_12_4={{this.id}}&author_name={{this.name | url_encode}}" > {% if this['Image'] -%} <img src="{% if this['Image'] contains 'http' -%}{{this['Image']}}{% else -%}{{this['Image'] | asset_url}}{% endif -%}" alt="{{this['Image Alt']}}"> {% endif -%} <li>{{this['name']}}</li> </a>

To filter the Blog List View, you need a link to the Blog List View slug, followed by "?module_field_12_4={{this.id}}". Siteglide will be able to read the URL and filter the list.

User Feedback - Displaying the currently applied filter

To make it easier to give feedback to the User, you can optionally include the Host's name in the URL:

Example
<a href="{{context.location.pathname}}?module_field_12_4={{this.id}}&host_name={{this.name | url_encode}}"></a>

On the List view, you can then include the following liquid to read the URL and decode the Author name you are currently filtering by:

Example
{% if context.params.module_field_12_4 %} Events hosted by {{context.params.host_name | url_decode}} {% endif %}