Overview
This article covers the core global objects available on every Localist Events template. The Site object and its related nested objects control platform-wide settings, branding, features, and authentication across the entire theme. These objects are always available without needing to be explicitly passed to templates.
The following objects are covered in this article:
-
Site — Platform configuration, branding, and nested settings
-
User — Current visitor and user-specific data
-
Site Format — Localized date/time formatting patterns
-
Theme — Theming configuration and navigation
-
Navigation Link — Header navigation link structure
The Site Object
The Site object is the primary global configuration object. It is accessed as site and contains settings for branding, authentication, features, URLs, and nested configuration objects.
Identity and Branding
| Variable | Type | Description |
|---|---|---|
site.name |
String | The platform name. |
site.contact_email |
String | Platform contact email. |
site.home_link |
String | URL to the platform home page. |
site.country |
String | Default country setting. |
site.distance_unit |
String | Unit for distance measurements (e.g., “mi” or “km”). |
site.has_logo |
Boolean | Whether the site has a custom logo configured. |
site.emphasis_logo_url |
String | URL to the scaled logo (250×52, supports 2x) derived from the uploaded logo image. |
site.emphasis_logo_srcset |
String | Responsive image srcset for the logo. |
site.emphasis_logo_width |
Integer | Width of the logo in pixels. |
site.emphasis_logo_height |
Integer | Height of the logo in pixels. |
site.mail_logo_url |
String | URL to the logo used in email templates. |
site.mail_logo_height |
Integer | Height of the email logo in pixels. |
site.header_foreground_color |
String | Header text/foreground color (hex). Primary intent is email templates; web inherits via CSS. |
site.header_background_color |
String | Header background color (hex). Primary intent is email templates; web inherits via CSS. |
site.header_colors |
Hash | All header color settings grouped together. |
site.mail_header_foreground_color |
String | Stub that delegates to header_foreground_color; preserved so email templates can diverge from web without forking. |
site.mail_header_background_color |
String | Stub that delegates to header_background_color; preserved so email templates can diverge from web without forking. |
site.show_navigation |
Boolean | Whether the top navigation bar is visible. |
site.show_info_bar |
Boolean | Whether to display an info/notification bar. |
site.footer_links |
Array | Array of footer navigation links. |
site.social_links |
Array | Array of social media links. |
Example:
<header style="background-color: {{ site.header_background_color }};">
{% if site.has_logo %}
<img src="{{ site.emphasis_logo_url }}" alt="{{ site.name }}">
{% endif %}
<h1>{{ site.name }}</h1>
</header>
Authentication and Login
| Variable | Type | Description |
|---|---|---|
site.login_methods |
Array | List of available login methods. |
site.has_external_login |
Boolean | Whether external SSO/SAML login is configured. |
site.show_login_fields |
Boolean | Whether traditional email/password fields are shown on login. |
site.custom_login_url |
String | URL to a custom login page (if configured). |
site.can_local_auth |
Boolean | Whether local (username/password) authentication is enabled. |
site.has_signup |
Boolean | Whether user signup is allowed. |
site.can_social_auth |
Boolean | Whether social login is available. |
site.social_auth_methods |
Array | List of available social login providers. |
site.must_sso_login |
Boolean | Whether SSO is required (local login disabled). |
site.openid_connect_providers |
Array | List of configured OpenID Connect providers. |
site.can_change_password |
Boolean | Whether users are allowed to change their password. |
site.has_sso_name |
Boolean | Whether a trusted user name was received from the SSO system for the current session. |
site.has_sso_email |
Boolean | Whether a trusted email address was received from the SSO system for the current session. |
Example:
{% if site.has_signup %}
<a href="{{ site.signup_url }}">Create an Account</a>
{% endif %}
{% if site.can_local_auth %}
<form method="post" action="/login">
<input type="email" name="email" placeholder="Email">
<input type="password" name="password" placeholder="Password">
<button type="submit">Login</button>
</form>
{% elsif site.has_external_login %}
<p>Login via your organization account.</p>
<a href="{{ site.custom_login_url }}">Sign In</a>
{% endif %}
Features and Filters
| Variable | Type | Description |
|---|---|---|
site.has_places |
Boolean | Whether places/venues are supported. |
site.has_departments |
Boolean | Whether departments are supported. |
site.has_groups |
Boolean | Whether user groups/communities are supported. |
site.event_filters |
Array | Array of available event type filters/tags. |
site.department_label |
String | Custom label for departments (default: “Department”). |
site.group_label |
String | Custom label for groups (default: “Group”). |
site.public_event_custom_fields |
Array of Custom Field | Custom fields displayed on public event creation. |
site.public_user_custom_fields |
Array of Custom Field | Custom fields displayed on user profiles. |
site.event_experiences |
Array | Array of configured event experience types. |
site.can_post_comments |
Boolean | Whether event comments are enabled. |
Example:
{% if site.has_places %}
<div class="venue-section">
<h3>Find a Venue</h3>
<!-- Show venue listing -->
</div>
{% endif %}
<div class="filters">
<h3>Event Types</h3>
{% for filter in site.event_filters %}
<label>
<input type="checkbox" name="filter_{{ filter.id }}">
{{ filter.name }}
</label>
{% endfor %}
</div>
URLs
| Variable | Type | Description |
|---|---|---|
site.root_url |
String | Root URL of the platform. |
site.login_url |
String | URL to the login page. |
site.logout_url |
String | URL to log out. |
site.calendar_url |
String | URL to the calendar view. |
site.search_url |
String | URL to the main search page. |
site.search_events_url |
String | URL to search events specifically. |
site.search_places_url |
String | URL to search places/venues. |
site.search_groups_url |
String | URL to search groups. |
site.search_departments_url |
String | URL to search departments. |
site.search_people_url |
String | URL to search users. |
site.stylesheet_url |
String | URL to the compiled CSS stylesheet. |
site.signup_url |
String | URL to the signup page. |
site.settings_url |
String | URL to user settings/profile page. |
site.digests_url |
String | URL to manage email digests. |
Example:
<nav>
<a href="{{ site.root_url }}">Home</a>
<a href="{{ site.search_url }}">Search</a>
{% if current_user %}
<a href="{{ site.settings_url }}">Settings</a>
<a href="{{ site.logout_url }}">Logout</a>
{% else %}
<a href="{{ site.login_url }}">Login</a>
{% endif %}
</nav>
Nested Objects
| Variable | Type | Description |
|---|---|---|
site.format |
Site Format | Date and time formatting patterns (localized). |
site.snippets |
Site Snippets | Platform snippet strings (labels, copy). |
site.features |
Site Features | Feature flags and configuration. |
site.theme |
Theme | Theme configuration including header navigation. |
See dedicated sections below for details on Site Format, Theme, and other nested objects.
Other Properties
| Variable | Type | Description |
|---|---|---|
site.url_input_pattern |
String | Regex pattern for validating URLs. |
site.has_unbranded_widget |
Boolean | Whether unbranded widgets are available. |
site.has_campusbird |
Boolean | Whether the Concept3D Map integration is enabled. (Property name retained for backward compatibility.) |
site.campusbird_map_id |
String | Concept3D Map identifier when the integration is enabled. |
The User Object
The User object represents the current logged-in visitor. It is available as current_user, the_user, or user depending on context.
Checking if User is Logged In
{% if current_user %}
<p>Welcome, {{ current_user.visible_name }}!</p>
{% else %}
<p><a href="{{ site.login_url }}">Please log in</a></p>
{% endif %}
Profile
| Variable | Type | Description |
|---|---|---|
user.visible_name |
String | The name displayed publicly (alias: name). Use this for displaying a user’s name. |
user.real_name |
String | The user’s full name. In practice this equals visible_name because Localist requires a name; prefer visible_name. |
user.username |
String | The user’s unique username. |
user.first_name |
String | The user’s first name. |
user.url |
String | URL to the user’s public profile. |
Content
| Variable | Type | Description |
|---|---|---|
user.description |
String | User’s public bio/description (alias: blurb). |
user.description_text |
String | Plain text version of the description. |
user.photo |
Photo | User’s profile photo object. |
user.has_profile_photo? |
Boolean | Whether the user has uploaded a profile photo. |
user.homepage |
String | URL to user’s homepage (from profile). |
user.website |
String | URL to user’s website. |
user.location |
String | User’s location as entered in profile. |
Social
| Variable | Type | Description |
|---|---|---|
user.twitter_name |
String | User’s Twitter handle. |
Friends and Activity
| Variable | Type | Description |
|---|---|---|
user.friends |
Array | Array of the user’s friends. |
user.num_friends |
Integer | Total number of friends. |
user.num_people_friends |
Integer | Number of people-only friends. |
user.places_i_go |
Array | Array of places/venues the user frequents. |
user.reviews |
Array | Array of reviews the user has written. |
user.num_places |
Integer | Number of places in the user’s list. |
Permissions
| Variable | Type | Description |
|---|---|---|
user.can_edit |
Boolean | Whether the user can edit their own profile. |
user.is_event_publisher |
Boolean | Whether the user is allowed to create events. |
user.is_verified |
Boolean | Whether the user’s account is verified. |
user.trusted? |
Boolean | Whether the user is marked as trusted. |
user.is_pending |
Boolean | Whether the user’s account is pending approval. |
user.privacy |
Object | Privacy settings object. |
Groups
| Variable | Type | Description |
|---|---|---|
user.groups |
Array | Array of groups the user belongs to. |
user.has_groups |
Boolean | Whether the user is in any groups. |
Custom Fields
| Variable | Type | Description |
|---|---|---|
user.custom_fields |
Custom Fields | Custom field values for the user. |
Profile Visibility
| Variable | Type | Description |
|---|---|---|
user.can_view_profile |
Boolean | Whether the current visitor can view this user’s profile. |
user.can_view_future_plans |
Boolean | Whether future events/attendance is visible. |
user.can_view_past_plans |
Boolean | Whether past events/attendance is visible. |
user.can_view_friends |
Boolean | Whether the friends list is visible. |
user.can_view_comments |
Boolean | Whether comments are visible. |
user.can_view_photos |
Boolean | Whether uploaded photos are visible. |
user.can_view_places |
Boolean | Whether the places list is visible. |
Actions
| Variable | Type | Description |
|---|---|---|
user.can_friend_request |
Boolean | Whether a friend request can be sent. |
user.can_receive_message |
Boolean | Whether the user can receive messages. |
URLs
| Variable | Type | Description |
|---|---|---|
user.dashboard_url |
String | URL to the user’s personal dashboard. |
user.calendar_url |
String | URL to the user’s calendar. |
user.message_center_url |
String | URL to the user’s messages. |
Example:
{% if current_user %}
<div class="user-card">
{% if current_user.has_profile_photo? %}
<img src="{{ current_user.photo.medium }}" alt="{{ current_user.visible_name }}">
{% endif %}
<h3>{{ current_user.visible_name }}</h3>
<p>{{ current_user.description }}</p>
<a href="{{ current_user.url }}">View Full Profile</a>
</div>
{% endif %}
The Site Format Object
The Site Format object contains localized date and time format patterns. These patterns are designed for use with Liquid’s date filter. The patterns respect the site’s configured locale and timezone.
Recommendation: For displayed event timestamps, prefer the {% local_time_tag %} and {% local_event_time_tag %} tags (Article 6). Those tags handle timezone offsets and browser-side conversion automatically. The unified date_time_* patterns below are preferred over the older individual date_* and time_* groups.
Access these patterns via site.format and pass them to Liquid’s date filter:
{{ event.start_date | date: site.format.date_long }}
{{ event.start_date | date: site.format.date_time_detailed }}
Date/Time Formats
| Variable | Type | Description |
|---|---|---|
site.format.date_time_detailed |
String | Full date and time with day of week. |
site.format.date_time_compact |
String | Compact date/time format. |
site.format.date_time_compact_time |
String | Compact format showing mainly time. |
site.format.date_time_long |
String | Long date/time format. |
site.format.date_time_long_year |
String | Long format with explicit year. |
Time Formats
| Variable | Type | Description |
|---|---|---|
site.format.time_long |
String | Long time format with AM/PM. |
site.format.time_long_with_zone |
String | Long time format including timezone. |
site.format.time_short |
String | Short time format (e.g., “2:30 PM”). |
site.format.time_short_with_zone |
String | Short time with timezone. |
Date Formats
| Variable | Type | Description |
|---|---|---|
site.format.date_long |
String | Long date format (e.g., “January 15, 2026”). |
site.format.date_long_year |
String | Long date with explicit year. |
site.format.date_list |
String | Format for event list dates. |
site.format.date_list_past |
String | Format for past event list dates. |
site.format.date_widget |
String | Format for calendar widget dates. |
site.format.date_widget_year |
String | Calendar widget format with year. |
site.format.date_navigation |
String | Format for date navigation headers. |
site.format.featured_date |
String | Format for featured event dates. |
site.format.date_range |
String | Format for displaying date ranges. |
Separators
| Variable | Type | Description |
|---|---|---|
site.format.date_time_separator |
String | Separator between date and time (e.g., ” at “). |
site.format.featured_date_time_separator |
String | Separator for featured events. |
site.format.list_date_time_separator |
String | Separator for event lists. |
Calendar Formats
| Variable | Type | Description |
|---|---|---|
site.format.minicalendar |
String | Format for mini calendar dates. |
site.format.minicalendar_year |
String | Mini calendar format with year. |
site.format.minicalendarjs_month |
String | JavaScript mini calendar month format. |
site.format.minicalendarjs_month_year |
String | JavaScript mini calendar month/year format. |
Newsletter Formats
| Variable | Type | Description |
|---|---|---|
site.format.bulletin_spotlight_date |
String | Format for newsletter spotlight dates. |
site.format.bulletin_event_item_date |
String | Format for newsletter event item dates. |
Example:
<h3>Upcoming Event</h3>
<p class="date">{{ event.start_date | date: site.format.date_long }}</p>
<p class="time">{{ event.start_date | date: site.format.time_long }}</p>
<!-- Display with full formatted date/time -->
<p class="datetime">
{{ event.start_date | date: site.format.date_time_detailed }}
</p>
<!-- For event lists -->
<p class="list-item">
{{ event.start_date | date: site.format.date_list }}
{{ site.format.list_date_time_separator }}
{{ event.start_date | date: site.format.time_short }}
</p>
The Theme Object
The Theme object contains theming configuration for the site, including navigation settings. It is accessed via site.theme.
| Variable | Type | Description |
|---|---|---|
site.theme.name |
String | The name of the active theme. |
site.theme.header_size |
String | Size/style of the header for the Emphasis theme (typically base or extended; values come from theme style settings). |
site.theme.header_links |
Array of Navigation Link | Array of navigation links in the header. |
Example:
<header class="header-{{ site.theme.header_size }}">
<nav>
<ul>
{% for link in site.theme.header_links %}
<li>
<a href="{{ link.url }}">{{ link.name }}</a>
{% if link.dropdown? %}
<ul class="submenu">
{% for child in link.children %}
<li><a href="{{ child.url }}">{{ child.name }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
</header>
The Navigation Link Object
The Navigation Link object represents a single link in the site’s navigation. Navigation links can be simple links or dropdowns containing child links. They are accessed via site.theme.header_links.
| Variable | Type | Description |
|---|---|---|
link.id |
Integer | Unique identifier for the link. |
link.name |
String | Display text of the link. |
link.url |
String | Target URL for the link. |
link.link_type |
String | Either "link" (single link row) or "dropdown" (parent with children). |
link.link? |
Boolean | Whether this navigation item is a single link row (as opposed to a dropdown). |
link.dropdown? |
Boolean | Whether this is a dropdown menu with children. |
link.children |
Array of Navigation Link | Array of child links (for dropdowns). |
Example:
{% for link in site.theme.header_links %}
{% if link.dropdown? %}
<div class="dropdown">
<button>{{ link.name }}</button>
<div class="dropdown-menu">
{% for child in link.children %}
<a href="{{ child.url }}">{{ child.name }}</a>
{% endfor %}
</div>
</div>
{% else %}
<a href="{{ link.url }}" class="nav-link">{{ link.name }}</a>
{% endif %}
{% endfor %}
Related Articles
This article is part of a 9-part series on Localist developer theming:
-
Introduction to Localist Developer Theming
-
Site Configuration and Global Objects
-
Events, Instances, and Related Objects
-
Places, Groups, Departments, and Channels
-
Shared Object Types
-
Custom Liquid Tags Reference
-
Custom Liquid Filters Reference
-
Template Variable Reference
-
Forms and User Management