This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

User Documentation

Everything you’ve wanted to know about using YMCA Website Services.

These documents are a combination of the former YMCA Website Services Community User Documentation and the User Manual.

If you see something missing or would like to request a new topic, please open an issue.

1 - Text Editor

Some fields in YMCA Website Services allow you to format your text with a WYSIWYG (What You See Is What You Get) editor. These editors are typically CKEditor 5 instances and provide various text formatting options.

An example of the WYSIWYG text editor.

This tool allows you the flexibility to format content however you want within a certain container or area.

Bundled with the Drupal core and the distribution, CKEditor provides a number of different buttons for styling and formatting, as well as a Source editor if you are so inclined to edit HTML directly.

CKEditor has been upgraded to version 5 as of Drupal 10 and is a significant improvement over CKEditor 4. The linking experience is much smoother, uploading images is faster, and it offers a more modern user interface.

The specific toolbar configuration may vary depending on the text format being used (e.g., Basic HTML, Full HTML). Here’s a general overview of available features:

  • Basic Formatting: Bold, Italic, Underline, Strikethrough, Superscript, Subscript, Remove Format.
  • Lists: Bulleted and numbered lists, with options for indenting/outdenting list items.
  • Links: Creating and removing hyperlinks.
  • Block Formatting: Blockquotes, Code Blocks, Headings (H2-H6).
  • Media: Embedding images (if enabled) and other media.
  • Source Editing: Direct HTML editing.
  • Other: Special characters, Tables, Horizontal Lines.

For more info on CKEditor 5, check out these resources (not all features may be implemented in the distribution):

1.1 - Adding Links

Links are simple in YMCA Website Services. Highlight your text, then click the link icon (🔗) in the editor toolbar, or use the keyboard shortcut Ctrl + K (Windows) or Cmd + K (Mac). In the pop-up window, type or paste your URL into the field and click Save.

Read more and see a demo on the CKEditor website.


Advanced Options

The link dialog’s Advanced options let you add attributes to links, including a title (tooltip), id, and CSS classes. You can also configure the link to open in a new browser window or tab.

Using Button Classes

The Button editor that existed in CKEditor 4 has changed with CKEditor 5 and Drupal 10. Content editors can now add button classes directly through the Advanced Link Options. This allows for more flexible button styling using Bootstrap classes.

To create a button:

  1. Create a regular link in a Layout Builder block or Text Editor.

    • We recommend using custom buttons primarily within larger text blocks, such as those found in the Table or Code blocks.
  2. Open the Advanced options for the link.

  3. In the CSS Classes field, add the desired button classes for Color, Size, and Style (see Button Classes). Always begin with the btn prefix.

    For example: btn btn-primary.

    The advanced link options dialog. In the “CSS Classes” field is the text “btn btn-primary”

    • Button styles displayed in the editor might not precisely match the final rendered styles on the live site.
  4. Save the block.

Button Classes

Our distribution combines the default Bootstrap button component with custom styles, as demonstrated at YMCA Lincoln, NE.

An example of button styles with five buttons using the primary, success, info, warning, and danger styles.

  • Any button’s CSS classes should begin with btn to establish the base button styles.
  • Choose a button style, such as btn-primary or btn-light.
    • Generally, button styles should not be combined.
    • Our theme may override some default Bootstrap styles.
    • The btn-primary style will adopt the selected colorway’s color. Other styles might use non-compliant colors.
  • The CSS classes field should contain at least two space-separated items, like btn btn-primary.

It is recommended to experiment with different styles and verify the button’s appearance before saving the page.

For long landing pages, anchor links (also known as “in-page” links or URI fragments) allow users to jump directly to specific sections.

The process consists of two steps:

  1. Adding an in-page anchor.
  2. Creating a link to that anchor.

Adding an Anchor

An anchor is a point on the page designated with an id attribute in its code. The easiest way to create an anchor is to add a small, hidden link at the beginning of the target section.

A screenshot of the Link popup with the Link URL and ID fields highlighted

  1. Edit the section where you want to add the anchor.
  2. Insert an empty space at the end of the section’s first line.
  3. Select only that space, and click the 🔗 button in the editor toolbar.
  4. In the Link popup, set the URL to #.
  5. Expand the Advanced options and set the ID field to a short, descriptive name containing only lowercase letters and dashes (e.g., thank-you or adding-an-anchor).
  6. Click Save in the Link popup, then save the page.

After saving, you can test the anchor by appending #anchor-id to your page URL. For example:

https://ds-docs.y.org/docs/user-documentation/text-editor/adding-links#adding-an-anchor

Entering this URL in your browser should navigate directly to the “Adding an Anchor” section.

Linking to the Anchor

To create a link to the anchor:

A screenshot showing the link popup with a relative URL and anchor in the Link URL field

  1. Create an in-page link using the Link field or the Text Editor as you normally would.
  2. Instead of using autocomplete (if available), use the “relative path” of the page—everything after the domain. For example, to link to this page, use /docs/user-documentation/text-editor/adding-links.
  3. Append the anchor ID to the path, so the complete link looks like /docs/user-documentation/text-editor/adding-links#adding-an-anchor.
  4. Save the page.

The internal link should now direct users to the specified location within the page.

Tip: If the anchor doesn’t position the section correctly, or the navigation obscures the linked section, try moving the anchor to the end of the preceding section. This ensures the target section is fully visible.

Linking Tips

  • Internal Links: Use relative paths. Omit everything before the first / after your domain (e.g., .com, .org). For ymca.org/about, use /about. This improves analytics tracking.
  • External Links: Use the complete URL, including https:// (e.g., https://example.org/about).
  • Email Links: Use the format mailto:example@example.org.

To update a link, click the linked text, then click the link icon, or use the popup options (in CKEditor 5).

To remove a link, highlight the linked text and click the unlink icon.

Improving Internal Linking with Linkit

Linkit is a community-contributed module that:

provides an autocomplete interface for internal and external linking in rich-text editors. Linkit supports nodes, users, taxonomy terms, files, comments and basic support for all types of entities that define a canonical link template.

Drupal core will soon provide link autocomplete suggestions in CKEditor, similar to Linkit. Until then, developers may want to install and configure Linkit to enhance the linking experience.

1.2 - Adding Media with CKEditor 5

Using the new unified Media editor.

Once your site is updated to use CKEditor 5 you will see a new Insert Media button that unifies the processes for embedding Images, Documents, and Videos.

The new Insert Media button in CKEditor 5.

Add or select media

  1. To get started, click Insert Media in the CKEditor toolbar (or try the button if it’s hidden). You will be presented with the Add or select media dialog.
    The Add or select media dialog
  2. Choose the media type (Image, Document, etc.) that you would like to embed from the list on the left.
  3. Add or upload your media:
    • If you are adding new media:
      • If given the option, drag and drop the item from your filesystem to the dialog, or click Select File.
      • For Video (via YouTube or Vimeo), add the video directly via Admin > Content > Media > Add Media > Video before opening the dialog.
    • If you are reusing media that exists on the site, scroll down and search for the item, then click the checkbox to select it.
  4. Choose Insert selected to embed the chosen media.

Customizing your media

Once your media has been inserted into the field, you can hover over the media to choose from a variety of options.

The embedded media options with labels for Toggle caption on, Link media, Add alt text, Choose view mode, and Set alignment

Toggle caption on

Displays a Caption area below your image. Once toggled, type your caption below the image.

Allows the media to be linked. See Adding Links for more information.

Override media image alternative text

(for Images only)

Allows you to add alternative text to the media. See WebAIM’s guidelines on Alternative Text for help choosing the right alt text for your image.

View mode

Allows you to select the size of the image. Typically you might choose “Full”, “Half”, or “Thumbnail”. Options may vary depending on site configuration.

Alignment

Choose how to align the media:

  • Break text
  • Align left and wrap text
  • Align center and break text
  • Align right and wrap text

Moving your media

Click and drag anywhere on the inserted media to relocate it in the WYSIWYG area.

Use the button at the top or bottom of the media to insert a paragraph before or after it.

Deleting your media

Click to select the media, then type Delete to remove it.

1.3 - Basic Text Formatting

Choose any of the options for your text below by clicking on the icon or performing the keyboard shortcut indicated. To format text you’ve previously typed, highlight the text and then click on the button in the editor. Many formatting options also have keyboard shortcuts.

CKEditor 5 Toolbar

The CKEditor 5 toolbar.

Demo Basic Text Formatting on CKEditor 5. or read more detail about these features.

The CKEditor 5 toolbar includes the following text formatting options:

  1. Bold

  2. Italics

  3. Underline

  4. Strikethrough

  5. Superscript

  6. Subscript

  7. Remove Format - Clears all formatting. Useful when pasting content from Word or other applications.

  8. Link - See Adding links.

  9. Bulleted list

    • Lists
    • like
    • this.
  10. Numbered list

    1. Lists
    2. like
    3. this.
  11. Block quote

  12. Insert media - See Adding media.

  13. Insert table - A feature-rich table editor.

  14. Horizontal Line

  15. Heading - Set paragraphs or heading levels—headings in your content should be ordered sequentially for the best accessibility.

  16. Code Block - For inserting multi-line code snippets. Supports syntax highlighting for various languages (Plain text, C, C#, C++, CSS, Diff, HTML, Java, JavaScript, PHP, Python, Ruby, TypeScript, XML).

  17. Source - View or edit the source code of the content. Be aware that some HTML tags may be stripped out due to Drupal’s Text Format rules. Click About text formats below the editor to learn more.

CKEditor 4 toolbar

The CKEditor 4 toolbar.

Demo Basic Text Formatting on CKEditor 4 >

  1. Bold Text - Ctrl+B (Windows) or Command (⌘)+B (Mac) or clicking/unclicking the B icon

  2. Italics - Ctrl+I (Windows) or Command (⌘)+I (Mac) or clicking/unclicking the I icon

  3. Underline - Ctrl+U (Windows) or Command (⌘)+U (Mac)or clicking/unclicking the U icon

  4. Strikethrough - Clicking/unclicking the S icon

  5. Alignment controls - Left, Center, Right, and Justify.

  6. Font Color - A small grid of swatches you can apply to your text. Overrides the default font-color

  7. Text Background color (not recommended)

  8. Font (should remain Cachet or Verdana to conform to YMCA brand standards)

  9. Font Size - A dropdown to select the size of your text. Measured in points, not pixels. Overrides the default font size for your text, including styles and format.

  10. Indent - Add one or more indents to your copy. Also, have the option to undo the indent.

  11. Format - A dropdown list of text formats you can apply to your content. Helps to create sections. Comes out-of-the-box with six heading formats.

    Most Ys will not use the “Formatted” format, which styles text like HTML code.

  12. Bulleted/Numbered lists - Click the numbered or bulleted list icon to create a list. You can create indented bullets by hitting your tab key or clicking on the indent icon

1.4 - Building Buttons

As an alternative to using the link tool, you can create buttons with YMCA Website Services using the button editor in CKEditor 4. When you click the button icon, a pop-up window will appear.

CKEditor 4 options with the button tab highlighted in green.

You can also edit a button you’ve created previously by clicking on the link within the text editor.

Edit button pop-up.

The button editor has three tabs: Info, Target, and Icons.

Button editor tabs.


Info Tab

This tab provides basic styling options for your button or link. The Style Option dropdown menu in the top-left corner allows you to style your button or output it as a plain link.

  • Link: Embeds your link text inline within a paragraph.
  • Button Styles: The appearance of the button styles depends on your website’s theme:
    • Lily: All button styles other than “Link” default to purple.
    • Rose: All options except “Default” will output a blue button. “Default” outputs a white button.
    • Carnation: The button options all output different colors.

Button Style Guide Example:

@mlefler From the YMCA of Lincoln, NE, built this guide to provide examples of possible styles for buttons. Consult your developer or designer for a style guide specific to your YMCA website.

The Size dropdown menu in the top-right corner offers four options for your button size. If you select the “Link” style option, the Size option will not affect your link’s appearance.

Button style options.
Button size options.

Add the text for your link/button in the bottom-left Text field. Enter the destination URL in the URL field on the bottom right.

  • Internal Links (links within your website): Use a relative path, starting with a / after your domain.
    • For example, to link to example.org/about, enter /about. This is called a relative path and helps with analytics tracking.
  • External Links (links to other websites): Use the full URL, including https://.
    • For example, to link to example.org/about, enter https://example.org/about.
  • Email Links: Use the mailto: prefix followed by the email address.
    • For example: mailto:example@exampleymca.org.

Learn more about absolute vs. relative links.


Target Tab

This tab allows you to control the link’s behavior when clicked. By default, all links have a “Not Set” behavior, which means the link opens in the same tab. The other options include:

  • Frame
  • Popup
  • New Window (_blank)
  • Topmost Window (_top)
  • Same Window (_self)
  • Parent Window (_parent)

» Learn more about link targets


Icons Tab

Button icon options.

You can add icons to your buttons or links using the Icons tab. Use the Left Icon and Right Icon text fields to integrate icons from the Font Awesome library.

Example: To display a right-facing chevron, type fa-chevron-right in the Right Icon text field.

Browse free Font Awesome icons at fontawesome.com

Note: The left fields reference the Bootstrap Glyphicons library. This icon library has been deprecated, and the Glyphicons fields will not function correctly in YMCA Website Services. These fields will be removed once the code is updated by the tool’s maintainer.

1.5 - Building Tables

Display contact information, pricing tables, and more using flexible, responsive tables.

Tables in CKEditor 5

The table editor has been drastically improved in CKEditor 5 and is described in detail in their documentation.

Adding a New Table

To add a table, click on the table icon in the toolbar. A grid will appear, allowing you to select the desired number of rows and columns.

Alternatively, you can use the dropdown menu to insert a table. This option might offer more advanced configurations and properties directly upon insertion.

Table Properties

To adjust the table’s overall appearance and structure, access the “Table Properties” option. This can usually be found by right-clicking on the table.

The properties dialog typically allows you to configure:

  • Dimensions: Setting the number of rows and columns.
  • Width & Height: Defining the table’s size. You can specify these in pixels or percentages. Percentages are generally recommended for responsive layouts.
  • Borders: Adjusting the border size, style, and color.
  • Background: Changing the background color of the table.
  • Alignment: Positioning the table within the content.
  • Caption: Adding a descriptive caption that appears above or below the table.
  • Summary: Providing a brief description for screen readers to enhance accessibility.

Editing the Table

To edit a table after you’ve built one, right-click on the table to bring up a contextual menu with options such as:

  • Table Properties: Opens the table properties dialog.
  • Row: Options to insert, delete, or manage rows.
  • Column: Options to insert, delete, or manage columns.
  • Cell: Options to insert, delete, merge, split, or manage individual cells.

You can also double-click inside a table cell to edit its content.

Adding Rows/Columns

To add a row or column, right-click on the table and navigate to either “Row” or “Column” in the options that appear. You can insert a row or column before or after the current row/column.

Deleting Rows/Columns

Both the row and column options allow you to delete from the right-click menu as well. Just right-click > Row or Column > Delete Row OR Delete Column.

To delete multiple rows or columns, just highlight the rows or columns you want to delete and then right-click and select the delete option.

Formatting Individual Cells/Groups of Cells

The “Cell” option from the right-click menu gives you same options as Row and Column, including inserting cells and deleting cells. You can also merge cells or split cells as you would in an excel table by selecting those options from the right-click menu.

Cell Properties

The “Cell Properties” option allows you to style your cells. Just right-click > Cell > Cell Properties.

This opens a dialogue box similar to the table properties. You can set the width/height for your cell (pixels only for height; pixels or percentages for your width) in the fields on the left.

  • Text Wrapping: Choose from a dropdown whether or not to wrap the text in a cell.

  • Alignment: Use dropdowns to set your vertical and horizontal alignments for your cells.

  • Colors: Set your border and background colors for your cells. These field support hexadecimal (#FFF) and rgba (256,256,256,1.0) color formats.

    Understanding hex colors.

  • Span: Edit your cells to “span” two or more rows or columns. For example, if you have a header cell you want to span two columns, you can set the “Columns Span” field to 2.

If you would like to apply these styling options to multiple cells, just highlight the cells you want to edit and Right-Click > Cell > Cell Properties.


Table Examples

To see an example of what a table might look like on your site, open the “Source” tab on your text editor and insert the HTML. You can then edit the content inside using the WYSIWYG text editor.

Pricing Table

An example table with Registration and Pricing information.

<h2>Registration and Pricing</h2>
<table align="left" border="1" cellpadding="5" cellspacing="1" style="width: 500px;">
	<caption>*A $25 deposit is due at the time of registration.</caption>
	<thead>
		<tr>
			<th scope="col">Pricing Period</th>
			<th scope="col">Dates</th>
			<th scope="col">Member Pricing</th>
			<th scope="col">Non-Member Pricing</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>Early Registration</td>
			<td>Feb. 1-29</td>
			<td>$120/week</td>
			<td>$135/week</td>
		</tr>
		<tr>
			<td>Regular Registration</td>
			<td>March 1-May 1</td>
			<td>$130/week</td>
			<td>$150/week</td>
		</tr>
		<tr>
			<td>Late Registration</td>
			<td>May 1-End of Summer</td>
			<td>$150/week</td>
			<td>$175/week</td>
		</tr>
	</tbody>
</table>

Camp Locations

An example table with Camp Location data.

<style>
  /* To achieve the full effect of this table, insert this style tag above the table or insert it into the CSS Editor module. */
  /* margin fix for h6 embedded inside table */
td > h6 {
  margin-bottom: 0;
}

/* Fix for mobile table -> issue seems to be related to aggregate CSS file */
.field-answer tr,
.field-answer td,
.paragraph--type--simple-content tr,
.paragraph--type--simple-content td {
  display: block !important;
  border: none;
}

.field-answer td,
.paragraph--type--simple-content td {
  padding: .75rem .31rem;
  text-align: left;
  vertical-align: middle;
}

.field-answer tr,
.paragraph--type--simple-content tr {
  padding: .625rem 0;
}

.field-answer thead,
.paragraph--type--simple-content thead {
  display: none;
}

@media (min-width: 992px) {
	.field-answer tr,
	.paragraph--type--simple-content tr {
      display: table-row !important;
  }
    .field-answer td,
	.paragraph--type--simple-content td {
      display: table-cell !important;
  }
  .field-answer thead,
  .paragraph--type--simple-content thead {
    display: table-header-group;
  }
}
       </style>
<div class="table-responsive">
<table align="left" cellpadding="10" cellspacing="10" class="w-100 table table-striped">
	<thead>
		<tr>
			<th scope="col">
			<h5>Center</h5>
			</th>
			<th scope="col">
			<h5>Address</h5>
			</th>
			<th scope="col">
			<h5>Contact</h5>
			</th>
			<th scope="col">
			<h5>Schedule (PDF)</h5>
			</th>
			<th scope="col">&nbsp;</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>
			<h5>Bellevue</h5>
			</td>
			<td>8101 TN-100<br />
			Nashville, TN 37221</td>
			<td><a href="tel:615-646-9622">615-646-9622</a></td>
			<td>
			<p><a href="/sites/default/files/2020-01/dycmp-20-dycmp-pdf-bellevue-menu.pdf"><i class="far fa-file-pdf">&nbsp;</i>Print Info</a></p>
			</td>
			<td><strong><a class="btn btn-outline-primary" href="https://operations.daxko.com/Online/4002/ProgramsV2/Search.mvc?program_id=TMP8151&amp;location_ids=B58&amp;category_ids=TAG12062">Register&nbsp;&gt;</a></strong></td>
		</tr>
		<tr>
			<td>
			<h5>Brentwood</h5>
			</td>
			<td>8207 Concord Rd.<br />
			Brentwood, TN 37027</td>
			<td><a href="tel:615-373-9622">615-373-9622</a></td>
			<td><a href="/sites/default/files/2020-01/dycmp-20-dycmp-pdf-brentwood-menu.pdf"><i class="far fa-file-pdf">&nbsp;</i>Print Info</a></td>
			<td><strong><a class="btn btn-outline-primary" href="https://operations.daxko.com/Online/4002/ProgramsV2/Search.mvc?program_id=TMP8151&amp;location_ids=B45&amp;category_ids=TAG12062">Register&nbsp;&gt;</a></strong></td>
		</tr>
		<tr>
			<td>
			<h5>Clarksville</h5>
			</td>
			<td>260 Hillcrest Dr.<br />
			Clarksville, TN 37043</td>
			<td><a href="tel:931-647-2376">931-647-2376</a></td>
			<td><a href="/sites/default/files/2020-01/dycmp-20-dycmp-pdf-clarksville-menu.pdf"><i class="far fa-file-pdf">&nbsp;</i>Print Info</a></td>
			<td><strong><a class="btn btn-outline-primary" href="https://operations.daxko.com/Online/4002/ProgramsV2/Search.mvc?program_id=TMP8151&amp;location_ids=B54&amp;category_ids=TAG12062">Register&nbsp;&gt;</a></strong></td>
		</tr>
		<tr>
			<td>
			<h5>Donelson</h5>
			</td>
			<td>3001 Lebanon Pike<br />
			Nashville, TN 37214</td>
			<td><a href="tel:615-889-2632">615-889-2632</a></td>
			<td><a href="/sites/default/files/2020-01/dycmp-20-dycmp-pdf-donelson-menu.pdf"><i class="far fa-file-pdf">&nbsp;</i>Print Info</a></td>
			<td><strong><a class="btn btn-outline-primary" href="https://operations.daxko.com/Online/4002/ProgramsV2/Search.mvc?program_id=TMP8151&amp;location_ids=B41&amp;category_ids=TAG12062">Register&nbsp;&gt;</a></strong></td>
		</tr>
		<tr>
			<td>
			<h5><a>Franklin</a></h5>
			</td>
			<td>501 S Royal Oaks Blvd.<br />
			Franklin, TN 37064</td>
			<td><a href="tel:615-591-0322">615-591-0322</a></td>
			<td><a href="/sites/default/files/2020-01/dycmp-20-dycmp-pdf-franklin-menu.pdf"><i class="far fa-file-pdf">&nbsp;</i>Print Info</a></td>
			<td><strong><a class="btn btn-outline-primary" href="https://operations.daxko.com/Online/4002/ProgramsV2/Search.mvc?program_id=TMP8151&amp;location_ids=B53&amp;category_ids=TAG12062">Register&nbsp;&gt;</a></strong></td>
		</tr>
</tbody>
</table>

1.6 - CKEditor 4: Adding and Embedding Videos

Adding/Embedding Videos with the YMCA Website Services Text Editor

YMCA Website Services allows you to upload and embed videos directly into a block of text, either from a supported external source (like YouTube or Vimeo) by pasting the video URL or from the YMCA Website Services media library.

Adding Videos from an External Source

  1. Click the Embed media button (usually a filmstrip icon) in the text editor toolbar.
  2. In the Source URL field, paste the URL of the video you want to embed.
  3. Hit Save to embed the video. The editor will automatically generate a preview of the video.

Adding Videos from the Media Library

  1. Click the Media button (if available, may look like an image icon or filmstrip) in the text editor toolbar.
  2. In the Media library popup, select the video you want to embed.
  3. (Optional) Configure the video’s display settings.
  4. Click Embed or Insert to add the video to your content.

Configuring Video Display Options

After embedding your video, you may be able to adjust additional options. Note: These options depend on the configuration of your specific YMCA Website Services instance and may not all be available.

  • Entity Name: This field displays the name of your video.

  • Display as: This setting controls the size and appearance of the video within your content area. Available options might include:

    • Full: The video will fill the width of its container.
    • Half: The video will take up half the width of its container.
    • Link: The video will be displayed as a text link to the video file.
  • Link to: This option wraps the video in a link, allowing you to specify a destination URL that users will be directed to when they click on the video.

  • Align: Use this setting to float the video to the left, right, or center of the page, allowing text to wrap around it.

  • Caption: Adds a descriptive caption below the video.

When you are satisfied with the video’s settings, click Embed.

If you want to make changes to the video you just embedded after you’ve added it, double click on the video placeholder in the editor, and the “Embed media” dialogue will appear.

1.7 - CKEditor 4: Adding Images

Adding Images with the YMCA Website Services Text Editor

YMCA Website Services allows you to upload and embed images directly into a block of text, either from your computer or from the YMCA Website Services media library.

Uploading Images

  • To add an image, click on the image button in the text editor toolbar.
  • Make sure you’re on the “Upload Images” tab.
  • Next, either drag your image into the upload area or click the button to select an image from your library.
  • Name your image, tag it, and write your alt description.
  • Hit “Save” to go through to the next step.

Adding Images from the Media Library

  • To add an image from the library, click on the image icon in the text editor toolbar.
  • Next, click on the tab that says “All Images”
  • Name your image, tag it, and write your alt description.
  • Hit “Save” to go through to the next step.

Sizing and Floating Your Images

After you save your image to the media library, a dialogue box will appear, giving you some additional options for embedding your image inline.

  • Entity Name simply refers to the name of your image, which you provided on the previous screen.
  • Display as allows you to change the size of the image display without affecting the size of the original image. By default, YMCA Website Services comes with Full, Half, and Link display modes.
    • Full means your image fills the area where it’s inserted.
    • Half means the picture is half the size of its area.
    • Link outputs the image as a simple link to the picture.
  • Link to wraps the image in a link so that when users click on it, it goes to another page.
  • Align allows you to float an image to the center or either side of the page.
  • Caption outputs a caption below the image.

When you’re ready to embed the image, just click “Embed.” You can also click the back button on the bottom to choose a different image.

If you want to make changes to the image you just embedded after you’ve added it, double click on the icon, and the “Embed media” dialogue will appear.

More on Images

1.8 -

---
title: 'CKEditor 4: Adding/Embedding Documents'
weight: 99
---






YMCA Website Services allows you to upload and embed documents directly into a block of text, either from your computer or from the YMCA Website Services media library and browser.

## Adding Documents

*   To add a document, click on the document button (usually represented by a paperclip or document icon) in the text editor toolbar.
*   Make sure you're on the *"Add Document"* or *"Upload"* tab.
*   Next, name your document.
*   Paste the document URL into the appropriate field, or upload the document from your computer.
*   Hit "Save" to proceed.

## Adding Documents from the Media Library

*   To add a document from the media library, click on the document icon in the text editor toolbar.
*   Next, click on the tab that says *"Media Library"* or *"All Documents"*.
*   Select the desired document from the library.
*   Name your document, tag it, and write your alt description as needed.
*   Hit "Save" to proceed.

## Sizing and Floating Your Document

After you save your document to the media library, a dialogue box will appear, giving you some additional options for embedding it inline. These options may vary depending on your specific configuration. Common options include:

*   **Entity Name:** This is simply the name of your document, which you provided earlier.
*   **Display as:** This option allows you to change the size or format of the document display without affecting the original document. By default, YMCA Website Services may offer *Full, Half, and Link* display modes:
    *   **Full:** Your document fills the available area where it's inserted.
    *   **Half:** The document is displayed at half the size of its available area.
    *   **Link:** The document is output as a simple text link to the document file.
*   **Link to:**  This option wraps the document (or the link, if "Display as Link" is selected) in a hyperlink. When users click on the document, they will be directed to the specified URL.
*   **Align:** This allows you to float the document to the left, center, or right of the page.
*   **Caption:** This option adds a descriptive caption below the embedded document or link.

When you're ready to embed the document, click "Embed." You can also click the back button to choose a different document.

> *If you want to make changes to the document you just embedded after you've added it, double click on the icon, and the "Embed media" dialogue will appear. Note that the exact wording of the dialogue box may vary.*

2 - Page/Content Types

YMCA Website Services features many different kinds of pages, or content types. Choosing the right content type will ensure you collect the right information and allow you the flexibility to create layouts.

A content type is a reusable container for content, defining its structure and purpose. Utilizing content types supports consistent site architecture and content presentation, helping users efficiently find what they need. In Drupal terminology, content types are entity sub-types for the “Content item” entity type, allowing each content type to have its own fields and display settings.

There are two main categories of Content Types in the YMCA Website Services distribution:

  • Standalone types: These content types are designed to be displayed directly to users as individual pages. Examples include Landing Pages and Branches. They can also be displayed in views or other groupings.
  • Helper types: These content types are not typically displayed on their own. Instead, they are used to support applications or to display aggregated information, such as within the Activity Finder or Membership Calculator.

Most sites utilize a combination of these content types. The appropriate content type depends on how the content will be used and displayed. While Landing Pages often constitute the majority of a site’s content, other types like Events, Articles, and Branches may be necessary to achieve specific site goals.

Choosing the Right Content Type

Before building your site, identify the types of content you’ll be creating. A content audit can help you understand your existing content and identify what new content needs to be developed.

Landing Pages are often the starting point for site construction due to their flexibility. They can accommodate a wide range of content.

Location pages, such as Branches and Camps, are also important for promoting individual locations.

Supporting content types like Events and Articles provide timely information to users.

Standalone Content Types

These content types are designed for use with Layout Builder or are compatible with Layout Builder when the supporting module is enabled:

These content types use the legacy Paragraphs page builder:

Helper Content Types

These content types are not displayed on their own but are used in supporting applications:

2.1 - Article (Layout Builder)

The Article content type combines news-related content into a single content type, offering flexible layout options with Layout Builder.

The Article content type allows content editors to create various news-related content such as news items, blog posts, and press releases using a single content type. Editors can customize the layout and display of these articles based on their type, enabling them to show news items on a dedicated news page and blog posts on a blog page.

The Article content type also allows content editors to incorporate Layout Builder components directly within the page, providing enhanced control over content presentation.

Designs: Mobile | Desktop

<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
  <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/FBtQmfy9C7Q?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
</div>

Creating an Article

  1. Go to Admin > Content > Add Content > Article (Layout Builder).

  2. Fill in the content fields:

    • Title (required): The title of the article.
    • Subtitle: An optional subtitle to provide additional context.
    • Type: Select “Blog”, “News”, or “Press Release”. Each type uses the same fields but enables administrators to group articles for display on different pages (e.g., Blog types on a Blog page, Press Releases on a Press Release page).
    • Header image: This image displays on the Article page and in listing views.
    • Tags: References terms from the Tags vocabulary. See Taxonomy for more information. Tags provide a way to categorize and organize content.
    • Body (required): Add the main text of the article using the WYSIWYG editor. The WYSIWYG editor allows for rich text formatting.
    • Locations: If the Article relates to a specific Branch, select it here. This will display the Article in listings on the Branch page.
    • Published Date (required): Defaults to today’s date. This date displays on the Article page and is used for sorting and in listings.

Customizing Articles

After creating an Article, you can customize its layout using Layout Builder. The following components are designed to work specifically with the Article content type:

  • Related Articles: Displays a list of related articles based on predefined criteria.

2.2 - Event (Layout Builder)

Updated Event content type that allows for Layout Builder components to be included within an event page.

Designs:

Creating an Event

Go to Admin > Content > Add Content > Event (Layout Builder)

Fill in the content fields:

  • Title (required)
  • Subtitle
  • Location info: Select the event location either by choosing from your list of locations or adding the address manually. You must either fill out the Event location OR Address fields.
    • Event Location: A list of Branch, Camp, and Facilities. Select any number of these.
    • Address: If your event does not happen at an existing location, you can add the address directly. Any content in this field will cause the Event Location to be overridden. To clear out the field, reset Country to “- None -”.
    • Directions: By default, a link with directions is auto-generated using the address field of either the Event Location or Address. Use this field to substitute your own directions link. You can substitute your own directions link in this field if desired.
  • Event Date(s): Add a start and end date and time for the event. If the event does not have an end time, choose the start time for both the start and end.
    • As of March 2023, this field supports recurring events.

    • To create a recurring event:

      • Set the Repeats option.
      • Choose the Number of recurrences and when to End.
      • Expand the Advanced options to select specific days.

      The event recurrence configuration.

    • Once you save the event, Manage Instance will allow you to customize or remove individual instances.

    • To select multiple dates for your event that do not fit a regular rule, use Add another item below the date selector.

  • Header image: This image is displayed on the Event page and in listing views.
  • Tags: References terms in the Tags vocabulary. See Taxonomy for more information on tags.
  • Body (required): Add text with the WYSIWYG editor
  • Locations: If the event relates to a Branch then select it here so that the event shows in listings on the Branch page.

Customizing Events

Once you create an Event you can customize the layout with Layout Builder. These components are built specifically to work with the Event content type:

2.3 - Activity, Class, and Session

Format data from third parties (e.g. Daxko, Personify, or ActiveNet), for display in Activity Finder.

Content editors rarely, if ever, enter information directly into these content types on a day-to-day basis. However, it is important to know how they work and how they relate to manually-entered content.

Example - Swim Lessons

  • Swimming and Aquatics (Program Page, manually entered)
  • Swim Lessons (Program Subcategory Page, manually entered)
  • Youth Group Swim Lessons (Activity, mapped from CRM or custom automation)
  • Stage 3 (Class, mapped from CRM)
  • Monday/Wednesday/Friday 9:30-10 a.m. at Franklin Family YMCA (Session, mapped from CRM)

Note: This is an example only. Depending on your CRM and any customizations you make, your setup for Swim Lessons or any program may look different that the example listed above.

Activity

Often used as the top-level filter in Activity Finder and Repeat Schedules, Activity consists of the following fields:

  • Title: The name of the Activity (and the filter in Activity Finder).
  • Program subcategory: An entity reference to or tag for a Program Subcategory. Maps the Activity to higher levels of user-entered content.
  • Description: A description for the Activity. Usually pulled from a description in a CRM through an API.

Class

A narrower selection of Program Offerings. Not an individual instance, but a smaller selection of instances.

Classes have three fields that map into Activity Finder and Repeat Schedules: a description, a title, and entity reference/tag to an Activity.

Class also contains Areas for content editors to add paragraphs; however, depending on how your CRM and the number of programs your Y runs, it may not be practical to use these fields.

Session

An individual program offering. Contains fields for pricing, session date/time, instructor, ages, and a registration link. These are the individual rows/instances in Repeat Schedules and Activity Finder.

2.4 - Alert

Displays timely information in a thin banner across your site, just below the header or above the footer.

An alert

Unlike most content types in YMCA Website Services, you don’t use Alert to create pages. Instead, Alerts display as a rendered entity or a section of content on other pages.

Alerts also don’t use Paragraphs or Layout Builder. By design, the layout of Alerts is rigid; however, the text editor and the color options listed below allow content editors some flexibility.

When Should You Use an Alert?

  • Timely updates for centers, such as when your hours change or facilities close.
  • Marketing promotions, such as for membership campaigns or even promotions.

How to Use an Alert

Go to Admin > Content > Add Content > Alert (/node/add/alert).

  • Title: Displays as the headline for your alert.
  • Description: The main body of your alert. Sentences should be short and minimally styled in this section. Uses the Text Editor.
  • Alert Style: Choose from the Classic Alert style which enables the Color Fields below or a set of styles that are pre-configured for you to match the YMCA colorways.
    • Urgent options use a colored background with dark or light text.
    • Info options use a grey background with colored text.
      Screenshot depicting 8 different style options.
  • Color Fields: These three dropdown fields control different aspects of color in your alert. All three dropdowns reference the color vocabulary.
    • Background Color: The color of your alert.
    • Text Color: Stick to using either black or white for accessibility.
    • Icon Color: Changes the appearance of the icon to the left of the title.
  • Link: Adds a button with a call to action to the alert on the right. The button color defaults to black.
  • Placement: Choose “Header” to show your alert above your main content or “Footer” to show below your main content.

The alert admin fields

Setting Visibility

  • Visibility pages: This is where you control where the alert displays on your site. In the large text field, you write the relative path of the pages where you want this to appear or not appear. Enter each path on a new line. Each path should start with a slash, /.

    You also have the option to use an asterisk character * as a wildcard so you don’t have to enter a large number of relative paths. For example, if you wanted to add an alert to a /health-and-fitness section, you would enter /health-and-fitness* in the text area.

    The alert visibility dialog

    What is a relative path?

    A relative path is the part of your URL after your domain name.

    At https://example.com/community, for example, the domain name is example.com, while the relative path is /community.

    Using the Alert visibility state radio buttons at the bottom, you can either show or hide your alert from the page paths listed in the text area above.

  • Location: This field provides additional flexibility for controlling where the Alert will display. Selecting a Location from this field will display the alert on the Location page and any related page (blog posts, news, landing pages) that has the corresponding Location selected.

Rearranging Alerts

Alerts can be rearranged to control the order in which they display if multiple appear on a page. The Alerts Rearrange page can be accessed via its link on the Content page or at Admin > Content > Alerts Rearrange (/admin/content/alerts-rearrange). The link might not appear in the Admin menu prior to version 10.3.1.

A screenshot of the Rearrange Alerts display with labels corresponding to the below steps

To rearrange alerts:

  • Go to the Alerts Rearrange page
  • Rearrange alerts with the drag handle () or the “Show row weights” option.
  • Save order when finished.

Alert Visibility Examples

Figuring out exactly how to show an alert on the right pages can be a challenge. The Visibility pages, Alert visibility state, and Location selectors work together to control where an alert is displayed. Here are some tips on how to get just what you want.

To show an alert only on a single Location page:

  • Visibility pages: add the path to the Location, like /locations/downtown-ymca
  • Alert visibility state: “Show for the listed pages”
  • Location: “None”

To show an alert on a location and any related pages:

  • Visibility pages: Leave this field blank.
  • Alert visibility state: Select “Show for the listed pages.”
  • Location: select the Location, or select more than one using Shift or Command/Ctrl.

“Related pages” in this case means any page with a specific location selected in its Location field.

On Groups of Pages

The wildcard * can be used to specify any page in a section of the site.

To show an alert on every page on the site:

  • Visibility pages: *
  • Alert visibility state: “Show for the listed pages”
  • Location: “None”

To show an alert on every swimming page:

  • Visibility pages: /programs/swimming*
  • Alert visibility state: “Show for the listed pages”
  • Location: “None”

The position of the * wildcard is important. Consider /programs/swimming* versus /programs/swimming/*:

Show for /programs/swimming*:

  • /programs/swimming
  • /programs/swimming/drop-in
  • /programs/swimming/swim-lessons

Show for /programs/swimming/*:

  • /programs/swimming
  • /programs/swimming/drop-in
  • /programs/swimming/swim-lessons

On the Home Page

You can use / OR <front> to show an alert on the home page. <front> is a special token and should always be listed on its own line.

  • Visibility pages: / OR <front>
  • Alert visibility state: “Show for the listed pages”
  • Location: “None”

With Exceptions

Sometimes you want to show an alert on all pages except a few. Maybe you have an alert for a fundraising campaign but don’t want to show it on the “Join” or the “Give” page. The Hide for the listed pages option can help in this case.

To show an alert on all pages except “Join” and “Give”:

  • Visibility pages:

    /join
    /give
    
  • Alert visibility state: “Hide for the listed pages”

  • Location: “None”

2.5 - Blog Post

Timely content, articles, and news pieces tagged with one or more physical locations.

Note: This Content Type is similar to the News Post content type.

An example of a blog post page

Blog posts in YMCA Website Services allow you the flexibility to create simple posts using only the text editor or more robust layouts with paragraphs. Blog posts utilize a two-column layout, with the content area on the left and the sidebar area on the right.

When Should I Use a Blog Post?

When you decide to use a blog post depends greatly on your Association’s content strategy. However, blog posts are designed for publishing timely content and listing them throughout your site. Examples of blog posts may include:

  • Member Stories
  • Workouts and Recipes
  • Updates about a Center/Branch
  • Promotions and Contests
  • Press Releases

How Do I Use a Blog Post?

There are three fields that appear above the accordion tabs:

  • Title: The name of the blog post. Displays in the header area of your blog post and in the cards that display in a list of blogs.

  • Locations: An option select field to tag a post with one or more locations (Camp or Branch). Use Ctrl+Click (Windows) or Cmd⌘+Click (Mac) to select multiple locations.

    Each time you create a new Branch Page or Camp Page, it automatically populates into the locations field.

  • Category: An entity reference to the Blog Category vocabulary. Type in the name of the category and select from the options that appear, or create a new category/term by typing in a new one.

    Selecting a category in the blog post admin

Style

This dropdown changes the style of the post’s card when it appears in a listing format. This dropdown does not affect any layouts on the page itself.

The blog post style dropdown

Story Card

CarnationLily
A blog story card in Carnation
A blog story card in Lily

Photo Card

CarnationLily
A blog photo card in Carnation
A blog photo card in Lily

News Card

A blog news card in Carnation

Color Card

When choosing the Color Card style, you are presented with two styling options in dropdowns. Both are entity references to the Color vocabulary:

  • Background color: Changes the color of the card’s background.
  • Text color: Changes the color of the text. It’s recommended you only use white or black for optimal readability.
CarnationLily
A blog color card in Carnation
A blog color card in Lily

Content Area

The content area is the main body of your page. You can use the default fields or build a more robust layout using paragraphs. The content area displays on the left side of the page.

The sidebar area allows you to embed paragraphs below a section that links to the centers tagged in the post, the categories, and a Related Content field. The Related Content field allows you to promote other Blog Posts by tagging them with the autocomplete widget. The sidebar area displays on the right side of the page.

Layouts

Blog posts utilize a two-column layout. The Content Area displays on the left, while the Sidebar Area displays on the right. You can build layouts within these areas using paragraphs.

2.6 - Branch

One of the first places members go when they visit a Y website is to their local Y’s page.

Branch pages contain multiple data fields that work together to help members find the right location, hours, and amenities that fit their needs.

Designs:

Creating a Branch

Go to Admin > Content > Add Content > Branch

Fill in the content fields:

General Info

  • Title (required): This is the name of your branch which will display as your page title and the title on the location card. If your branch has a longer formal name we recommend using the shorter, more common name for readability.
  • Neighborhood: An optional reference to specify which neighborhood your Y is located in. Start typing and select from the list. To add a new neighborhood, add it to the “Area” vocabulary under Structure > Taxonomy (see Taxonomy).
  • Coming Soon: This flag indicates a newly opening branch on the Locations page.
    Screenshot of a page showing “Downtown YMCA” with a “Coming Soon” flag.
  • Temporary URL: Overrides the “Branch info” link on the Locations page, allowing you to link to a different internal or external page.

Contact Info

  • Address: The physical address of your location. Be sure to include all address fields.

  • Branch Coordinates (required): This field pins your branch on the locations map.

    To get your branch's coordinates:

    ( with Google Maps)

    • Search for your Y location
    • Right-click the location on the map.
      Screenshot of Google Maps showing the right-click menu with the latitude/longitude item selected.
    • To copy the coordinates, left-click on the latitude and longitude.
    • Paste the lat, long into one of the fields, then cut and paste to separate them.
      Screenshot of the Drupal Branch admin screen with the latitude and longitude separated into different fields.
  • Phone (required): The main phone line for your branch. Will be displayed as it is entered and linked to allow mobile users to tap to call.

  • Fax: Optional.

  • Email: We recommend you use a main contact email, such as info@example.com, rather than the email for an individual staff member.

  • Directions: By default, a link with directions is auto-generated using the Address field. Use this field to substitute your own directions link.

Branch Hours

Add the main hours for your facility. These are displayed in the header and on the Locations page.

  • Custom hours label: The title that is displayed in the “All hours” dropdown. Clearing this field will hide the section from the Branch page.
  • Mon, Tue, …: Add the hours for each day of the current week.
    • Most formatting like <open time> <separator> <end time> should work, but we recommend something like 7am-5pm
    • Leaving a day empty will show the hours as “Closed” but you can enter any other text as well, like “Wednesday: ‘Temporarily closed’”
  • Branch Holiday Hours: Add special hours for any upcoming holidays. These will be displayed on the site when the holiday is less than two weeks away. Add as many holiday entries as you like.
    • Holiday Title: The displayed title of the holiday.
    • Holiday Hours: The displayed hours for the holiday.
    • Date: The date of the holiday. When this day is in the current week …
  • More Hours Link: A link to show additional location hours information, like another page or a PDF.

Screenshot of the Branch Hours popup in the Branch Header

Header Area

This section is not displayed when “Use Layout Builder” is selected.

There is no image field for the Branch content type, so you will need to add one of the following paragraphs to add an image and title at the top of your page:

Content Area

This section is not displayed when “Use Layout Builder” is selected.

The Branch Content Type only has one layout option—one column—and no description field. Paragraphs will form the body of the page.

The following paragraph types integrate directly with Branch pages:

Bottom Area

This section is not displayed when “Use Layout Builder” is selected.

Use the bottom area for anchoring elements on your page. The following paragraphs are great for this area:

Branch Amenities

  • Branch Amenities
  • Closed Amenities

Type in and select which amenities are available or not available at your branch using the autocomplete field.

Screenshot showing the Branch amenities field with autocomplete dropdown.

If you embed a Branch Amenities with the Icons paragraph or Branch Amenities block on your page, the amenities will be displayed in your content. The Amenities will also serve as filters for branches on your locations page.

Screenshot showing the branch amenities block with open emenities and closed amenities labeled.

If you don’t see an option available or would like to rename a branch amenity, go to Structure > Taxonomy > Amenities. See Taxonomy for more info.

The Branch Menu is a single-level sub-menu that displays within a branch page (and sub-pages) that allows users to drill down to additional content specific to that branch. The Branch Menu always shows “Branch Home” as its first link.

  • Menu links: A list of menu links to be displayed in the menu. Allows unlimited items but we recommend a maximum of 6-8 depending on the Link text length.

Screenshot of the branch menu block.

Customizing with Layout Builder

Beginning in Website Services 9.2.13 content editors have the option of customizing the Branch page with Layout Builder. You can migrate from using Paragraphs to using Layout Builder on a branch-by-branch basis to ease the transition.

The Use Layout Builder checkbox on the Branch edit page non-destructively switches between Paragraphs and Layout Builder. If the checkbox does not appear, ensure the Y Branch (y_branch) module is installed at Admin > Extend (/admin/modules).

Layout Builder Blocks

Branch pages have several specialized components that utilize the structured data (fields) that already exist on your branch page in newly designed Layout Builder Blocks.

In addition to using many of the standard Layout Builder components, Branch pages also use several components that display the fields described above.

These blocks are available via All system blocks in Layout Builder:

  • Branch Hours: Combines the branch title, contact information, hours, and more into a dynamic page header.
  • Branch Amenities: Displays open and closed amenities in an easy-to-read grid.
  • Branch Menu: Displays the Branch Menu links.
    • Designs:
    • Can be placed on a Landing Page to show the Branch Menu for a specific branch. Choose a branch in the Location field. This can be useful if you are creating sub-pages for a branch.
      • Added in the December 2024 release.

One additional component is available that requires additional information:

Designs:

This component allows you to place up to 6 social media links on a branch page.

  • Add the Branch Social Links block to the pre-configured Social links section of your page using the standard process.
  • Add up to 6 links in the Links field. Icons for each social media platform will be populated automatically.
    • Currently supported platforms include Facebook, Instagram, LinkedIn, Twitter, and YouTube. Request a new platform if you need.
  • After adding or updating the block, be sure to save and publish your branch.

Home Branch Selector

This feature allows users to select a single branch location as their home / preferred branch so that they can easily access branch-specific content across the site.

A screenshot of the Home Branch selector with a label and an arrow pointing to a downward-pointing chevron with the label “Link to bring back the popup”

The Home Branch selector popup will appear to users who arrive at the site and:

  • are new to the site,
  • have not selected a Home Branch, and
  • have not checked the “Do not ask me again” checkbox in the modal.

Users can select a Home Branch by:

  • choosing a branch from the modal popup,
  • using the “Set Preferred Branch” link in the Utility menu,
  • choosing “My preferred branch” on a Branch page or in Location Finder.

Users can remove a Home Branch by:

  • summoning the popup with the down arrow next to the set branch in the Utility menu, or
  • unchecking “My preferred branch” on a Branch page or in Location Finder.

Selecting a home branch will:

  • add a link to the Branch’s home page to the user’s utility menu,
  • show the Branch as the Home Branch on Branch Pages and Location Finder, and
  • populate the Branch options in other sections of the site like the Membership Apps and Schedules (coming soon).

Disabling the Home Branch Selector

If you want to completely remove the Home Branch selector from your site you will need to disable it via the command line. DO NOT disable the module via the admin UI as this will result in an error.

drush pmu ws_home_branch openy_home_branch

Migrating to Layout Builder

Migrating Branches to Layout Builder involves recreating some content on the page. The process is similar to building a new Landing Page with Layout Builder but with a lot of the work done for you!

Once you are ready to migrate a Branch:

  1. Either clone the page or open it in a separate tab so that it’s easier to compare content.
  2. Prepare the Branch for Layout Builder:
    • Edit the Branch,
    • Add links in the Menu section if you’d like,
    • click Use Layout Builder,
    • if you’d like, uncheck Published while you migrate to hide the page temporarily, then
    • Save.
      Screenshot of the Branch edit screen.
  3. Your Branch will now display a set of default blocks: Hours (and header), Menu, Social Links, and Amenities.
  4. From here, you can use Layout Builder to move your old content from Paragraphs into Blocks. Review the full list of designs or the list of components if you need help deciding how to place things. Your old content will still be available to reference in the Edit tab in the old Header/Content/Footer sections.
  5. When you’re finished, Save the layout and Publish the Branch!

2.7 - Camp

Physical locations where outdoor camp programming takes place.

The Camp content type is used for physical locations where outdoor camp programming takes place.

While YMCA Branches may offer some form of summer day camp, they differ from facilities that primarily host programs related to outdoor camps. The Camp content type also enables editors to create sub-sites or “microsites” using a separate menu structure.

Designs:

When Should I Use Camp?

If you are an independent YMCA camp or you’re an Association with one or more locations dedicated to outdoor camp, the Camp Content Type serves well as a landing page for those locations. Camp teasers will also appear on the Location Finder page.

What about Branch Day Camps?

There are several considerations for Branches that host Day Camps in the center:

  • The Branch content type is intended to be the home page for branches.
  • Adding a Branch listing and a Camp listing for the same physical location creates duplicate listings for your center and could have search implications.
  • Camp pages don’t have fields for operating hours or amenities.
  • Branch Day Camps, unlike outdoor camps, tend to be listed in the same CRM as other branch-based programs and therefore could integrate into Activity Finder, provided the CRM’s compatibility.

Recommended Content Types for Branch Day Camps

Creating a Camp

General Info

  • Title (required): This is the name of your camp, which will display as your page title and the title in the location card.

    • There is no separate field for the full name of your facility (e.g., Joe C. Davis YMCA Outdoor Center) versus the common name (Camp Widjiwagan). The best practice would be to use the shorter, more common name for readability.
  • Menu Links (required): Add in the URL or name of the content you want to link your Camp Menu to (you must use the Camp Menu paragraph for this to work). This field is not used with Layout Builder.

    The camp menu links field

    Read more about Camp Menu ⇒

Contact Info

  • Address (required): The physical address of your location. Be sure to include all address fields.
  • Camp coordinates (required): This field pins your camp on the locations map.
    • See Branch for details on how to find your camp coordinates.
  • Phone (required): The main phone line for your camp. Will be displayed as it is entered and linked to allow mobile users to tap to call.
  • Fax: Optional.
  • Email: We recommend you use a main contact email, such as info@example.com, rather than the email for an individual staff member.
  • Directions: By default, a link with directions is auto-generated using the Address field. Use this field to substitute your own directions link. You can use this field to substitute your own directions link.

Header Area

There is no image field for the Camp content type, so you will need to add one of the following paragraphs to add an image and title at the top of your page:

Below your header image, add in a Camp Menu paragraph for a secondary, full-width navigation.

Content Area

The Camp Content Type only has one layout option—one column—and no description field. Add in almost any paragraph you want into the body of you page.

The following paragraph types integrate directly with Camp:

You can also associate blogs with your camp.

Bottom Area

Use the bottom area for anchoring elements on your page. The following paragraphs are great for this area:

Customizing with Layout Builder

Beginning in Website Services 9.3, content editors have the option of customizing the Camp page with Layout Builder. You can migrate from using Paragraphs to using Layout Builder on a camp-by-camp basis to ease the transition.

The Use Layout Builder checkbox on the Camp edit page non-destructively switches between Paragraphs and Layout Builder. If the checkbox does not appear, ensure the Y Camp (y_camp) module is installed at Admin > Extend (/admin/modules).

Camp Menus

The Camp page is often used as a landing page for a microsite with additional information, such as schedules, packing lists, and other camp-specific pages.

We have two camp-specific menus that help build this structure:

  • Camp Menus: Allow you to provide a two-level menu in the header of each Camp page and subpage.
    A screenshot of the Camp Menu design
  • Camp Quick Links: Provide a single-level utility menu for additional camp information.
    A screenshot of the Camp Quick Links design

After enabling Use Layout Builder for your Camp page, navigate to the Layout tab. You need to configure the Camp Quick Links in two blocks for them to properly display on desktop and tablet/mobile devices.

Configure the first block
  1. In the Configure Camp Header section, you will see placeholders for each of the menu blocks that say Please select the menu to display in this Camp Quick Links block.

    The camp page admin with menu placeholders

  2. Using the on the first Camp Quick Links block, click Configure.

    The camp menu block edit menu.

  3. In this menu, you can create a new menu or add an existing one that you’ve made in the Menus administration (/admin/structure/menu). To create a new menu, fill in these fields:

    • Title (required): The title of the Quick Links menu to be displayed in the Utility Navigation.

    • Display title: Must be checked in order for the Quick links to display properly.

    • Click Add new menu, then set up the new menu:

      • Menu Title (required): The administrative name of the menu. Like Camp Coleman Quick Links.
      • Menu Name (required): The machine name of the menu, using only lowercase letters, numbers, and hyphens. Like camp-coleman-quick-links.
      • Administrative summary: Is optional and only used in the menu admin.

      The camp quick links fields admin

    • Click Create menu, then click Edit links to add items to the menu.

    • In the Edit links popup you can add and reorder links in the menu.

      The “Edit links” dialog in the Camp admin
      The “Add new link” dialog"

      • For each new link:
        • Click Add new link
        • Menu link title is the text displayed.
        • Link is the internal page or external url that the link points to.
        • Enabled allows you to temporarily hide a menu item.
        • Show as expanded should be checked for any parent items. There is no harm in always checking this.
        • Other fields can be ignored.
        • Click Save when you are finished.
      • Use the drag handles to rearrange or nest menu items.
        • Note: Parent items must have Show as expanded checked in order to display child items.
    • When you are finished adding and rearranging menu links, click Save.

  4. Finally, save all the changes with Update.

Configure the second block
  1. Find the second place that says Please select the menu to display in this Camp Quick Links block in the Header Section.

  2. Using the on this block, click Configure.

  3. As before, configure the block:

    • Add the same Title as the first block.

    • Ensure Display title is checked.

    • Click Add existing menu, then start typing the name of the menu you created in the previous block and select it in the autocomplete dropdown.

      A screenshot displaying the above steps.

    • Click Add menu to save the selection.

  4. Once the existing menu has been added, you will see the Edit, Remove, and Edit Links options. Once you see those, you can click Update to save these changes.

    A screenshot showing the completed “Add existing menu” dialog

Once you have completed the process you will see your Quick Links menu displayed in two sections of the Header. This will ensure that the menu is displayed properly across all displays.

camp–quick-links-success.png

Camp Menu

  1. Find the final placeholder that says ... Camp Menu ...
  2. Click Configure the block.
  3. Create a new menu or choose an existing one using the steps above.
  4. Click Update, then Save Layout at the top of the page.
  5. Now your Camp page is populated with all of its menus!

A screenshot showing the expanded Camp Quick Links menu and Camp Menu

Camp Subpages

The Camp Subpage (formerly “Camp Landing Page”) content type allows you to create internal pages for your camp section or microsite. Once you’ve created the parent Camp page, you are ready to create additional Camp Subpage pages.

  1. Go to Content > Add Content > Camp Subpage.

  2. Set the Title.

  3. In the Camp field, begin typing the name of the Camp page that will be the parent page, then select the item from the autocomplete dropdown.

    The Camp Subpage admin fields

  4. Click Save and edit layout.

  5. You will now see the Layout Builder editor with the menus from your Camp page pre-populated in the layout.

    The Camp Subpage layout builder interface

  6. Add additional content using Layout Builder, then click Save layout.

Note: The menu references on Camp Subpages are copied to the header when the page is created. Any updates to those menus (new items, reordering) will be reflected on all subpages. However, later changes to the blocks (removing the menu altogether, changing the linked menu) will need to be made on both Camp and Camp Subpage pages separately.

Camp Subpages are not automatically added to the Camp Menu of their corresponding Camp. Be sure to add the newly created Camp Subpage to the Camp Menu so that it’s properly linked.

Layout Builder Blocks

Camp pages have a number of specialized components that utilize the structured data (fields) that already exist on your camp page in newly designed Layout Builder Blocks.

In addition to using many of the standard Layout Builder components, Camp pages also use a number of components that display fields described above.

Camp Info Block

The Camp Info Block is automatically added to the Body section of each Camp page. It displays content from the Contact Info section. It can be rearranged on the page but is not otherwise configurable.

Camp Header Layout

When you create a new Camp page or switch an existing one to use Layout Builder, it will come with a pre-set Camp Header Section, which enables the configuration steps above. If you find some of those blocks are missing, you can restore them manually.

To completely start over, use the x to the left of Configure Camp Header to delete the section. Add a new Section and choose the WS Camp Header layout. Then, add the following blocks by selecting Add block in the corresponding region.

A screenshot of the Camp Header Layout Builder configuration with labels for the Utility menu at the top and the Main Menu in the center

The default configuration for a the Camp Header block should be:

  • Utility Menu

    • Left
      • All system blocks > Camp blocks > Camp Back Link
    • Right
      • Create custom block > Camp Quick Links
      • All system blocks > OpenY > Open Y Google Translate (optional)
  • Main Menu

    • Left
      • All system blocks > Common blocks > Site Logo Block
    • Right
      • Create custom block > Camp menu
      • Create custom block > Camp quick links

URL Pattern

The Camp content type uses the following URL pattern: /camps/[node:title]

2.8 - Facility

Locations that house YMCA programming outside of a Branch.

The Facility content type is used for locations where programming might take place that are not a full YMCA Branch. This might be a childcare facility, a shared-use space, or an office.

Designs:

Facilities share their design with the Branch content type.

Creating a Facility

General info

  • Title (required): This is the name of your facility, which will display as your page title and the title in the location card.
  • Neighborhood: If it is used, select an item from the Neighborhood Taxonomy.
  • Type: Choose from a predefined list of types.
    A screenshot listing the preset Type options
  • Facility Branch: Using autocomplete, select the Branch that this facility is associated with. This establishes a relationship between the facility and its parent branch.

Contact Info

  • Address: The physical address of your location. Be sure to include all address fields.
    • If you do not set an address (or clear the address by resetting Country to “- None -”) then the facility will display the address of its associated Branch. (Added in version 10.3.1, December 2023.)
  • Facility coordinates (required): This field pins your facility on the locations map.
    • See Branch for details on how to find your facility coordinates. These coordinates are used by the location finder and map views.
  • Phone (required): The main phone line for your facility. Will be displayed as it is entered and linked to allow mobile users to tap to call.
  • Fax: Optional.
  • Email: We recommend you use a main contact email, such as info@example.com, rather than the email for an individual staff member.
  • Directions: By default, a link with directions is auto-generated using the Address field. Use this field to substitute your own directions link.
  • Facility Hours: Set the hours for the Facility. (Added in version 10.3.1, December 2023.)
    • This field follows the same rules as Address - if it is empty, the associated Branch hours will be displayed.
    • See Branch Hours for details on how to set the Facility Hours.

For aside pieces of content, such as side navigations, promotional cards, and content related to the main part of your page. Use the Paragraphs described below to add content to this area only if “Use Layout Builder” is not selected.

Content

These sections are not displayed when “Use Layout Builder” is selected.

Use Paragraphs to add content to your Facility page.

  • Sidebar Area
  • Content Area

Customizing with Layout Builder

Beginning in Website Services 10.3.0 content editors have the option of customizing the Facility page with Layout Builder. You can migrate from using Paragraphs to using Layout Builder on a facility-by-facility basis in order to ease the transition.

The Use Layout Builder checkbox on the Facility edit page non-destructively switches between Paragraphs and Layout Builder. If the checkbox does not appear, ensure the Y Facility (y_facility) module is installed at Admin > Extend (/admin/modules). This module provides the necessary integration with Layout Builder.

The migration process is identical to Migrating Branches to Layout Builder.

2.9 - Landing Page

Flexible content types that use regions and paragraphs to build content.

Fields in Landing Page

Title (Required)

This is what you will see in your admin portal as your content’s name. It will also show as the page title in the Header unless you add a paragraph in the Header Area. The title will appear in the <title> tag of the HTML, which is important for SEO and accessibility.

Layout (Required)

Landing Pages come with four basic layouts for desktop. For mobile, all layouts display in a single column, with the Sidebar Area stacking below the Content Area.

One Column Layout

The one column landing page layout

One Column (Full Width)

The one column (full width) landing page layout

Two Columns

The two column landing page layout

Two Columns (Fixed Sidebar)

The two column (fixed sidebar) landing page layout

Paragraph Areas

You can use any number of Paragraphs in these fields. Paragraphs are reusable content components that can be added to various areas of your landing page.

  • Header Area: Used for inserting banners, small banners, and galleries. Date blocks are also great in this area for scheduled content. This area appears at the very top of the page.
  • Content Area: The main body of your content. This is where the primary information and messaging of your landing page should be placed.
  • Sidebar Area (Two Column Layouts Only): For aside pieces of content, such as side navigations, promotional cards, and content related to the main part of your page. This area is only visible when using a two-column layout.
  • Bottom Area: Add an anchoring element to your page, such as a promotional banner or webform. This area appears at the bottom of the page.

2.10 - Landing Page (Layout Builder)

A flexible content type that uses Sections and Blocks, managed with Layout Builder, to build content.

This page is the base for building pages with Layout Builder.

Creating a Landing Page

  1. Go to Admin > Content > Add Content > Landing Page (Layout Builder).

  2. Fill in the content fields:

    • Title (required): The title of the page. This is for internal use, such as in the admin content list. It will not be displayed on the page itself unless you add it manually with a block in the Banner section.

    • Metadata: This content is used to provide context to search engines and page previews. For the best user experience:

      • Create clickable titles.

      • Write a compelling description.

      • Add a descriptive image.

      • Meta description: A brief and concise summary of the page’s content, with a recommended maximum length of 160 characters.

      • Meta image: Choose or upload an image to be used as a thumbnail for social sharing and preview cards.

      • Meta tags: Advanced meta tag configuration. Caution: This section should not be edited unless you are familiar with meta tags and their impact on SEO.

Customizing a Landing Page

Once you create a Landing Page, you can customize its layout and content using Layout Builder.

Landing Pages come with these pre-configured sections:

  • Header: Typically contains the site logo, site name, and navigation menus.

  • Banner: An edge-to-edge section, without margins (gutters), that is designed for visual impact. It works best with a single Banner or Carousel block.

  • Body: A section with left and right margins, designed to contain the bulk of your page content.

  • Footer: Generally includes copyright information, social media links, and secondary navigation menus.

You can edit, reorder, or remove these sections to configure your page as desired. For specialized content, such as digital displays or embedded systems, you can even remove the header and footer altogether.

Blocks

Blocks are boxes of content rendered into a region of a web page. Blocks are placed and configured specifically for each theme. Blocks can contain a variety of content types, including text, images, menus, and forms.

Content blocks are blocks whose content you can edit. You can define one or more block types, and attach fields to each block type. Content blocks can be placed just like blocks provided by other modules.

The block description is an identification name for a block, which is shown in the administrative interface. It is not displayed on the site. The block title is the heading that is optionally shown to site visitors when the block is placed in a region.

2.11 - Membership Content Type

Membership items are the building blocks of the Membership Calculator and are only displayed within the Membership Calculator Paragraph.

See Membership Calculator.


Membership Fields

General Information

  • Title: The title of the membership type to be displayed on the first step of the Membership Calculator.
  • Description: A short description to be displayed on the first step of the Membership Calculator. This can include information about the membership benefits or features.
  • Image: A reusable image field to be displayed on the first step of the Membership Calculator. Use an image that represents the membership type visually.

A screenshot with the Membership content title, image, and description.

Membership Info

The Membership Info section lists detailed membership information per location. Add one “Membership Info” section for each location that your membership applies to. If a location does not offer a membership type, you can leave it out.

  • Location: A reference to an already-existing Branch. If the branch does not exist, you’ll need to create it first.
  • Link: The URL to the membership signup page for the specified location.
    • URL: The link a member should be taken to to sign up for this membership at this location. See below for tips on finding this URL.
    • Link Text: This field is not used.
  • Join Fee: Dollar value for how much someone has to pay to join. Enter the amount without a currency symbol.
  • Monthly Rate: Dollar value for the monthly fee of the membership. Enter the amount without a currency symbol.

A screenshot labeling the membership info section fields.

Every membership management system will have different ways of linking in for members to complete their registration. Here are a few we know about. If you have tips for a MMS not listed here, feel free to leave them in the comments.

Daxko Operations

Navigate to: Membership > Membership Types > Edit > Online Settings. This provides the deep link to the specific membership types.

A screenshot showing the General Information screen of Daxko Operations

2.12 - News Post

Designed for timely content, articles, and news pieces tagged with one or more physical locations.

Note: This Content Type is similar to the Blog Post content type.

An example news post page

News posts in YMCA Website Services allow you the flexibility to create simple posts using only the text editor and more robust layouts with paragraphs.

When Should I Use a News Post?

When you decide to use a news post depends greatly on your Association’s content strategy. However, news posts are designed so you can post timely content and list them throughout your site. Examples of news posts may include:

  • Member Stories
  • Workouts and Recipes
  • Updates about a Center/Branch
  • Promotions and Contests
  • Press Releases

How Do I Use a News Post?

The news posts category field

There are three fields that appear above the accordion tabs:

  • Title: The name of the news post. Displays in the header area on your news post and in a list view of news posts.

  • Locations: An option select for you to tag a post with one or more locations (Camp or Branch). Use Ctrl+Click (Windows) or Cmd⌘+Click (Mac) to select multiple locations.

    Each time you create a new Branch Page or Camp Page, that location’s name populates into the locations field automatically.

  • Category: An entity reference to the News Category vocabulary. Type in the name of the category and select from the options that appear, or create a new category/term by typing in a new one.

Content Area

The content area is the main body of your page. You can use the default fields entered below for a simple block post or build a more robust layout using paragraphs.

The sidebar area also allows you to embed paragraphs below a section that links to the centers tagged in the post, the categories, and a Related Content field that allows you to promote other News Posts by tagging them with the autocomplete widget.

Layouts

While you have the option to build layouts in news posts using paragraphs, all news posts are strictly two-column layouts. The Content Area displays on the left while the Sidebar Area displays on the right.

Other Settings

In the right column, ensure the “promoted to front page” item is checked, so it will appear in any listings.

2.13 - Program

A generic category page for program offerings.

An example of a program page

The Program content type is a high-level page that directs people to more specific program offerings.

An example of a Program in YMCA Website Services would be a Swimming & Aquatics page that directs people to more specific offerings, such as swim lessons or clinics.


When Should I Use a Program?

Programs are pages that should link to more specific offering pages. Most often in YMCA Website Services sites, they are the main program pages in an YMCA Website Services mega menu setup.

The site mega menu with program pages indicated


How to Use Program

Header Area

  • Icon: An image field that displays an icon (jpg/png) inline with the title.
  • Image: An optional image field for a picture to display in the header.
  • Color: A background color for the header.
  • Paragraph Section: Area to enter paragraphs in the Header, such as a Gallery, Small Banner or Microsites menu. Paragraphs entered in this area replace the image/background color

Standard Title with Light Blue

A program page with a light blue banner

Standard Title with Purple

A program page with a purple banner

Small Banner

A program page with a small banner and an image background

Content Area

  • Description: Displays above the main body of your content and serves as a tease for your Program page when it’s displayed as part of a list on another page. Minimal styling and short lengths are recommended.

  • Content: The main body of your content. Use paragraphs to build your page layout. Designed to integrate with the Categories Listing paragraph, but that is not required.

For aside pieces of content, such as side navigations, promotional cards and content related to the main part of your page.

Layouts

Similar to landing pages, Program pages are designed for flexible layouts, with a couple key differences:

  • Program pages are designed for integration with the Categories Listing paragraph type. Program subcategory pages are tagged with a Program, and those subcategories are displayed as long cards on that Program page.

  • There is no layout dropdown. How your content displays depends on your theme.

    • Lily/Rose will always display Programs in a two-column layout in desktop.
    • Carnation will display desktop in One Column without content in the Sidebar Area and in Two Columns with content in the Sidebar Area.

Carnation: Without Content in the Sidebar

A program page without content in the sidebar

Carnation: Desktop With Content in the Sidebar

A program page with content in the sidebar

  • The Description field always displays above the paragraphs you enter.
  • There is no bottom area for you to add an anchoring element.

Customizing with Layout Builder

Beginning in Website Services 10.3.1.1 content editors have the option of customizing the Program page with Layout Builder. You can migrate from using Paragraphs to using Layout Builder on a program-by-program basis to ease the transition.

The Use Layout Builder checkbox on the Program edit page non-destructively switches between Paragraphs and Layout Builder. If the checkbox does not appear, ensure the Y Program (y_program) module is installed at Admin > Extend (/admin/modules).

Layout Builder Blocks

Program pages can take advantage of the Categories Listing block to list child Program Subcategory pages. To add the block:

  • Click the Layout tab at the top of your page.
  • Scroll to the location on the page where you want to add the block (usually the Body section).
  • Click Add block.
  • In the sidebar, expand All system blocks.
  • Search for “Categories Listing” or scroll to Lists (Views) > Categories Listing.
  • Click on Categories Listing.
  • Check Override title to add a title to the block.
  • Click Add block.

NOTE: As of version 10.3.1.1 (December 2023) the Categories Listing block styles have not been updated to be in line with the Design System. They will be updated as of the March 2024 release. Keep an eye on y_program releases for details.

Migrating to Layout Builder

Migrating Program pages to Layout Builder uses the same process as building a new Landing Page. See How to migrate to Layout Builder for information about preparing for the migration.

2.14 - Program Subcategory

Subcategory pages refine broad Programs into more concrete options.

A subset of a Program, Program Subcategory pages list different types of program offerings, which can be grouped into Activities.

An example of a program subcategory page

Whereas a Program page would describe a Y’s Health & Fitness offerings in general, a Program Subcategory would break that down into subcategories such as:

  • Personal Training
  • Group Exercise Classes
  • Pilates

When Should I Use a Subcategory?

Most Ys have opted to use Program pages as the top-level categories in their Programs mega menu. Subcategories are then the items underneath each category.

The mega menu with program subcategory items indicated

Subcategories also appear as horizontal cards on Program pages.

The program subcategories as displayed on program pages

Learn about the Categories Listing Paragraph ⇒

How Do I Use the Program Subcategory Content Type?

Start by adding a Title for your Program Subcategory and tag it with a Program.

The program subcategory fields

The Program tag will pull your Program Subcategory in as a horizontal card on a Program page. You can only tag a Subcategory with one Program.

Header Area

  • Image: Select an image from the media browser using the image field. It displays in the header and as a thumbnail in Categories Listing.

  • Color: Use the dropdown to select a background color for your header.

    Note: The background color does not display on desktop in Carnation unless you do not have an image selected.

You have the option to add paragraphs in the Header Area. However, these paragraphs display below the image and title you enter above.

For example, if you add a banner in the Header Area, it will display below the title and image entered in those Header Area fields.

Subcategory was originally designed to work with the Classes Listing Filters paragraph in the Header Area and the Classes Listing paragraph in the Content Area.

View Subcategory Demo on YMCA Website Services Sandbox ⇒

With the integration of Activity Finder into YMCA Website Services, Classes Listing and Classes Listing Filters are becoming less popular among YMCA Website Services sites.

Content Area

The Content Area includes a Description that displays full-width just below the Header Area.

When your Subcategory is showed in a Categories Listing on a Program page, the Description is the text inside the card.

You can embed content inside the Content Area, all of which will display below the Description.

YMCA of Greater Brandywine Example

An example of program listings

The Sidebar Area will change the layout of the page into two columns once you enter content.

Bottom Area

Use the Bottom Area for anchoring elements, such as small banners and webforms.

Customizing with Layout Builder

Beginning in Website Services 10.3.1.1 content editors have the option of customizing the Program Subcategory page with Layout Builder. You can migrate from using Paragraphs to using Layout Builder on a program-by-program basis to ease the transition.

The Use Layout Builder checkbox on the Program Subcategory edit page non-destructively switches between Paragraphs and Layout Builder. If the checkbox does not appear, ensure the Y Program Subcategory (y_program_subcategory) module is installed at Admin > Extend (/admin/modules).

Layout Builder Blocks

Program Subcategory pages do not utilize any specialized blocks. See Layout Builder for the list of all components.

Migrating to Layout Builder

Migrating Program pages to Layout Builder uses the same process as building a new Landing Page. See How to migrate to Layout Builder for information about preparing for the migration.

2.15 - Promotion

Flexible content that can be inserted into components as advertisements.

Promotions are timed pieces of content that allow content editors the flexibility to create a single item that can be placed in multiple locations on the site, without having to duplicate or manage content in multiple locations.

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/hrFHguHoDNE?si=WN-h6H3QuYRQYMgA&amp;start=218" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

Version 1 of the Promotion functionality was released in version 10.3.1.1 (December 2023). This version supports swapping promos into:

  • Activity Finder
    • By enabling the ws_promotion_activity_finder module.
  • Cards
    • By enabling the ws_promotion_cards module.
  • Modals
    • By enabling the ws_promotion_modal module.

Creating a Promo

  1. Go to Admin > Content > Add Content > Promotion (/node/add/promo).

  2. Fill in the content fields:

    • Title (required)
    • Subtitle
    • Description: The body text of the promo.
    • Image (required): Choose an existing image from the library or upload a new one.
    • CTA/link: Add a call to action to your promo.
    • Promotion Category: Choose one item from the Activities Taxonomy to link the promo with related components (see below).
    • Promotion Priority: Set how often the promo will appear. This setting will only have an effect if multiple promotions can appear on a page.
    • Visibility pages: This field is not yet in use.
  3. Use the Scheduling options section in the sidebar to set a Publish on and Unpublish on time for your Promo (this requires cron to be running on your server - check with your hosting partner).

Placing a Promo

Version 1

In version 1, creating a Promotion and setting it as Published will automatically enable the promo in any available components (corresponding to the modules enabled above).

To filter a component to only a certain set of Promotions, edit a Layout Builder block and set the new Promotion Category field.

A screenshot of the promotion category field.

  • If Promotion Category is not set on a block, then the block will be overridden by any available (published) promo.
  • If Promotion Category is set on a block, then the block will be overridden by only matching promos that have the same category set.

3 - Blocks

Blocks allow content editors to reuse sections of content across multiple pages.

Understanding Blocks

Blocks are reusable content containers that can be placed in different areas, or regions, of a webpage. Think of them as building blocks that you can assemble in various ways to create different layouts.

Key Features:

  • Reusability: Create a block once and use it on multiple pages.
  • Flexibility: Different block types support different content formats.
  • Efficiency: Updates to a block are reflected everywhere it’s used.

A block works by selecting a paragraph, which prompts you to create or select an existing block. You then add content to that block.

landing-page__2-column-block

You can then embed that block on another page by searching for it by its description and selecting it from the list of results.

Paragraphs that support blocks will usually have two buttons: Add New Custom Block and Add Existing Custom Block.

  • Add New Custom Block: Creates a new block that can be reused later.
  • Add Existing Custom Block: Allows you to select a block that was previously created. Type the Block Description in the search field, and choose from the options that appear.

admin__date-block–exsiting-block

Block Descriptions

The block description field is required for all block types. This serves as the name for your block and is displayed in the administrative interface. Use clear and descriptive names to easily identify your blocks when embedding them onto pages. Block descriptions are not displayed on the site’s front end.

admin–code__block__cropped

Block Types

YMCA Website Services supports different block types for different content needs:

Basic Block

A basic block provides a basic text editor. It is suitable for simple text content, such as descriptions on cards across multiple pages.

Simple Block

The simple block is the block type you will likely use most often. It also provides a basic text editor and is also great for embedding descriptions on cards across multiple pages.

landing-page__1-column-demo-block|690x474, 75%

Paragraphs that Support Simple Blocks


Date Block

Use this block to schedule and unschedule sections or paragraphs on your page(s).

Using the Date Block Paragraph ⇒

Code Block

This block allows you to use any type of HTML tag, making it useful for embedding scripts and iframes onto multiple pages. The code block provides more flexibility for technically-inclined content editors.

Using the Code Block Paragraph ⇒

4 - Layout Builder

Layout Builder is a powerful page-building tool for your YMCA website. It allows content editors and site builders to quickly and easily create visual layouts for displaying content. You can customize how content is arranged on a single page, across types of content, or even create custom landing pages with an easy-to-use drag-and-drop interface.

Drupal’s Layout Builder allows content editors and site builders to easily and quickly create visual layouts for displaying content. Users can customize how content is arranged on a single page, across types of content, or even create custom landing pages with an easy-to-use drag-and-drop interface.

- Layout Builder on Drupal.org

Getting Started with Layout Builder

YMCA Website Services 9.2.12 introduces a new Content Type: Landing Page (Layout Builder). This new page will allow you to build pages using Sections with different Layouts that contain Custom Blocks. Please contact your development partner if you need assistance updating to the latest version.

Creating a new page

To use Layout Builder, you’ll first have to create a new page:

  1. Choose any Layout Builder-enabled content type, or start with a basic Landing Page.
  2. Go to Content > Add Content > The Content Type.

Once you’ve saved, you will see an empty page. Click the Layout tab to enter Layout Builder or go directly there with Save and edit layout.

Drupal admin tabs with an arrow pointing to “Layout”

Updating an existing page

Navigate to the page you’d like to update, then click the Layout tab, like above.

Once you are in the Layout editor, you can create, edit, rearrange, and delete sections and blocks while viewing the page in a what-you-see-is-what-you-get preview mode.

Saving and publishing

Changes to the page are not displayed to site viewers until you Save Layout on the page and Publish it.

When in the Layout editor, you will have these options at the top of the page:

  • Save Layout will save your changes and return you to the main page view.
  • Save and edit layout will save your changes and keep you in Layout Builder.
  • Discard Changes
  • Revert to Defaults will reset your page to the default empty layout.

After saving your changes, be sure your page is published:

  1. Click the Edit tab.
  2. Check Published.
  3. Save the page.

Fundamentals

In Layout Builder, you will see the page divided up into Sections and Blocks. Your page may already be populated with some sections to get you started building, and you can change or edit those to fit your page.

Sections

Sections create the structure of the page and contain blocks. You can drag and drop blocks between sections, but you cannot move sections themselves—you can only create sections above or below existing sections.

You can remove sections by clicking the small “X” link at the top left of the section. Click on “Configure ” to edit the section layout and other options.

A screenshot of a Layout Builder page with Remove, Configure, and Add buttons labeled.

Layouts

Layouts define the structure of a section. YMCA Website Services comes with 1-, 2-, 3-, and 4-column layouts, and each layout has additional configuration options once it’s created. See advanced options for more details.

A screenshot of the “Choose a layout for this section” dialog with options for 1 to 4 columns.
Choose a layout

A screenshot of the “Configure Section” dialog with Layout, Style, and Settings options.
Then configure the advanced Layout, Styles, and Settings.

Some options in this configuration may not yet be fully supported.

Blocks

While Sections contain the page’s structure, Blocks contain its content. Blocks are boxes of content rendered into a region of a web page.

To create a block, click Add Block in any section of the page, then Create Custom Block.

A screenshot showing the Add Block and Create Custom Block buttons.

Your YMCA website has a wide array of blocks to choose from. In this section, you will find detailed descriptions of those blocks.

Tips and Tricks

Get more space for writing

The Content Editing Pane—the sidebar where you edit blocks —can sometimes be too small to get all of your content in there nicely. Simply drag anywhere on its left border to expand the pane.

Animation showing a user dragging the border of the content editing pane to expand it.

Rearrange blocks easily

When rearranging large blocks on the page it can often be challenging to drag them around. To make this easier, uncheck Show content preview at the top of the page. This will substitute the “WYSIWYG” preview for block titles, making the content much more compact.

Animation showing the show content preview checkbox being unchecked and a block being moved.


If you run into a problem, get in touch.

Content on this page is adapted from Drupal.org and Western Washington University

4.1 - Designs

An overview of all custom Layout Builder blocks and their designs.

The distribution has shipped with two generations of Layout Builder component designs. The first-generation “Pre-release” designs were included with versions 9.2.12 (December 2022) and 9.2.13 (March 2023). The refined and feature-complete “Design System” designs were released in June 2023.

Design System

Explore our Design System through our interactive UI kit.

Colorways

Following the YMCA Brand Guide, the distribution offers four “colorways.” Content editors can use these to apply accessible, brand-compliant styles to all components within a Layout Builder-based page.

BlueGreenPurpleRed
Blue Colorway Design
Green Colorway Design
Purple Colorway Design
Red Colorway Design

Canadian Colorways

Refer to How to use the Canadian Colorway for Layout Builder for specific instructions.

Content Types

The distribution offers new Content Types designed for use with Layout Builder components.

ArticleBranchCampEvent
Article Content Type Design
Branch Content Type Design
Camp Content Type Design
Event Design

Components

You can access each of these components on Layout Builder pages via the Create custom block selector.

ComponentDesign
Accordion
Accordion Design
Amenities
Amenities Design
Article List
Article List Design
(Hero) Banner
(Hero) Banner Design
Branch Hours
Branch Hours Design
Branch Menu
Branch Menu Design
Branch Preferred Branch
Branch Preferred Branch Design
Branch Social Links
Branch Social Links Design
Breadcrumbs
Breadcrumbs Design
Camp Menu
Camp Menu Design
Camp Video Banner
Camp Video Banner Design
Card
Card Design
Card - Column Variations
Card - Column Variations Design
Carousel
Carousel Design
Donate
Donate Design
Event List
Event List Design
Forms
Forms Design
Global Footer
Global Footer Design
Global Header
Global Header Design
Grid Content
Grid Content Design
Icon Grid
Icon Grid Design
Icons and Logos
Icons and Logos Design
Locations
Locations Design
Menu and Search
Menu and Search Design
Modal
Modal Design
Ping Pong
Ping Pong Design
Promo Cards
Promo Cards Design
Side Menu
Side Menu Design
Sponsors
Sponsors Design
Staff
Staff Design
Statistics
Statistics Design
Table (Simple Content)
Table (Simple Content) Design
Tabs
Tabs Design
Testimonials
Testimonials Design
Utility Menu
Utility Menu Design

Pre-release

View the designs
ComponentMobileDesktop
Accordion
Accordion Mobile Design
Accordion Desktop Design
Article (/News /Blog /Press Release)
Article Mobile Design
Article Desktop Design
Branch
Branch Location Mobile Design
Branch Location Desktop Design
Branch Amenities
Branch Amenities Mobile Design
Branch Amenities Desktop Design
Branch Hours
Branch Hours Mobile Design
Branch Hours Desktop Design
Branch Menu
Branch Menu Mobile Design
Branch Menu Desktop Design
Branch Social Links
Branch Social Links Mobile Design
Branch Social Links Desktop Design
Breadcrumbs
Breadcrumbs Mobile Design
Breadcrumbs Desktop Design
Cards
Cards Mobile Design
Cards Desktop Design
Carousels
Carousels Mobile Design
Carousels Desktop Design
Event
Events Mobile Design
Event Desktop Design
Grid Content
Grid Content Mobile Design
Grid Content Desktop Design
Hero Banner
Hero Banner Mobile Design
Hero Banner Desktop Design
Modals
Modals Mobile Design
Modals Desktop Design
Partners (/Sponsors)
Sponsors Mobile Design
Sponsors Desktop Design
Ping Pong
Ping Pong Mobile Design
Ping Pong Desktop Design
Promo Cards
Promo Cards Mobile Design
Promo Cards Desktop Design
Simple Menu
Simple Menu Mobile Design
Simple Menu Desktop Design
Staff
Staff Mobile Design
Staff Desktop Design
Statistics
Statistics Mobile Design
Statistics Desktop Design
Tables
Tables Mobile Design
Tables Desktop Design
Tabs
Tabs Mobile Design
Tabs Desktop Design
Testimonials
Testimonials Mobile Design
Testimonials Desktop Design
Webforms
Webforms Mobile Design
Webforms Desktop Design

4.2 - Advanced Options

Configuration for Layout Builder Sections and Blocks.

A wide range of configuration options are available for Layout Builder components using the contributed Layout Builder Blocks module, which is included with the distribution. In addition to those configuration options, we provide an extra layer of “Y Styles” that help site builders customize their sites in an accessible and brand-compliant manner.

Y Styles

These options provide customizations for Layout Builder-enabled pages at the Content Type, Page, and Block level.

Styles inherit from content types, to pages, to blocks. Some styles can also be overridden at each level - block styles can override page styles, which can override content type styles.

flowchart
  classDef ct fill:#5C2E9133;
  classDef page fill:#92278F33;
  classDef block fill:#C6168D33;
  subgraph ct[Content Type]
    direction LR
    subgraph page[Page]
      direction LR
      subgraph block[Block]
        blockStyles[Block Styles]
      end
      pageStyles[Page Styles]
    end
    ctStyles[Content Type Styles]
  end
  blockStyles -- override --> pageStyles
  pageStyles -- override --> ctStyles
  class ct ct
  class page page
  class block block

Content Type Styles

Note: This configuration may not be accessible to all content editors. Ask an administrator for assistance if necessary.

The default values for page-level Y Styles options are set in the Content Type display options.

To access them:

  • Go to Admin > Structure > Content types > Landing Page (Layout Builder) (or another LB-enabled content type) > Manage display
  • Ensure you’re acting on the Default display, then click Manage layout.
    A screenshot of the “Manage display” administration screen.
  • Expand the Y Styles section
  • Choose your default configuration options. These will set the defaults for every new node of this Content Type. Existing content will not be affected.
  • Click Save layout

Page Styles

Every Layout Builder-enabled page that you create will allow you to override the default settings. All of these settings will affect all items on a page, unless they are overridden at the block level.

A screenshot displaying the “Y Styles” configuration section.

  • Edit the Layout on a page
  • Expand the Y Styles section
  • Choose your configuration options.
    • Color scheme:
      The color scheme options
      The color scheme of all components on the page. Choose from four brand-compliant and accessible options:
      • Blue/Purple
      • Green/Blue
      • Purple/Red
      • Red/Orange
    • Border radius:
      The border radius options
      The curvature of container corners.
      • 0px (square)
      • 10px (small curve)
      • 20px (larger curve)
    • Border style:
      The border style options
      The style of container borders.
      • No border
      • 1px border
      • Drop shadow
    • Text/Button alignment:
      The text/button alignment options
      The vertical placement of elements in containers.
      • Left
      • Center
    • Button position:
      The button position options
      Where buttons sit in containers.
      • Inside container
      • Overlapping container
    • Button fill:
      The button fill options
      How buttons are colored.
      • Filled by default, outlined on hover
      • Outlined by default, filled on hover
  • Click Save layout

Y Block Styles

Some blocks have additional styles that can be configured per-block. For these blocks (e.g. Banner, Cards), look for the Y Styles section in the block styles section and set the options accordingly.

  • Banner
    • Variant:
      The Banner variants
      Choose from five designs.
      • Standard
      • Overlay
      • Chevron
      • Frame
      • Small - This variant hides all but the title and description and does not use an image background.
    • Button fill: Override the page-level styles.
  • Card
    • Variant:
      The card variants
      Choose from four designs.
      • Standard
      • Overlay
      • Chevron
      • Color
    • Border style: Override the page-level styles.
    • Text/Button alignment: Override the page-level styles.
    • Button position: Override the page-level styles.
    • Button fill: Override the page-level styles.

Section Styles

When creating or editing a Section you have the option of configuring Layout, Style, and Settings.

A screenshot of the “Configure Section” dialog with Layout, Style, and Settings options.

Support for these options is a work in progress and may require involvement of your development partner. Feel free to experiment with the options. Be sure to follow proper brand guidelines and accessibility practices.

Layout Styles

In this section, you can control the container of the Section.

Screenshot of the Layout Builder Layout Styles options.

  • Container type
    • Boxed: Section is narrower than the header of the page. Good for text-heavy layouts.
    • Full: Section extends to the edges of the main content container.
    • Edge to Edge: Section extends to the edges of the page. Good for full-width components like Banners and Ping-Pong blocks.
  • Gutters
    • With Gutters: Section has left and right padding. Good for most non-full-width containers.
    • Without Gutters: Section has no left and right padding. Best for Edge to Edge containers.

Block Styles

When creating or configuring a block, you have the option of opening the Style tab to access additional style options including:

  • Background
  • Typography
  • Spacing
  • Borders
  • Animation

A screenshot showing the style tab with options below.

Support for these options is a work in progress and may require involvement of your development partner. Feel free to experiment with the options. Be sure to follow proper brand guidelines and accessibility practices.

After you have completed setting the Style options, click back to Content and Save or Update to commit your changes.

4.3 - Accordion

Expandable pairs of question/answer or header/section fields.

Screenshot of the Accordion component with block labels


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Displayed if Display title is checked; otherwise, this is for administrative use.
  • Section Subheading: The subheading of the accordion section.
  • Accordion Item: Add as many items as you like using the Add Accordion Item or Add new custom block button. When you are finished adding or editing each item, be sure to click Create/Update tab or Create/Update custom block to finalize the item. Each item contains:
    • Heading (required): The heading that will be used to expand/contract the accordion.
    • Body (required): The content of the accordion.
  • FAQ?: If this section contains Frequently Asked Questions, check this box to output them as structured data. Ensure the content contains individual sets of questions (e.g., “How old does my child need to be to swim at the YMCA?”) and answers (e.g., “The YMCA offers swim classes starting at age 3 and the pool is open to children of all ages with parental supervision”). Review Google’s Content guidelines for FAQs for more information. Only one FAQ should be added to a page. If more than one is added, only the first will be output to the structured data.

Then save the block:

4.4 - Activity Finder

Place the Activity Finder application in a Layout Builder page.

Activity Finder combines data from the Activity, Class, and Session content types into an interactive tool. Learn more about Activity Finder.

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Configuration

Configure the Activity Finder block after adding it to a Layout Builder page:

  1. Edit the block within the Layout Builder.

  2. Configure the available options. See Activity Finder Block Configuration for field details. These configurations will affect what users see and can do on the front end.

    • Location & Category Filters: Restrict the block to show sessions from only certain Locations or Categories. Choose either “Limit” to show only the specified options or “Exclude” to remove the specified options. It’s generally recommended to choose either Exclude or Limit, but not both.
      • Limit by location: Only show sessions at specific locations in the results.
      • Exclude by location: Remove sessions at specific locations from the results.
      • Limit by category: Only show sessions related to specific Program Subcategories in the results.
      • Exclude by category: Remove sessions related to specific Program Subcategories from the results.
    • Legacy mode: Shows some data as it was in the previous version of Activity Finder (v3):
      • Disables bookmark functionality on the results screen.
      • Doesn’t display the age indicator in the result card of activities.
      • Changes the days + times wizard step. Displays only days of the week, but not times of each day (doesn’t support DaysTimes filter).
    • Weeks filter: Changes the Day/Time filter to use custom defined Week filters.
      • This requires setting the Weeks configuration in the Activity Finder settings (/admin/openy/settings/activity-finder).
      • Only sessions that have “Camp” in the title or room fields will return for this filter.
    • Additional filters: These filters are off by default, but can be enabled in the Block Configuration.
      • Start Month: Filters based on the month in the Session Time field.
      • In Membership: Shows Sessions that have In membership checked.
      • Duration: The length of the Session. This is configurable in the Activity Finder settings (/admin/openy/settings/activity-finder) and defaults to:
        • Single day
        • Multi-day (up to 5 days)
        • Weekly (up to 3 weeks)
        • Monthly (up to 5 weeks)
        • Season (up to 12 weeks)
        • School year (~9 months)
        • Full year
      • Hide Home Branch info block: Disables functionality related to the users selected home branch.
      • Background image: An image that’s displayed in the background of the banner above Activity Finder.
  3. Save the block.

Then save the block:

4.5 - Article Views & Filters

Components to feature, filter, and list articles using Layout Builder.

A screenshot showing the Featured articles block.
A screenshot showing the Articles filter block.
A screenshot showing the Articles listing block.


Designs: Mobile & Desktop

The distribution provides a few blocks to highlight articles:

  • Featured Articles
  • Articles Filter
  • Articles Listing

To use the blocks:

  1. Click the Layout tab at the top of your page.
  2. Scroll to the location on the page where you want to add a block.
  3. Click Add block.
  4. In the sidebar, click Create custom block.
  5. Choose each block to add.

Displays one or more articles in a large feature on the page.

  • Title (required): Displayed if Display title is checked; otherwise, this is for administrative use only.
  • Manual selection items: Select one or more articles to be featured on the page. Generally, it’s best to feature a single article.

Articles filter

Allows users to filter the Articles Listing by location, category, or text search.

  • Title (required): Displayed if Display title is checked; otherwise, this is for administrative use only.

This block has no other options.

Articles listing

Displays articles in a teaser view, filtered by the Articles filter block, with a “Show more” button.

  • Title (required): Displayed if Display title is checked; otherwise, this is for administrative use only.

  • Number of articles: The number of articles to show in the listing on first load. Defaults to 3.

    • Added in the December 2024 release.
  • Article type: Limit the articles to a specific type. Defaults to “All”.

    • Added in the December 2024 release.

When you are finished adding blocks, Save and publish your changes.

4.6 - Banner

A full-width display with a header, description, and call to action overlaid on an image. Also known as a “Hero Banner”. The Banner block is used to draw attention to key content and promotions.

Screenshot of the Banner component with block labels


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Content Fields

Fill in the following content fields:

  • Title (required): This field is for administrative purposes only and is not displayed on the banner, even if “Display Title” is checked.
  • Banner Title (required): A heading to display prominently on the banner. Consider using the <H1> tag if the banner is at the top of the page.
  • Description: A full text editor allows you to add descriptive content to the banner. Basic styling such as bold and underline is recommended.
  • Media: Choose an image or icon from the media library to be displayed behind the banner text, or upload a new one.
  • CTA/Link: Add a call-to-action link that will appear at the bottom of the banner text.

This block comes with multiple styles. To choose an alternative style:

  1. Click on the Style tab at the top of the Block Add/Update form.
  2. Expand the Y Style section.
  3. Choose from the available variations.
  4. Go back to the Content tab.

Banner variants

Then save the block:

The banner block comes in several variations, including:

  • Standard: A basic banner with text and an optional image.
  • Overlay: Text is overlaid on the image.
  • Frame: The text appears within a frame.
  • Chevron: A banner with a chevron shape.
  • Small: A smaller banner variation.
  • Tall: A taller banner variation.
  • Promo: A banner designed for promotional content.
  • Sub Chevron: A variation with a sub-chevron design.
  • Sub Frame: A variation with a sub-frame design.

Some variations also have “Canada” specific styles in red, white, and black.

These variations can be selected during the block configuration process, allowing you to choose the most appropriate style for your content and design preferences.

Best Practices

  • Image Size: Use high-quality images that are appropriately sized for the banner area. Consult with your agency partner for recommended image sizes.
  • Text Length: Keep the banner title and description concise and engaging. Avoid lengthy text that could overwhelm the user.
  • Call to Action: Use a clear and compelling call to action to encourage user interaction.
  • Accessibility: Ensure that your banner content is accessible to all users, including those with disabilities. Provide alt text for images and use appropriate heading levels.

4.7 - Breadcrumbs

Secondary navigation that helps users understand their location within a website.

Breadcrumbs Block Diagram


Designs:

Adding Breadcrumbs to a Page

To use Breadcrumbs within the Layout Builder:

  1. Click the Layout tab at the top of the page.
  2. Scroll to the location on the page where you want to add the breadcrumbs (typically the bottom of the Header section or the top of the Content section).
  3. Click Add block.
  4. In the sidebar, expand All system blocks.
  5. Search for “Breadcrumbs” or scroll to System > Breadcrumbs.
  6. Click on Breadcrumbs.

Configuring the Breadcrumbs Block

After adding the block, you will need to configure it:

  • Title (required): This field is for administrative use only and will not be displayed on the front end. It is recommended to uncheck Display title.

Then save the block:

Additional Information

  • What are Breadcrumbs? Breadcrumbs are a navigational aid used in user interfaces. They allow users to keep track of their location within a website or web application. The term comes from the Hansel and Gretel fairy tale.

  • Easy Breadcrumb Module: For more advanced breadcrumb functionality, consider using the Easy Breadcrumb module. This module allows for customization of the breadcrumb trail, including:

    • Including/excluding the front page as a segment.
    • Including/excluding the current page as the last segment.
    • Using the real page title instead of deducing it from the URL.
    • Printing the page title segment as a link.
    • Using menu titles as a fallback.
    • Removing identical segments.
    • And more.

4.8 - Cards

Flexible card-style components that allow up to 4 cards to display across the page depending on the chosen layout.

Screenshot of the Cards component with block labels


The Cards block is similar to the Grid CTA block, but has more fields and places the image behind the item content.

Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • Section heading: Displayed as a heading above the cards.
  • Section subheading: Displayed below the heading.
  • Section link: A link button displayed below the list of cards.
  • # of columns: Allows 1 to 4 columns of cards.
  • Card items: Add up to 4. When you are finished adding or editing each item, be sure to click Create/Update tab or Create/Update custom block to finalize the item. Each card has:
    • Heading (required)
    • Image: Choose from the library or add a new image to be displayed behind the card text.
    • Description: A full text editor to add card content.
    • Link: A link at the bottom of the card.
      • As of the December 2024 release, Card links can use link attributes such as id, target, and class.
    • Topic Tag: This is displayed at the top of the card and can be used to group cards visually.

The Cards block offers several variations that change the look and feel:

  • Standard: The default card style.
  • Overlay: Places the card content over the image.
  • Chevron: Adds a chevron graphic to the image area.
  • Color: Applies a background color to the card.

This block comes with multiple styles. To choose an alternative style:

  1. Click on the Style tab at the top of the Block Add/Update form.
  2. Expand the Y Style section.
  3. Choose from the available variations.
  4. Go back to the Content tab.

Card variants

Then save the block:

4.9 - Carousel

A full-width gallery with multiple sets of a header, description, and call to action overlaid on top of an image.

Screenshot of the Carousel component with block labels


Designs:

  • Design System
  • Pre-release: [Mobile](../../../../../../assets/img/designs/lb/Carousels Mobile.png) | [Desktop](../../../../../../assets/img/designs/lb/Carousels Desktop.png)

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): This title is for administrative purposes only and is never displayed, even if “Display Title” is checked.
  • Carousel heading: This heading is displayed above the carousel.
  • Carousel subheading: This subheading is displayed below the heading.
  • Carousel Item: You can add multiple items to the carousel by using the Add Carousel Item or Add new custom block button. Make sure to click Create/Update tab or Create/Update custom block to save each item after adding or editing. Each item includes the following fields:
    • Heading
    • Image: You can choose an existing image from the media library or upload a new image.
    • Description
    • Link: This creates a link that appears at the bottom of the carousel item.

Then save the block:

4.10 - Code

Embed unfiltered HTML code in a page.

Code Block Diagram

Designs: This block provides no additional presentation outside of the embedded content. It renders the code you provide directly into the page. Ensure the code is properly formatted and safe for display.

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Configuration

Fill in the following content fields:

  • Title (required): This field is for administrative purposes only. The title is never displayed, even if “Display Title” is checked. Use a descriptive title to easily identify the block in the Layout Builder.
  • Code: Paste the HTML, JavaScript, CSS, or other code to be embedded on the page.

!!! warning Be extremely cautious when embedding code from untrusted sources. Unfiltered code can introduce security vulnerabilities and potentially compromise your site. Always validate and sanitize code before embedding it.

Then save the block:

4.11 - Donate

A call to action with donation buttons linking to an embedded form.

NOTE: This module requires per-provider configuration. Currently, support is provided for donation forms from:

  • Blackbaud Online Express
  • Convio Luminate

Please submit a feature request for additional provider support.

Donate Block Screenshot

Designs: Mobile & Desktop

The Y Layout Builder - Donate (lb_donate) and YMCA Website Services Donation Embed Form (y_donate) modules work together to allow content editors to add an embedded donation form to the site and create a separate call to action to direct users there.

Embedded Form

The YMCA Website Services Donation Embed Form (y_donate) module provides a block that allows you to embed a donation form directly onto a page.

To get started:

  1. Enable the YMCA Website Services Donation Embed Form (y_donate) module at Administration > Extend.
  2. Navigate to the Layout tab of a Layout Builder-enabled page.
  3. Select Add block on the page, then search or scroll to find Donation Form Embed Block.
  4. Select the form type and enter the form ID from your donation provider.

Troubleshooting

If your embedded form does not work in your non-production environment, you may need to add a domain to the allow-list either on the provider-side or in your site’s Content Security Policy.

If your provider is not listed, you can add the form by selecting the Code Custom Block and pasting in your code. Alternatively, you can work with your development partner to add a new donation provider. Refer to the Information for Developers section of the y_donate project for details on how to implement a new provider.

The Donate Block (lb_donate) provides a call to action with donation amount buttons and a link to the embedded donation form page. This block can be placed in an edge-to-edge container.

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • Section heading: Displayed as a heading above the items.
  • Section subheading: Displayed below the heading.
  • Giving amounts: Configure any number of buttons with preset donation amounts. An “Other” button will always be displayed after these buttons, allowing users to enter a custom amount.
    • Amount label: The amount to be displayed on the button, including the currency symbol (e.g., “$50”).
    • Form Element ID: This is usually a 4-digit number found in your donation platform’s backend. You may need to inspect the form using your browser’s developer tools to find this ID.
  • Donation page link: A link displayed below the buttons that directs users to the page containing the embedded donation form.
    • URL: This must link to the page where the embedded donation form is located for the donation buttons to function correctly.
    • Link text: The text to be displayed for the link (e.g., “Donate Now”).
  • Background image: Choose an image from the media library or upload a new image to be displayed behind the text and buttons.

Then save the block:

4.12 - Event Views & Filters

Components to feature, filter, and list events using Layout Builder.

A screenshot showing the Featured events block.
A screenshot showing the Events filter block.
A screenshot showing the Events listing block.


Designs: Mobile & Desktop

The distribution provides a few blocks to highlight events:

  • Featured Events
  • Events Filter
  • Events Listing

To use the blocks:

  • Click the Layout tab at the top of your page.
  • Scroll to the location on the page where you want to add a block.
  • Click Add block.
  • In the sidebar, click Create custom block.
  • Choose each block to add.

Displays one or more events in a large feature on the page.

  • Title (required): Displayed if Display title is checked; otherwise, this is for administrative use.
  • Manual selection items: Select one or more events to be featured on the page. Generally, it’s best to feature a single event.

Events filter

Allows users to filter the Events Listing by location, category, or text search.

  • Title (required): Displayed if Display title is checked; otherwise, this is for administrative use.

This block has no other options.

Events listing

Displays events in a teaser view, filtered by the Events filter block, with a “Show more” button.

  • Title (required): Displayed if Display title is checked; otherwise, this is for administrative use.
  • Number of events: The number of events to show in the listing on first load. Defaults to 3.
    • Added in the December 2024 release.

When you are finished adding blocks, Save and publish your changes.

4.13 - Grid CTA

Sets of content with a headline, description, and link displayed in 2 to 4-item wide rows, with the option to include icons or images.

Screenshot of the Grid CTA component with block labels


The Grid CTA block is similar to the Cards block, but allows for more flexible items with a slightly more freeform design. It is also similar to the Icon Grid block.

Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • Section heading: Displayed as a heading above the cards.
  • Section subheading: Displayed below the heading.
  • Grid CTA section link: A link button displayed below the list of items.
  • # of columns: Allows 2- to 4-columns of items.
  • Grid Item: Add up to 4. When you are finished adding or editing each item, be sure to click Create/Update tab or Create/Update custom block to finalize the item. Each item has:
    • Heading (required)
    • Description: A full text editor to add item content.
    • Media: Choose from the library or add a new image or icon to be displayed above the item text.
    • Link: A link at the bottom of the item.

Then save the block:

4.14 - Header/Footer

Many blocks come together to create a configurable header and footer for Layout Builder pages.

Screenshot of the Header Section with block labels
Screenshot of the Footer Section with block labels

Designs:

The header and footer on Layout Builder pages is composed of many complimentary blocks. The Header and Footer are special Sections that are pre-populated on each Layout Builder-enabled content type. If the Header or Footer do not already exist in your content, you can add them on your own.

Header Section

Screenshot of the Header Section with block labels

If a Header section does not already exist, add a new Section and choose the WS Header Layout. Then, add the following blocks by selecting Add block and then using the search box under All system blocks:

  • Utility Menu area
    • Left
      • Website Name Block
    • Right
      • Open Y Google Translate Block
      • Utility Menu
  • Main Menu area
    • Left
      • Site Logo Block
    • Center
      • Main navigation
      • Search Bar Block
    • Right
      • User account menu

Each block has some specific configuration recommendations:

Website Name Block

Configuration

  • Uncheck Display title.

Content

  • The Site Name is found under Configuration > System > Basic site settings.

Open Y Google Translate Block

Configuration

  • Uncheck Display title.

Content

  • The contents of this block are not configurable, but it may be omitted or removed if your site does not provide translation or uses another translation method.

Utility Menu

The option to add a Utility Menu was added in the December 2024 release. This menu is intended to give content editors an additional space for adding links in the top right of the header.

Configuration

  • Uncheck Display title.
  • Menu levels controls which and how many levels of menu are displayed. The Utility menu styles are designed for a single level of links.

Content

  • Menu items can be managed under Structure > Menus > Utility Menu.

Site Logo Block

Configuration

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • WS Site Logo: Choose which logo is displayed in the block.
    • Theme logo uses the logo defined by the active theme, in the Appearance > Settings > (The active theme).
    • Colorway logo uses a dynamic SVG that responds to the configured YMCA colorway. This option is recommended for the Header.
    • White logo uses a flat white logo. This option is recommended for the Footer.
  • Hide tagline in WS logo: (Added in the December 2024 release.) Check to hide the tagline (areas of impact) in the logo.

The main navigation supports displaying up to three levels of menu items. When adding items, be sure to check Show as expanded for any parent item that should be expandable.

The menu with 3 levels of depth labeled.

The main navigation also supports an optional nested CTA block.

Configuration

  • Uncheck Display title.
  • Menu levels controls which and how many levels of menu are displayed. We recommend using the default configuration.

Content

  • Menu items can be managed under Structure > Menus > Main navigation.

Search Bar Block

Configuration

  • Uncheck Display title.

Content

  • The contents of this block are not configurable.

User account menu

Configuration

  • Uncheck Display title.
  • Menu levels controls which and how many levels of menu are displayed. We recommend using the default configuration.

Content

  • Menu items can be managed under Structure > Menus > User account.
  • To show items with a button style, add the highlighted class to the menu item under Attributes > Class.
    The menu item configuration with the highlighted class added. An overlay in the upper right corner shows the resulting link.
    • On mobile devices, only highlighted items from this menu will display.

Screenshot of the Footer Section with block labels

If a Footer section does not already exist, add a new Section and choose the WS Footer Layout. Then, add the following blocks by selecting Add block and then using the search box under All system blocks:

  • Primary Footer
    • Site Logo
    • Footer Menu Left
    • Footer Menu Center
    • Footer Menu Right
    • Footer Social
  • Sub-footer
    • Copyright
    • Footer Menu

See above. The white logo is recommended for the footer.

Each of these three blocks references a menu. The three menus can be used to split footer links across multiple columns.

Configuration

  • Display title: Uncheck to hide the title, or turn the menu title on to give each column a title.
  • Menu levels controls which and how many levels of menu are displayed. We recommend using the default configuration.

Content

  • Menu items can be managed under Structure > Menus > Footer Menu Left, Footer Menu Center, or Footer Menu Right.

Configuration

  • Display title: It’s up to you.

Content

Configuration

  • Uncheck Display title.

Content

  • Go to Structure > Block layout > Custom block library
  • Find the Footer Copyright Block
  • Edit the block, then Save when finished.

This menu is typically for a limited number of links such as “Privacy Policy” or “Terms of Use”.

Configuration

  • Uncheck Display title.
  • Menu levels controls which and how many levels of menu are displayed. We recommend using the default configuration.

Content

  • Menu items can be managed under Structure > Menus > Footer.

The main menu with a CTA block

The Main navigation has an additional feature that allows for adding a nested call-to-action that takes the place of the third level of the menu.

To use it:

  • Go to Extend (admin/modules) and enable the Web Services Main Menu CTA Block module (y_lb_main_menu_cta_block).
  • Edit a top-level menu item (like “Programs” or “Schedules”) via one of these methods.

    CTA blocks will only be displayed on first-level menu items. Blocks on all other levels will be ignored.

    1. Click the in the Main Menu section, then choose Edit menu.
      The Edit Menu item in the main menu contextual options
    2. Go to Admin > Structure > Menus > Main navigation then Edit a link.
  • In the CTA block section, click Add new custom block.
    The Add new custom block button
  • Fill in the fields:
    • Expand the Media section and choose or upload an image
    • Add a short Heading
    • Add a short 1-2 sentence Description
    • Add a link and display text for the Menu CTA Link
    • Add a Block description for administrative purposes only
    • Click Create custom block to save the block.
  • Save the menu item.
  • Go back to a Layout Builder page with the menu and refresh. The menu CTA should now appear when the corresponding menu dropdown is open.

Menu CTA items will not appear on pages that use Paragraphs-based layout. CTAs also ony show on desktop and not mobile displays.

4.15 - Icon Grid

A simpler version of the Grid CTA component. Displays sets of content, each with a title and description, arranged in rows of 2 to 4 items. Icons or images can be included with each item.

Screenshot of the Icon Grid component with block labels


The Icon Grid block shares similarities with the Cards and Grid CTA blocks but offers a way to display more basic items with a slightly more constrained design. It is based on the lb_icon_grid block content type and uses icon_grid_item paragraphs.

Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): This field is for administrative purposes only and is never displayed, even if “Display Title” is checked.
  • Section heading: Displayed as a heading above the grid items.
  • Section subheading: Displayed below the heading.
  • Icon Grid section link: A link button displayed below the grid items. This uses the field_cta field.
  • # of columns: Determines the number of columns in the grid, allowing for 2 to 4 columns of items. This uses the field_icon_columns field.
  • Grid Icon Items: Add up to 4 items to the grid. This is managed by the field_grid_items field, which references icon_grid_item paragraphs. Each item has the following fields:
    • Title (required): The title of the grid item. This uses the field_title field.
    • Description: A full text editor to add content to the grid item. This uses the field_description field.
    • Icon: Choose an existing image from the media library or upload a new image or icon to be displayed above the item text. Circular icons are recommended, and all icons/images will be displayed with a circular crop. This uses the field_media field.

Then save the block:

4.16 - Location Finder

A set of components to view and search YMCA locations.

A screenshot of the Locations block filters and map.
A screenshot of the Locations block listing.

Designs: Mobile & Desktop

The Location Finder block provides search, filters, a map, and a listing of your YMCA locations.

Amenities Filters

A screenshot of the Location Finder’s “filter by amenities” section.

Location Finder also now supports hierarchical amenities. That means you can arrange your list of amenities into categories instead of a simple alphabetical list.

The Amenities taxonomy is managed at Administration > Structure > Taxonomy > Amenities. See Taxonomy, Vocabularies, and Terms for more info on managing Vocabularies.

Single-Level Amenities

A screenshot showing the Amenities taxonomy administration on the left and the filters display on the right.

If you leave the Amenities terms in a flat list on their configuration page, the Location Finder filters will display according to their configured weights. Drag terms up or down in the list to rearrange them in the filters.

Hierarchical (Parent/Child) Amenities

A screenshot showing a parent-child relationship in the Location finder filters.

Y’s with many amenities may choose to group them in categories. Once any Amenities term is nested, the Location Finder filters switch to a hierarchical display.

To nest terms:

  • Go to the Amenities administration page at Administration > Structure > Taxonomy > Amenities.
  • Add term to create new parent terms if necessary.
  • Use the drag handle [✥] to arrange terms into nested groups.

NOTE:

  • Any terms more than two levels deep will be ignored. (That is, parents and children will be displayed, grandchildren will not.)
  • When nesting is enabled, any amenities that are not grouped will be hidden from the filter list.

A screenshot showing amenities in a hierarchy with labels. Amenities greater than two levels deep are marked as hidden, amenities that do not have children are marked as hidden. All others are marked as shown.

Using Location Finder

The Location Finder block is best placed in an edge-to-edge Section with no gutters.

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.

Then save the block:

4.17 - Modal

A simple pop-up dialog that is triggered when a page loads.

Screenshot showing the field titles overlaid on the design


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • Modal title: The displayed title of the popup.
  • Modal description: The text displayed in the body of the popup.
  • Modal CTA/Link (required): A link at the bottom of the popup.
  • Modal Dismissible:
    • If “Yes,” the modal will be shown to the user once on first load.
    • If “No,” the modal will be shown on every page load.

Then save the block:

4.18 - Partners

Component for displaying logos / info of partners or sponsors within a page using Layout Builder.

Screenshot showing the field titles overlaid on the design with tiers
Screenshot showing the field titles overlaid on the design


Designs:

  • Design System
  • Pre-release: [Mobile](../../../../../../assets/img/designs/lb/Sponsors Mobile.png) | [Desktop](../../../../../../assets/img/designs/lb/Sponsors Desktop.png)

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): This title is for administrative purposes only and is never displayed, even if “Display Title” is checked.
  • Section heading: Displayed as a heading above the partner items.
  • Section subheading: Displayed below the heading.
  • Partner tier: Click Create content block to add a new Partner tier. Add unlimited tiers. (Added in the December 2024 release. Prior to that, all partners were displayed in a single group.)
    • Block description: For administrative use only.
    • Partner’s Tier: The title of the tier (like “Platinum,” “Gold,” etc.). Leave this empty if you don’t want to display a tier title.
    • Partner items: Click Add new custom block to add a new Partner item or Add existing custom block to reuse an existing item. Items can be reused across pages. Add unlimited items. Each item has:
      • Heading: The name of the partner.
      • Image: The logo or image.
      • Link: An internal or external link.
      • After filling in the fields for an item, click Create custom block to save the item.

Then save the block:

4.19 - Ping-Pong

Usually paired sets of full-width page components that include media, header, description, and call to action arranged horizontally.

Screenshot of the Ping-pong component with block labels


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • Section title: Displayed as a heading above the item.
  • Section subtitle: Displayed below the heading. This is the sub-heading of the Ping-pong section.
  • Item title: Displayed at the top of the ping-pong block.
  • Item description: Displayed below the title.
  • Item image: Choose from the library or add a new image to be displayed opposite the text.
  • Item image position: Places the image on the left/right side of the page in full-width (desktop) displays. Image will stack above text at narrow widths.
  • Item CTA/Link: Add up to two links. The first will be displayed with “primary” (solid) styling, the second will be “secondary” (outline) styling.

Then save the block:

4.20 - Promo Card

A title, headline, description, and link that usually display in the right or left sidebar.

Screenshot of the Promo Card component with block labels


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): This field is for administrative purposes only and is never displayed, regardless of the “Display Title” setting. Use this to easily identify the block in the layout builder.
  • Card title: The main title displayed on the promo card.
  • Body: A rich text editor for adding the main content of the card.
  • Icon/Image: Choose an image from the media library or upload a new one to be displayed above the card text. The format of the image you upload affects how it will be displayed:
    • JPG/PNG: Images are cropped to a 3:2 aspect ratio.
    • SVG: Images are not cropped, and will retain their original dimensions. Using SVGs is the recommended approach for icons.
  • CTA: Configure the link and the text for the call to action button at the bottom of the card.

Then save the block:

4.21 - Related Articles

Component for displaying related articles within an Article node page and within other pages (i.e. landing pages) using Layout Builder.

Screenshot showing the field titles overlaid on the design


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): This title is for administrative purposes only and is never displayed to end users, even if “Display Title” is checked.

  • Section title (required): The heading for this section.

  • Link: An optional link to be displayed near the title.

  • Type: Select how you would like to choose the related articles in the block. Each type has different options:

    Screenshot showing the Related Articles filter options.

    • Article type: Use the Article Type to filter Related Articles.
      • By default, this will allow all Article Types. Choose a type to filter the list to only that type.
    • Locations: Use the Locations field to filter Related Articles.
      • Choose one or more Branch Locations to filter the list of Articles.
    • Tags: Use the Tags field to filter Related Articles.
      • Choose one or more Tags to filter the list of Articles.
    • Manual: Directly specify the Articles to be listed.
      • Use the autocomplete field to add one or more Articles to be displayed.
  • Items count to display: The maximum number of items to display in the list: 3, 6, 9, or 12.

Then save the block:

4.22 - Related Events

Component for displaying related events within an event node page and within other pages using Layout Builder.

Screenshot showing the field titles overlaid on the design


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): This title is for administrative purposes only and is never displayed, even if “Display Title” is checked.

  • Section title (required): The heading for the related events section.

  • Link: An optional link to be displayed near the section title. This can be a link to a page with more events, for example. As of the December 2024 release, Related Events links can use link attributes.

  • Type: Select how you would like to choose the related events in the block. Each type has different options:

    Screenshot showing the Related Events filter options.

    • Tags: Show upcoming events filtered by related tags.
    • Upcoming: Show upcoming events sorted by date.
    • Locations: Use the Locations field to filter related events.
      • Choose one or more Branch Locations to filter the list of events.
    • Manual: Directly specify the events to be listed.
      • Use the autocomplete field to add one or more events to be displayed.
  • Items count to display: The maximum number of items to display in the list: 3, 6, 9, or 12.

Then save the block:

4.23 - Repeat Schedules

Place the Repeat Schedules application in a Layout Builder page.

Repeat Schedules combines data from the Activity, Class, and Session content types into an interactive tool. Learn more about Group Schedules.

Before you can use the Repeat Schedules block, you will need to:

  • Ensure the openy_repeat module is updated to at least 2.2.0.
  • Enable the Repeat (Group) Schedules (lb_repeat_schedules) module at Admin > Extend (/admin/modules).

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Configure the options:

Then save the block:

4.24 - Simple Menu

A simple 1-level sidebar menu that can display in either the right or left sidebar area.

Screenshot of the Simple Menu component with block labels


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Displayed if Display title is checked, otherwise, this is for administrative use. This title will serve as the block description in the Block Layout interface.
  • Icon: Optional icon (or small image) to be displayed to the left of the menu title.
  • Links: An unlimited number of internal or external links.

Then save the block:

Additional Information:

The Simple Menu block is a useful way to display a list of links in a sidebar. Menus are a collection of menu links that are used for site navigation. You can create new menus and menu links, reorder links, and disable links provided by modules. For more information about managing menus, refer to the Drupal User Guide.

To further customize the appearance of the menu, you can adjust the theme settings or use CSS to style the block. The administrative toolbar also provides a way to manage menus and their associated links. You can access it under Structure > Menus.

4.25 - Simple Schedule

A calendar-based schedule.

The Simple Schedule block pulls content that is added via the Simple Schedules module, along with other Sessions on the site, displaying them in a calendar format. It’s crucial to configure your schedules using the Simple Schedules module before adding this block to your site to ensure content is displayed correctly. This block leverages existing session data and presents it in a user-friendly, calendar-based view.

Coming soon.

Screenshot of the Simple Schedule block


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Location (required): Select the location for which you would like to display scheduled events. This setting determines which sessions are included in the schedule.

Then save the block:

4.26 - Simple Text / Table

Allows users to add simple content and responsive tables within a page.

Screenshot of the Table component with block labels


The Table block allows users to add simple content and responsive tables to Landing Pages (Layout Builder content type). It utilizes the Tablesaw library for responsive table functionality.

Designs:

Then save the block:

To configure the Table block, fill in the following content fields:

  • Title (required): This title is for administrative purposes only and is never displayed, even if Display Title is checked.

  • Section title: This title is displayed as a heading above the table and other content.

  • Section subtitle: This subtitle is displayed below the heading.

  • Body: This field provides a full text editor for adding tables, text, images, and other content to the page.

    • Adding a table: Click the Table icon in the editor toolbar. Configure the table options (number of rows/columns, headers, etc.) in the popup window.
      A screenshot of the table icon and properties popup.
    • Editing table properties: Right-click inside the table and select an option from the context menu to modify table properties such as row/column insertion/deletion, cell formatting, and other table-specific settings.
      A screenshot of the table operations menu.

Then save the block:

4.27 - Staff Members

Component for displaying simple staff member info cards (with image, name, title) within a page using Layout Builder.

Screenshot showing the field titles overlaid on the design


Designs:

  • Design System
  • Pre-release: [Mobile](../../../../../../assets/img/designs/lb/Staff Mobile.png) | [Desktop](../../../../../../assets/img/designs/lb/Staff Desktop.png)

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • Section heading: Displayed as a heading above the items.
  • Section subheading: Displayed below the heading.
  • Staff items: Click Add new custom block to add a new Staff item, Add existing custom block to reuse an existing item from another block, or click Duplicate to reuse an entry from the same block. Items can be reused across pages. Add unlimited items. Each item has:
    • Image: Image of the staff member.
    • First name (required)
    • Last name (required)
    • Job title (required)
    • Email: Email address of the staff member.
    • After filling in the fields for an item, click Create custom block to save the item.

Then save the block:

4.28 - Statistics

Infographic-like display that highlights relevant statistics to users.

Screenshot of the Statistics component with block labels


Designs:

  • Design System
  • Pre-release: [Mobile](../../../../../../assets/img/designs/lb/Statistics Mobile.png) | [Desktop](../../../../../../assets/img/designs/lb/Statistics Desktop.png)

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): This title is for administrative purposes only and is never displayed to users, even if “Display Title” is checked.
  • Section heading: Displayed as a heading above the statistics items.
  • Section subheading: Displayed below the heading.
  • Media: Choose an existing image from the media library or upload a new image. The image will be displayed to the left of the statistics.
  • Section link: Add a link to be displayed below the statistics items.
  • Statistics items: Add as many statistics items as needed by using the Add Statistics Item or Add new custom block button. After adding or editing each item, remember to click Create/Update tab or Create/Update custom block to save your changes. Each item includes the following fields:
    • Number value: The numerical value of the statistic. This field accepts a prefix (e.g., “$100”) and/or a suffix (e.g., “100M”).
    • Description: A description of the statistic.

Then save the block:

4.29 - Tabs

Gives users the ability to switch page views by selecting in-page tabs. This component is built using the Paragraphs module and Entity Reference Revisions module.

Screenshot of the Tabs component with block labels


Designs:

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • Section heading: Displayed as a heading above the item.
  • Section subheading: Displayed below the heading.
  • Tab Item: Add as many Tabs as you like using the Add Tab or Add new custom block button (depending on your version). When you are finished adding or editing each item, be sure to click Create/Update tab or Create/Update custom block to finalize the item. Each item contains:
    • Heading: The heading that will be used to select the tab. This corresponds to the field_title field of the tab_item block content type.
    • Body: The content of the tab. This corresponds to the field_description field of the tab_item block content type.

Then save the block:

4.30 - Testimonials

Component for displaying short testimonials or quotes from Y members in an interactive carousel-style format.

Screenshot showing the field titles overlaid on the design


Designs:

  • Design System
  • Pre-release: [Mobile](../../../../../../assets/img/designs/lb/Testimonials Mobile.png) | [Desktop](../../../../../../assets/img/designs/lb/Testimonials Desktop.png)

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): Never displayed, even if “Display Title” is checked. For administrative use only.
  • Section title: Displayed as a heading above the cards.
  • Section subtitle: Displayed below the heading.
  • Item: Click Add new custom block to add a new Testimonial item, or Add existing custom block to reuse an existing item. Testimonial items can be reused across pages. Add up to 4 items. Each item has:
    • Block Description: A label for the Testimonial for administrative use only.
    • Name: The attribution of the testimonial. May get trimmed on mobile after about 20 characters.
    • Testimonial text: The body of the testimonial. May get trimmed on mobile after about 70 characters.
    • Image: An image related to the testimonial. Will use a placeholder image if not used.
    • After filling in the fields for an item, click Create custom block to save the item.

Then save the block:

4.31 - Webform

Embed an existing webform on a page.

Screenshot of the Webform component with block labels


Designs:

  • Design System
  • Pre-release: [Mobile](../../../../../../assets/img/designs/lb/Webforms Mobile.png) | [Desktop](../../../../../../assets/img/designs/lb/Webforms Desktop.png)

To use the block:

  • Click the Layout tab at the top of your page
  • Scroll to the location on the page where you want to add a block
  • Click Add block
  • In the sidebar, click Create custom block
  • Choose the block to add.

Fill in the content fields:

  • Title (required): This title is for administrative purposes only and is never displayed, even if “Display Title” is checked.

  • Form title: This title is displayed as a heading above the embedded webform.

  • Form subtitle: This subtitle is displayed below the heading.

  • Webform (required): Choose the Webform to embed on the page from the list of existing forms.

    • Expand Webform settings to access additional webform configuration options. You can use these settings to open, close, or schedule the form.

Then save the block:

5 - Paragraphs

Embed text, images, blocks, and interactive components using Paragraphs, the layout-building component of YMCA Website Services.

YMCA Website Services content editors use Paragraphs to create flexible and unique layouts for their pages. Each Paragraph is a self-contained section of content with its own styling, functionality, and fields. Paragraphs are based on the Paragraphs Drupal module.

You can add a Paragraph to a page when you see the Paragraphs field. These Paragraphs are typically placed within one of the four main “Areas” of a content type:

  • Header Area - Used for adding images, page titles, and other introductory content.
  • Content Area - The primary area for your main content.
  • Sidebar Area - Used for related information, such as promotions or links to other content.
  • Bottom Area - Often used for calls to action or other “anchoring” elements at the end of the page.

Choose a paragraph by selecting an area and picking an option from the dropdown.

Not all content types use all four areas. Some content types might use fields directly to populate the Sidebar Area, while others might use an Image field instead of a dedicated Header Area.

Two Ways to Add Paragraphs

Content editors can add Paragraphs to a page using either the inline editor or the admin portal.

Admin Portal

To add a Paragraph to an Area:

  1. Open the desired Area.
  2. Select a Paragraph type from the dropdown. The button is typically labeled “Add [First Paragraph in List]”.
  3. Helper text is usually provided above the dropdown.

The video below provides an example of the functionality of Paragraphs; however, the specific layouts demonstrated are not YMCA Website Services layouts.

Inline Editor

If you’ve upgraded to YMCA Website Services 2.4 or later, you can add a Paragraph from the front-end:

  1. Click the Plus icon in the desired region.
  2. Select a Paragraph type from the pop-up window.

Note: Not all Paragraph types are available for inline editing yet. More Paragraphs will be added to the inline content editor in future releases.

Rearranging Paragraphs

If the initial layout doesn’t meet your needs, you can easily rearrange sections:

  1. Click the cross icon to the left of the Paragraph.
  2. Drag the Paragraph to its new position.

Just drag your paragraphs to rearrange them

Editing Paragraphs

To correct a typo or update content, click the edit button next to the Paragraph. This will open the Paragraph for editing.

Deleting Paragraphs

To remove an unwanted section, click the remove option from the dropdown menu next to “Edit.”

Choosing the Right Paragraph Type

YMCA Website Services offers over 50 Paragraph types out of the box, and customizations by your partner might add even more. This documentation focuses on the standard Paragraph types available with YMCA Website Services and how to use them.

5.1 - 1 Column

Embeds a single column of content into a container, with an option to embed reusable content.

Examples

Rose - Without Block

rose–landing-page_1-column-no-block

Rose - With Block

rose–landing-page__1-column-with-block

Carnation - With Custom Block

carnation–landing-page_1-column-with-block|690x186


Areas 1 Column Should Be Used

  • Content Area
  • Sidebar Area
  • Bottom Area

How to Use 1 Column

After selecting “1 Column” from the paragraphs dropdown, you will notice the following fields:

  • Paragraph title (optional)
  • Checkbox (optional, for horizontal rules)
  • Description (required)

Details on each field are below.

  • Paragraph title adds an all-caps heading at the top of your paragraph. This is optional.
  • The checkbox adds dual horizontal rules. Check this only if you’re planning on using the paragraph title.
  • Description (required) - Adds simple text through a text editor. Font color defaults to purple in Lily and Rose.

Custom Block Feature

While the paragraph can be used only with the fields above, 1 column also supports custom blocks of content. For this paragraph type, it’s recommended that users stick with “Simple block” types.

When adding your custom block, use the font-awesome icon class instead of the custom icon image field. In Carnation, the image option tends to get too large.

Learn more about custom blocks ⇒

Read about the Font Awesome icon library ⇒

Advanced

The purple font color for paragraph descriptions can be overridden in Lily and Rose by targeting .paragraph-1c-wrapper .field-prgf-1c-description.

Example:

.paragraph-1c-wrapper .field-prgf-1c-description {
  color: inherit;
}

Content editors who want to edit this CSS can ask their developers to install the CSS Editor module and edit their styles directly from the User Interface.

Content Types that Support This Paragraph

5.2 - 2 Columns

Add two equal-width, reusable blocks of content, side-by-side. The left side stacks on top of the right side for mobile. In the Lily theme, the left column is 8 units wide and the right column is 4 units wide.

Examples

Carnation

carnation–landing-page__2-columns

Lily

lily–landing-page__2-columns

Rose

rose–landing-page__2-columns


Areas it Can Be Used

  • Content Area
  • Bottom Area

How it Works

  • Select “Two Columns” from the paragraphs dropdown.
  • Insert a custom block into the Left and Right Column.

Learn more about custom blocks ⇒

Unlike similar paragraphs (such as 1 column paragraph and Grid Content), there is no title field. To add a Title, insert a Simple Content paragraph above your 2 columns paragraph.


There is an optional checkbox to display a horizontal rule above the two columns.

landing-page__2-columns-line-above


If you want to add multiple rows of content with 2 columns, add a new 2 columns paragraph for each set of two you want (e.g., if you have five blocks of content, add three 2 columns paragraphs).

landing-page__2-columns-multi-row


Content Types That Support this Paragraph

5.3 - 3 Columns

Add three equal-width, reusable blocks of content side-by-side. Columns stack top to bottom on mobile devices for optimal viewing.

Examples

The 3 Columns paragraph provides a way to display content in a visually appealing and organized manner. Here are a few examples of how it looks in different themes:

Carnation

carnation–landing-page__3-columns

Lily

lily–landing-page__3-columns

Rose

rose–landing-page__3-columns


Areas It Can Be Used

The 3 Columns paragraph can be used in the following areas:

  • Content Area
  • Bottom Area

How It Works

The 3 Columns paragraph allows you to create a row with three custom blocks of content. Here’s how to use it:

landing-page__3-columns-dropdown

  1. Select 3 Columns from the Paragraphs dropdown.

  2. Title: Add an optional title. The title will appear in all caps at the top of the 3 columns section.

  3. Add custom blocks to the Left Column, Center Column, and Right Column fields.

    Learn more about custom blocks ⇒

landing-page__3-columns-options

If you want to add multiple rows of content with 3 columns, add a new 3 Columns paragraph for each set of three blocks you want to display.


Content Types That Support This Paragraph

The 3 Columns paragraph is available for use in the following content types:

5.4 - 4 Columns

Add four equal-width, reusable blocks of content, side-by-side. Columns stack left to right on mobile.

Examples

Important: This paragraph does not work out of the box in the Carnation theme. See the “Advanced” section for theme-specific considerations.

Content editors can use Grid Content or Featured Content paragraphs to achieve a similar layout.

Lily

lily–landing-page__4-columns

Rose

rose–landing-page__4-columns


Areas it Can Be Used

  • Content Area
  • Bottom Area

How it Works

  • Select 4 Columns from the Paragraphs dropdown.

  • Title: Optional large, all-caps title displayed at the top of the paragraph.

  • Line Above: Adds a horizontal rule above each column.

    landing-page__line-above

  • Description: A subheader/section description displayed below the title and above the columns. Uses the text editor for styling.

  • Add custom blocks to the First Column, Second Column, Third Column, and Fourth Column fields.

    4 column paragraph options

    Learn more about custom blocks ⇒

Adding Headers to Individual Blocks

Out of the box, the Title field in each custom block renders as plain text. To work around this, add your headers directly within the text editor of the custom block.

See the Advanced section for details about how to address this with CSS.

If you want to add multiple rows of content with 4 columns, add a new 4 Columns paragraph for each row. For example, if you have seven blocks of content, add two 4 Columns paragraphs (the second one will only have 3 columns populated).

Learn more about the link field ⇒

Advanced

Title Field Styling

In all three themes currently in YMCA Website Services (Lily, Rose and Carnation), the Title field’s default styling may appear similar to the body copy. To override this and apply a more prominent style, target the .field-sb-title CSS class in your theme’s stylesheet.

Carnation: Columns Stacking on Desktop

By default, the 4 Columns paragraph may not render correctly in the Carnation theme, with columns stacking vertically instead of horizontally on desktop. To fix this, the .wrapper containing the column elements needs to be changed to .row using CSS.

carnation–landing-page__4-columns

Content Types That Support this Paragraph

5.5 - Activity Finder

Embed the Activity Finder program search experience on your website, which helps users pre-filter the activities they want to search for.

A screenshot of the Activity Finder block.
A screenshot showing the Activity Finder block and a detail popup.

See a live example of Activity Finder in our sandbox site.

How it Works

This paragraph type embeds a block. The specific block used determines the functionality and appearance of the Activity Finder. Multiple Activity Finder block types exist, including:

  • Activity Finder Block: (deprecated) Original Activity Finder
  • Activity Finder Search Block: (deprecated)
  • Activity Finder v4: Latest Activity Finder, uses Vue.js.

This paragraph type requires an integration into a CRM. See Program Activity Framework for a list of existing integrations. Any other CRM will require custom developer work.

How you use these paragraphs will depend on how your Association has structured its program data on the CRM and on how you decide to get people to program results.

To start, add the Activity Finder Paragraph or Block to a page.

See Activity Finder Block Configuration for more details.

5.6 - All Amenities

Displays a list of branches with amenities.

Warning: This paragraph is deprecated and provides similar functionality to the “Location filter by amenities” paragraph. It is no longer recommended for use by the YMCA Website Services Core Team. Consider using the “Location filter by amenities” paragraph instead.

What It Does:

Shows a list of branches with icons indicating the amenities available at each branch. Includes a checkbox field to filter branches by amenities. This is implemented via the lb_branch_amenities_blocks module.

Areas Where It Can Be Used:

  • Content Area
  • Bottom Area

How to Use It

After selecting “All Amenities” from the paragraphs list, you can change the title that displays above the search checkboxes by entering text in the Title field.

Styling can differ greatly based on the theme. Use of this paragraph in Rose is not recommended.

Supported Content Types

Related Paragraphs

  • Location filter by amenities
  • Locations

5.7 - Banner

Add large, full width images to the top of your page, along with a title, optional description and optional link.

Landing page in Carnation on desktop

How to Use a Banner

To add a banner, select Add Banner from the paragraphs dropdown in the Header Area of your content. Then, fill out the following fields:

Banner paragraph fields

  • Title (required): This field adds a headline to your banner. The placement of the title will depend on your theme and customization, but it will typically appear as large, all-caps text.

  • Color (required): The background color for your banner. You typically will not see this color in Lily or Carnation, but in Rose, it will display behind your text. Choose from the list of available options. This references the Color vocabulary.

  • Description (optional): Displays beneath your Title. You have the option to style your text using the text editor, but it’s not as consistent as other places where you typically see the editor.

    Recommendation: Just enter basic text and don’t do anything beyond basic styling, such as bold or underline.

  • Image:

    Banner paragraph image selection

    Use the image library to embed an image. You can upload a new image from your computer or reuse an existing image from your library. The image field is optional, but recommended.

    For recommended image sizes for your YMCA Website Services site, talk to your agency partner.

    How to add/edit images >

  • Link/Button: Add a URL and a link to the button on the page. The button on your banner cannot be styled without custom CSS/code. [Using link/button fields ⇒](../../text-editor/building-buttons)

    Note: If you know a little CSS, you can have your agency partner [install the CSS Editor]( https://www.drupal.org/project/css_editor) module, and you can target .btn.banner-btn to change the default button.

Content Types that Support Banner

5.8 - Blog Posts Listing

Add a section with teaser cards that link to blog posts. Includes optional dropdown search fields.

Examples

Carnation

Carnation blog post listing

Lily

Lily blog post listing

Rose

Rose blog post listing

Areas it Should Be Used

  • Content Area
  • Bottom Area

How to Use Blog Posts Listing

  1. From the paragraphs dropdown, add Blog Posts Listing.
  2. Enter a header title for the section in the text field.
  3. Hit Save.

Blog posts listing admin fields

This paragraph allows you to display a listing of blog posts with optional search and filtering capabilities. The appearance and available options might vary based on the theme (Carnation, Lily, Rose).

Content Types that Support Blog Posts Listing

Related/Alternative Paragraphs

5.9 - Camp Menu

Add a horizontal menu beneath the Header Area on a camp page.

Examples

Carnation

Carnation camp menu

Lily

Lily camp menu

Rose

Rose camp menu


Areas It Can Be Used

  • Header Area

How It Should Be Used

Before adding the paragraph, create the menu you want to use. You can create a new menu at Admin > Structure > Menu > Add menu (/admin/structure/menu/add).

After creating the menu, add links to it by navigating to Admin > Structure > Menu > [Your Menu] > Add link (/admin/structure/menu/manage/[your-menu-name]/add).

Camp menu paragraph links

Learn More About Link Fields ⇒

To add additional links to your menu, click on the Add Another Item button.

Camp menu add another item button

Once you’re done adding your menu links, scroll down to the Header Area and add the Camp Menu block via Layout Builder. Click Save.

Note - While it is technically possible to position the Camp Menu above your banner image, it is not recommended. The Camp Menu has layout issues on desktop in the Carnation theme, and in all themes it can be hard to distinguish the Camp Menu from your main navigation.


Mobile Considerations for Camp Menu

When a user views your Camp Menu on mobile, the menu doesn’t collapse; it merely shrinks. Menu items either disappear or wrap onto a new line if they do not fit the space.

It’s recommended you limit your menu items to no more than 3 or 4 unless you opt to customize the styling.

Carnation camp menu mobile display


Content Types That Support this Paragraph

5.10 - Categories Listing

Embed horizontal cards for program subcategories on a programs page.

Examples

Carnation

Desktop

Categories listing in Carnation on desktop

Mobile

Categories listing in Carnation on mobile

Lily

Categories listing in Lily

Rose

Categories listing in Rose


Areas It Should Be Used

  • Content Area

How To Use It

  1. On a Programs page, go to the content area and click to open it.

  2. Select Categories listing.

    Categories list admin

This paragraph can only be used on programs pages that have subcategories tied to them. If a program has no subcategories tied to it or if it’s used on another content type, it will not work.

Learn more about programs content type ⇒

Learn more about program subcategories content type ⇒


Content Types that Support Categories Listing

5.11 - Code

Unformatted, unrestricted text that supports any HTML tag and can be embedded anywhere. Great for embedding iframes, third-party scripts, and other custom HTML.

Examples

YMCA of Central Kentucky / Daxko Schedules iframe

y-example–code__daxko-iframe

YMCA of Middle Tennessee / GroupEx Pro Script

y-example–code__gxp-iframe

Areas It Should Be Used

  • Content Area
  • Sidebar Area
  • Bottom Area

How to Use Code

  • Select “Add Code” from the paragraphs dropdown.

    admin–code__paragraph-dropdown

  • You will see two options: “Add Custom Block” to create a new code block, or an autocomplete field to search for and embed an existing custom block.

  • To search for an existing custom block, type the name of the block in the autocomplete field and click on an option that appears to embed that block.

  • To add a new block, click the “Add New Custom Block” button.

    Learn more about blocks ⇒

  • When you add your block, you will see a blank, unformatted text field. Type your HTML text into this field.

    admin–code__block

    Important Considerations When Using Code Blocks:

    • To use code, you must add HTML tags.
    • Hard returns will be ignored, and text will be printed out in one long string. Use HTML line breaks (<br>) or paragraph tags (<p>) to format your text.
    • Code will not highlight or color-code your HTML. To display code snippets with syntax highlighting, consider using a different paragraph type or a dedicated code highlighting library.

    There is an option to change to a “Full HTML” text editor within the block configuration, which will allow you to make use of the default text editor. However, using this may strip “faulty” or disallowed HTML out of your block and may prevent you from using certain tags. Exercise caution when using the “Full HTML” editor for code blocks.

  • Once you’re done, click the button that either says Add custom block or Update custom block, depending on the option you had selected at first.


Content Types that Support Code

5.12 - Date Block

Schedule different sections to show or hide on your pages based on date and time.

Areas Where Date Blocks Can Be Used

  • Header Area
  • Content Area
  • Sidebar Area
  • Bottom Area

How to Use Date Blocks

  1. In the desired content area, choose Add Date Block from the list of paragraphs in the dropdown menu.
  2. You will then see two options: Add New Custom Block or Add Existing Custom Block.

Add New Custom Block

If you are using Date Block for the first time or want to create a new, unique date block:

  1. Choose the Add New Custom Block option.

    Adding a new date block

  2. Enter a descriptive Label for your date block in the Block description field.

    • This label is for administrative purposes and will help you identify the block when reusing it on multiple pages. It is not displayed on the front end of the site.
  3. Enter a Start Date and End Date for your block.

    • The content within the date block will only be visible between these dates, similar to how content types can be scheduled for publishing and unpublishing.

    Date block start and end dates

  4. Add paragraphs to the designated areas to display content Before, During, and After your scheduled dates.

    • Use the corresponding fields and add paragraphs as you normally would.

    Adding content to the date block

  5. If you do not want content to display before, during, or after your specified time period, leave the corresponding field blank.

  6. Click Create custom block to save your date block.


Add Existing Custom Block

To reuse a date block that you have previously created:

  1. Click the Add Existing Custom Block button.

  2. Enter the Label of your block into the autocomplete field.

  3. Select your block from the options to add it to the content area.

    Adding existing content to the date block


Editing a Date Block

To edit a Date Block:

  1. Click Edit next to the paragraph where the Date Block is located.
  2. Click the second Edit button that appears next to the name of your date block.
  3. Make the desired changes within the block.
  4. Click Update Custom Block to save your changes.

Any changes made to a date block will be applied to every page where that block has been added.

Learn more about custom blocks ⇒


Content Types That Support Date Block

5.13 - Embedded GroupEx Pro Schedule

Embed the out-of-box GroupEx Pro schedule script on a page with a single click.

Example

An example of the GXP embed paragraph

Areas it Should Be Used

  • Content Area

How it Works

Prerequisite: Requires integration with third-party tool GroupEx Pro.

  • To integrate your GroupEx Pro account:

    1. Go to the admin toolbar.

      Navigating to the GroupEx Pro account settings

    2. Navigate to: YMCA Website Services > Integrations > GroupEx Pro > Group Ex Pro Account Settings.

    3. Add your account number to the designated field.

      Setting the GroupEx Pro account

  • For information on where to find your GroupEx Pro account number, visit groupexpro.com.

Adding the Paragraph to Your Page

  1. Select Embedded GroupEx Pro Schedule from the paragraphs dropdown.
  2. Hit save.

The GXP embed paragraph admin

Content Types That Support Embedded GroupEx Pro Schedule

5.14 - FAQ

Create an easy-to-read FAQ or policy section. FAQ adds an accordion tab that expands when users click on it.

Example

An example of the FAQ paragraph


Where it Can Be Used

  • Content Area
  • Sidebar Area

How it Works

  • Select FAQ from the paragraph dropdown

    The FAQ in the Paragraphs dropdown

  • Add a title or a Question into the Question field. This will show as the title of your section. This will be the title of the accordion.

  • Use the text editor to provide an answer/expanded section of content that is revealed when the user clicks on the section title.

    FAQ paragraph fields

    Learn how to use the text editor ⇒


Add Another Section

To add another Question and Answer, click the Add another item button at the bottom of your paragraph.

The “add another” button


Structured Data for SEO

If your FAQ contains Frequently Asked Questions, consider enabling the “FAQ?” option within the paragraph to output them as structured data. This can improve your site’s visibility in search engine results. Ensure the content contains individual sets of questions and answers.

Review Google’s Content guidelines for FAQs for more information.

Only one FAQ paragraph should be added to a page to ensure correct structured data output.

Content Types that Support this Paragraph

5.15 - Featured Blog Posts

Display a curated list of blog posts on a page. This paragraph allows you to hand-pick the blog posts you want to highlight.

Examples

This paragraph is rendered differently depending on the theme. Here are some examples:

Carnation

Desktop

Featured blog posts in Carnation on desktop

Mobile

Featured blog posts in Carnation on mobile

Lily

Desktop

Featured blog posts in Lily on desktop

Mobile

Featured blog posts in Lily on mobile

Rose

Desktop

Featured blog posts in Rose on desktop

Mobile

Featured blog posts in Rose on mobile

Usage

When to Use

The Featured Blog Posts paragraph is ideal for:

  • Highlighting specific blog posts that are particularly relevant.
  • Creating a curated resource page of top blog content.
  • Drawing attention to older blog posts that are still valuable.

Areas It Can Be Used

This paragraph can be used in the following areas:

  • Content Area
  • Bottom Area

Configuration

  1. Add a Featured Blog Posts paragraph to the desired content type.
  2. In the Headline field, add a title for the featured blog posts section. This is optional; if left blank, a default title of “Latest news & Updates” will be used.
  3. In the autocomplete field, begin typing the name of the blog post you want to feature.
  4. Select the desired blog post from the suggestions that appear.
  5. Repeat steps 3 and 4 to add additional blog posts.
  6. To add more blog posts, click the Add another item button.
  7. Click the blue Save button at the bottom of the page to save your changes.

Featured blog posts admin

Available Fields

FieldMachine NameRequiredDescription
Headlinefield_prgf_headlineNoTitle of the featured blog posts section.
Blog Postsfield_fblog_postsYesReferences to the blog posts you want to feature. Supports multiple blog posts.

Supported Content Types

The “Featured Blog Posts” paragraph can be added to the following content types:

5.16 - Featured Content

Add a section of simple columns onto a page with an optional call-to-action button on the bottom, an optional title, and optional description.

Examples

Carnation

Featured content in Carnation

Lily

Featured content in Lily

Rose

Featured content in Rose


Areas It Can Be Used

  • Content Area
  • Bottom Area

*Note: The styling for Featured Content differs greatly by theme. This documentation notes the differences in styling between each theme.*

Select Add featured content from the paragraphs dropdown. Add an optional headline in the headline field above.

  • Lily/Rose: The headline left-aligns by default.
  • Carnation: The headline center-aligns in Carnation.

Next, add an optional Description using the text editor. Avoid changing your text alignment for your description.

Add an optional link in the link field.

Learn how to use a Link field ⇒


Select the number of columns you would like to have in each row using the style dropdown.

  • Carnation: Due to the card styling in Carnation, this field does not limit the number of cards that will display in a single row. A recommended workaround is to add multiple rows of featured content or use the Grid Content paragraph type.

Advanced users: You can clear the confusion for content editors in Carnation by making the style field an optional field and hiding it in the form display in the UI.

Additionally, you can limit the number of columns to four in the Featured Content’s paragraph settings.

Finally, add content for each column of content using the text editor. To add additional columns click the “Add Another Item” button.

Featured content admin fields

  • Lily/Rose: Adding more columns than what you selected in the “Style” dropdown will create additional rows. Aligning each column’s content is not recommended unless you are not using any other field.

5.17 - Featured News Posts

Display a curated list of news posts on a page.

Examples

Carnation

Desktop

Featured News Posts in Carnation on desktop

Mobile

Featured News Posts in Carnation on mobile

Rose

Featured News Posts in Rose


Areas It Can Be Used

  • Content Area
  • Bottom Area

  1. Add a Headline for this section of content in the Title field. This title will appear above the featured news posts.
  2. In the News Posts field, begin typing the name of the news post you want to feature. An autocomplete list will appear.
  3. Click on the desired news post from the autocomplete results.
  4. To add more news posts, click the Add another item button.
  5. Click the Save button to save your changes.

Featured News Posts admin fields

5.18 - Gallery

Embed a carousel or slider of images onto a page.

The gallery can play on a loop, and users can click back and forth using the arrows.

You can have a gallery with a simple title. You can also add a description below the headline and/or a call to action button.

Examples

Carnation

Desktop

Gallery in Carnation on desktop

Mobile

Gallery in Carnation on mobile

Lily

Desktop

Gallery in Lily on desktop

Mobile

Gallery in Lily on mobile

Rose

Desktop

Gallery in Rose on desktop


Areas It Can Be Used

  • Header Area
  • Content Area
  • Bottom Area

  1. Once you’ve selected a gallery from the paragraphs dropdown, enter a Headline for the gallery.

  2. Next, if you would like to add a subhead or description below your title, add it below the headline in the Description field.

    Only use basic text formatting on your description, such as bold or italicized text. Avoid using headlines, bullets, or numbered lists in this field.

    Learn more about the text editor ⇒

  3. Optionally, you can add a Link in the link field.

    The Gallery link field

    How link fields work in YMCA Website Services ⇒

  4. Below the link field, you will add your images. Click on the Add images button to select the pictures for your gallery. You can upload an image to the media library, or select multiple images from your library.

  5. Once you’ve uploaded/selected your images, click that blue Add images button at the bottom.

  6. To order your images, hover your mouse over the thumbnail in the “Images” section, and then drag them to reorder. You will see a cross-arrow icon when you’re dragging them around, similar to what you see when you reorder paragraphs.

    Reorder images via drag and drop

  7. To delete a photo from the gallery, click the delete button below the image.

  8. Hit Save at the bottom of the image to save it.


5.19 - Grid Content

Embed one or more rows of up to four columns of content - each with a title, icon, description, and link.

Examples

Carnation

Grid content in Carnation

Lily

Grid content in Lily

Rose

Grid content in Rose


Areas It Should Be Used

  • Content Area
  • Bottom Area

How to Use Grid Content

Note on Grid Content: This paragraph’s style will vary greatly depending on your theme. The docs outline how to use the fields.

Select grid content from the list of paragraphs

First, choose Grid Content from the Paragraphs dropdown. You will then see a dropdown with options under Style, determining the number of items per row:

  • 2 items per row
  • 3 items per row
  • 4 items per row

Select a style to choose how many sections/cards you want to display in a row; the more items per row, the narrower they will be.

Examples

2 Items Per Row

Grid content admin with 2 items selected

Grid content example with two items

3 Items Per Row

Grid content admin with 3 items selected
Grid content example with 3 items selected

Next, you will see a button that says Add Grid Columns. Click this button to add individual sections/cards.

For each item you add, you will have the following fields:

Note: If you add more items than your selected style, you will create a new row. For example:

  • 2 items per row style, 3 items added -> two rows of content
  • 3 items per row style, 5 items added -> two rows of content
  • 4 items per row style, 9 items added -> three rows of content

Content Types that Support Grid Content

5.20 - Latest Blog Posts

Embed a listing of blog posts with optional filtering by Branch or Camp.

These paragraphs embed a listing of blog posts, sorted by the most recent, in a card design. They utilize a dynamic paragraph that renders blog posts.

  • Latest Blog Posts: Shows the most recent blog posts across your entire site.
  • Latest Blog Posts (Branch): Filters the most recent blog posts by the branch the paragraph is embedded on. For example, if placed on a “Downtown YMCA” page, only “Downtown YMCA” blog posts will be displayed. If placed on a non-branch page, only the headline will be shown.
  • Latest Blog Posts (Camp): Filters blog posts by the camp the paragraph is embedded on. For example, if placed on a “Camp Widjiwagan” page, only “Camp Widjiwagan YMCA” blog posts will be displayed. If placed on a non-camp page, only the headline will be shown.

Areas it Should Be Used

  • Content Area
  • Bottom Area

How to Use Latest Blog Posts

  1. From the paragraphs dropdown, add Latest Blog Posts, Latest Blog Posts (Branch), or Latest Blog Posts (Camp).
  2. Enter a header title for the section in the text field.
  3. Save the paragraph.

Unlike the related Blog Posts Listing, this paragraph does not include filters for searching blog posts.

Content Types that Support Latest Blog Posts

Content Types that Support Latest Blog Posts (Branch)

Content Types that Support Latest Blog Posts (Camp)

Related/Alternative Paragraphs

5.21 - Latest News Posts

Embed a listing of news posts with optional filtering by Camp/Branch.

These paragraphs embed listings of news posts, sorted by the most recent, in a row/listing design. There are three variations:

  • Latest News Posts: Displays all the most recent news posts across your entire site.
  • Latest News Posts (Branch): Filters news posts by the branch on which the paragraph is embedded. For example, if placed on a “Downtown YMCA” page, only “Downtown YMCA” news posts will be shown. If placed on a non-branch page, only the headline will be displayed.
  • Latest News Posts (Camp): Filters news posts by the camp on which the paragraph is embedded. For example, if placed on a “Camp Widjiwagan” page, only “Camp Widjiwagan YMCA” news posts will be shown. If placed on a non-camp page, only the headline will be displayed.

Examples

Carnation

Latest news posts in Carnation

Rose

Latest news posts in Rose


Areas to Use

  • Content Area
  • Bottom Area

How to Use Latest News Posts

From the paragraphs dropdown, add the desired “Latest News Posts” paragraph type. Enter a header title for the section in the text field, and save.

Latest news posts admin fields


Content Types that Support Latest News Posts

Content Types that Support Latest News Posts (Branch)

Content Types that Support Latest News Posts (Camp)

Related/Alternative Paragraphs

5.22 - Limited Time Offer

Add an anchoring element to the bottom of a page, similar to a small banner. Best for promotional offers.

Example

The limited time offer paragraph

Areas Where It Can Be Used

  • Bottom Area

How to Use Limited Time Offer

Go to the Bottom Area and select Limited Time Offer. Fill in the Title field for your main headline, and if you would like to add a subheader below the title field, use the Subtitle field.

To add a button, use the Link field.

Fields

NameMachine nameRequiredDescription
Titlefield_lto_titleNoEnter title for the Limited Time Offer.
Subtitlefield_lto_subtitleNoEnter subtitle for Limited time offer.
Linkfield_lto_linkNoAdd a link for the Limited Time Offer button.

Content Types that Support Limited Time Offer

5.23 - Membership Calculator Paragraph

The Membership Calculator paragraph adds an interactive “membership wizard” to a YMCA Website Services site, allowing users to explore membership options and pricing.

See Membership Calculator and Membership Content Type for more information about related features.

Areas Where It Can Be Used

The Membership Calculator paragraph can be added to these areas of a content page:

  • Content Area
  • Bottom Area

How to Use the Membership Calculator Paragraph

  1. When editing a page, locate the paragraphs dropdown within the desired area (Content or Bottom).
  2. Select Membership Calculator from the dropdown.
  3. No additional configuration is typically needed on the page itself. The calculator pulls its data from configured Membership Content Type items.

5.24 - News Posts Listing

Add a filterable section of news posts to a page.

Areas it Should Be Used

  • Content Area
  • Bottom Area

How to Use News Posts

The news posts listing admin

From the paragraphs dropdown, add the News Posts Listing. Enter a header title for the section in the text field and hit Save.

Note: Advanced users can make changes to the exposed fields using the Views module and the paragraphs settings. This requires advanced knowledge of Drupal’s Views and Paragraphs modules.

Content Types that Support News Posts

It is generally not recommended to use the News Post Listing on Branch, Camp or Facility pages due to the availability of the Latest News Posts/(Camp)/(Branch) paragraph.

Related/Alternative Paragraphs

5.25 - Promo Card

Add a small individual card to the sidebar of a page with evergreen promotional content, such as links to join pages.

Examples

The Promo Card comes in three default color variations: Carnation, Lily and Rose.

Carnation

Promo card in Carnation

Lily

Promo card in Lily

Rose

Promo card in Rose


Areas It Should be Used

  • Sidebar Area

How to Use the Promo Card

In your sidebar area, select Add Promo Card from the paragraphs list.

The Promo Card has the following fields:

  • Title: (Optional) A large title that appears at the top of the card. (Machine name: field_prgf_title)

  • Headline: (Required) A smaller headline that appears below the title. (Machine name: field_prgf_headline)

  • Description: (Optional) A WYSIWYG text editor field for entering content. Standard text editor options are available. (Machine name: field_prgf_description)

    Learn how to use the Text Editor ⇒

  • Link: (Optional) A link field for adding a call to action. (Machine name: field_prgf_link)

    Learn how to use link fields ⇒


Content Types that Support Promo Card

5.26 - Repeat Schedules

Display programs in a schedule view with an optional PDF export.

Sometimes called “Group Exercise” or “Group Schedules”, the Repeat Schedules block provides a similar view to Activity Finder, but focused more on recurring, often drop-in classes.

See Group Schedules for more details, including available block configuration options and a description of the front-end display.

Examples

On the sandbox site.

The Repeat Schedules Paragraph in the Carnation theme.

How to use

To use the Repeat Schedules paragraph:

What fields are where

See Group Schedules Front-end.

5.27 - Secondary Description and Sidebar

Add a bottom area element with two columns of reusable content for anchoring a page.

Warning: This element does not work properly in the Carnation theme and is considered deprecated. It may be removed in a future update.

Overview

The Secondary Description and Sidebar paragraph type provides a two-column layout in the bottom area of a page. It allows you to insert reusable content blocks into a left and right column.

Fields

NameMachine NameRequiredDescription
Left Columnfield_prgf_left_column_blockNoBlock reference to: Basic Block, Code Block, Date block or Simple Block. Create a new one or pick up an existed block. Content placed here typically serves as a secondary description for the page.
Right Columnfield_prgf_right_column_blockNoBlock reference to: Basic Block, Code Block, Date block or Simple Block. Create a new one or pick up an existed block. Content placed here typically serves as a sidebar with related information or calls to action.

Example

Carnation

The secondary description and sidebar in Carnation

Lily

The secondary description and sidebar in Lily

Rose

The secondary description and sidebar in Rose

Areas it Should Be Used

  • Bottom Area

How to Use Secondary Description and Sidebar

  1. Insert the paragraph from the dropdown menu into the Bottom Area of your page.

    Secondary description with sidebar admin fields

  2. You will see two fields: Left Column and Right Column.

  3. Within each column, you can select from one of four different custom block types:

    • Basic Block
    • Code Block
    • Date Block
    • Simple Block
  4. You can either add a new custom block or reuse an existing block.

Learn how to use custom blocks >

Note: When reusing blocks in this paragraph type, the icon field may not render correctly. Font Awesome icons might display as plain text. If you need icons, consider using inline images.

5.28 - Simple Content

Add a section of basic text onto a page.

Areas It Should Be Used

  • Content Area
  • Sidebar Area
  • Bottom Area

How to Use Simple Content

The Simple Content paragraph allows you to add and format text using the WYSIWYG editor. This provides a flexible way to add basic content to your pages.

  1. From the paragraphs dropdown within the desired area (Content, Sidebar, or Bottom), select Add Simple Content.

  2. A text editor will appear. You can style your text using the editor’s toolbar. This toolbar typically includes options for:

    • Basic Formatting: Bold, Italics, Underline, Strikethrough
    • Alignment: Left, Center, Right, Justify
    • Lists: Bulleted and Numbered
    • Headings: H2, H3, H4, H5, H6
    • Links: Adding and editing hyperlinks
    • Other: Blockquotes, source editing, special characters and more.

    Refer to the Text Editor documentation for details on using the editor toolbar.

Note: In some themes, stacking multiple Simple Content paragraphs directly on top of one another may not provide enough visual separation.

To address this, consider adding:

  • A pair of hard returns (pressing the Enter key twice) at the bottom of your text.
  • A horizontal rule (using the horizontal line option in the text editor toolbar) to visually divide the sections.

All Content Types Support Simple Content ⇒

5.29 - Small Banner

A wide, short image with fields for a title, background color, description, and image.

Examples

Carnation

Desktop

Small banner in Carnation on desktop

Mobile

Small banner in Carnation on mobile

Lily

Desktop

Small banner in Lily on desktop

Mobile

Small banner in Lily on mobile

Rose

Desktop

Small banner in Rose on desktop

Mobile

Small banner in Rose on mobile


Areas It Can Be Used

  • Header Area
  • Content Area (1 column only)
  • Bottom Area

How to Use a Small Banner

  1. Select Add Small Banner from the paragraphs dropdown.
  2. Fill out the following fields:
  • Title (required): This field adds a headline to your banner. The placement of the title depends on your theme and customization, but it typically appears as large, all-caps text. The character limit for this field is 255.

  • Color (required): The background color for your banner. In Lily and Rose, this background color displays behind your title and description.

    In Carnation, you will not see the background color unless you add an image.

  • Description (optional): Displays beneath your Title. You can style your text using the text editor; however, it’s not as consistent as other places where you typically see the editor.

  • Image (optional, but recommended): Use the image library to embed an image. You can upload a new image from your computer or reuse an existing image from your library. For best results, consult with your agency partner regarding recommended image sizes for your YMCA Website Services site.

    Note: Image Upload does not work in Rose.

    Note: Unlike the Banner, Small Banners don’t have a specific Link field for buttons without customization.

    To add a button to a small banner, use the Text Editor button tool to create a button in your description field.


Content Types that Support Small Banner

5.30 - Social Share Icons

Sharing content on social media.

AddThis services have been deprecated as of 5/31/23, and this block ceased functioning on that date.

This block is no longer functional due to the discontinuation of AddThis services.

See Using AddToAny for a recommended replacement and other options for sharing content.

For integrating social media feeds, also consider the Social Feed Fetcher module.

5.31 - Story Card

Add a simple card to the sidebar with a title, headline, and call to action.

The Story Card Paragraph works best with the Lily and Rose themes. It is available, but not themed with a border in Carnation.

Areas it Can Be Used

  • Sidebar Area

How to Use It

  1. In the sidebar area of a content page, select Story Card.
  2. Add a Title and Headline. The Title will be larger than the Headline and display above it.
  3. Add your link in the Link field. Unlike most paragraph types, the link field does not create a button or standalone link; the entire card becomes the link. The link text is required. The link will not stand out like a typical call to action.

To work around this, add a > or another special character to indicate to users that they are clicking on a link.

Recommendations for use with Carnation

While this component is available to use in Carnation, it is not themed with a border as in Lily or Rose. The best practice is to use this paragraph sparingly and only in the following content types:

  • Facility
  • Event

In Carnation, the Story Card works best inside the News Post, Event, and Blog Post paragraphs.

Advanced

Note: In the headline area on Lily and Rose, a large quotation mark will display to the left of your headline. This can be easily disabled using the following CSS:

.story-card .quote svg { display: none; }

Content Types That Support Story Card

5.32 - Teaser

Add a wide feature with an image, text, and a call to action.

Overview

The Teaser paragraph is a versatile component designed to highlight key content. It typically includes an image, a title, a brief description, and a call-to-action link. It can be used to promote specific programs, services, or events.

Examples

The appearance of the Teaser paragraph can vary depending on the theme:

Carnation

The teaser in Carnation

Lily

The teaser in Lily

Rose

The teaser in Rose

Areas It Should Be Used

  • Content area

How to Use the Teaser Paragraph

  1. Insert the paragraph: From the content area, select “Add Teaser” from the paragraph dropdown menu.

    Teaser admin fields

  2. Fill in the content fields:

    • Title: Enter the title of the teaser. This should be concise and engaging.
    • Image: Select an image from the image library or upload a new one. Use high-quality images that are relevant to the content.
    • Description: Add a brief description using the Text Editor. Keep the description concise and focused on the key benefits or information.
    • Link: Add an internal or external link. This is the call to action. Use a clear and direct call to action in the link text (e.g., “Learn More,” “Register Now,” “View Details”). The Link field supports adding attributes:
      • URL: The destination URL
      • Title: The link text for the button.
      • Target: Open in a new window.
      • Rel: “Nofollow” or “Sponsored”.
      • Class: Add custom classes if needed.
  3. Save: Save the page to view your Teaser.

Best Practices

  • Use compelling imagery that is relevant to the content.
  • Write concise and engaging titles and descriptions.
  • Use a clear and direct call to action in the link text.
  • Ensure that the linked page provides more detailed information related to the teaser content.

5.33 - Webform

Add an existing Webform to a page.

Areas it Should be used

  • Content Area
  • Sidebar Area
  • Bottom Region

How to Use Webform

Prerequisite: You must have your web form created before embedding it onto a page. You can continue to revise and edit your form after embedding, but this process will NOT create a webform for you.

Drupal Webform Tutorials (by Jacob Rockowitz) ⇒

Once you’ve selected Webform from the paragraphs dropdown, select the name of the webform you want to embed onto your page.

Webform paragraph admin fields

Next, you will have the option to open, close, or schedule open/close dates for your webform.

The “Default submission pairs” field allows you to pre-populate certain fields in your webform with default values if users leave them blank. Unless you have advanced knowledge of YAML, it is not recommended to configure this field.

YAML Documentation


Content types that Support Webform

6 - Taxonomy, Vocabularies, and Terms

Group pieces of related content together for tagging, filtering, sorting, and grouping.

Taxonomy, in YMCA Website Services, is a system for classifying and organizing website content. It uses organized lists of categories to group content, create folders for Images ( in YMCA Website Services 2.4 and later), and create standard options for dropdown fields. Think of it as a way to tag, filter, sort, and group your content.

Each list of categories is called a Vocabulary, and each individual category within a vocabulary is called a Term. Terms consist of a Term Name and can include additional data or settings specific to that vocabulary (see Vocabularies in YMCA Website Services for details). Taxonomy terms are an entity type

How to Edit Vocabulary Lists

  1. Go to Structure > Taxonomy.
  2. Find the Vocabulary you want to edit.
  3. Click List Terms.

The taxonomy item options

You can rearrange your terms by hovering your mouse over the cross icon and dragging them. This determines the order in which they appear on your website. By default, terms are displayed alphabetically if no specific order is set.

Reordering taxonomy items via drag and drop

Moving a term to the right will “nest” it underneath another term, creating a parent-child relationship. The nested term becomes a “child” of the term above it. This allows you to create hierarchical taxonomies.

Adding/Editing Terms

  1. To edit an existing term, click Edit.
  2. To add a new term, click Add Term.

On the next page, you can add a Name for your vocabulary and an optional Description.

Below those two fields, you can add additional information unique to your vocabulary. The available fields will depend on how the vocabulary is configured.

Term Example - Grey Color

The Color Vocabulary provides a standard list of color options across your website, such as for a background color for your header.

The list of color taxonomy items in a dropdown
To change the shade of grey:

  1. Go to Structure > Taxonomy > Color.
  2. Click List Terms.
  3. Click Edit next to Grey.

Below the name of the Grey term, you’ll find a color widget where you can change your standard shade of Grey across your site.

In this example, you can change the color of the Grey term in the Color Vocabulary using a Color widget.

The field admin for a taxonomy color item

Vocabularies in YMCA Website Services

Vocabularies are lists of categories. How they are used and displayed depends on the specific vocabulary. Here are some common vocabularies in YMCA Website Services:

Amenities

Used for tagging branches with amenities (e.g., “Pool,” “Sauna,” “Gym”). Amenities are displayed on the branch page and can be used as filters on a locations page.

The locations page with a list of amenities

Color

The Color vocabulary provides a list of colors for use across your site, primarily in page headers, small banners, galleries, and banners. Using a standardized color vocabulary ensures brand consistency.

Blog/News Category

These vocabularies are used to tag blog and news posts. Categories are often displayed in the sidebar and as filters in the Blog Post Listing and News Posts Listing paragraphs, respectively.

Media Folders

This vocabulary creates folders for organizing images in the media browser.

View Media Folders tutorial ⇒

Media Tags

This vocabulary creates tags for filtering images (YMCA Website Services 2.3.3 and earlier), documents, and videos in the media browser. Using tags helps you organize and find media assets more easily.

View Image and Document tutorials

7 - Images and Documents

The media library stores images and files, allowing you to have custom cropping, focal pointing, folders, and image styles.

Media Items and the Media Library

Core media items include audio, images, documents, and videos. You can add other media types, such as social media posts, through contributed modules. Media items may be files located in your site’s file system or remote items referenced by a URL. Media items are content entities divided into media types (which are entity sub-types); media types can have fields. The media library is a visual user interface for managing and reusing media items. Add media items to content using Media reference fields and the Media library field widget.

An image style is a set of processing steps, known as effects, that can be applied to images. Examples of effects include scaling and cropping images to different sizes. Responsive image styles can associate image styles with your theme’s size breakpoints. This allows serving images sized for the browser width.

Modules that provide media-related functionality include:

  • The core Media module manages media items and media types.
  • The core Media module provides a Media reference field to add media to content entities. The core File and Image modules also provide reference fields. It is recommended to use the Media reference field because it is more versatile.
  • The core Media Library module provides the media library and the Media library field widget. With this module installed, the Media library field widget becomes the default widget for editing Media reference fields.
  • The core Image module provides a user interface for defining image styles. The core Responsive Image module provides responsive image styles. Using the core Breakpoint module and a breakpoint-enabled theme, these responsive styles can serve images sized for the browser.

Video Tutorials

Learn more about media management in the distribution. Some of these videos use older versions of the distribution.

Bulk Upload

Your YMCA website has the ability to upload media (images, documents, videos) in bulk (since 9.2.12 - December 2022).

You can batch/bulk upload from Admin > Content > Media (/admin/content/media) or Media Browser (/admin/content/browser). After uploading media, it will be available from the Media list and browser in any component on your site.

From the Media list

The “Upload media in bulk” button

  • Go to Admin > Content > Media (/admin/content/media)
  • Click Upload media in bulk
  • Choose your media type
  • Drag or choose the media to upload
  • Fill in the required fields in the resulting form.

From the Media browser

The media browser upload dialog with an arrow pointing to the “Upload files” button and the description “Drop multiple files on this button”

  • Admin > Content > Media Browser (/admin/content/browser)
  • Click Add media
  • Choose your media type in the sidebar, then use the Choose Files button to choose or drop files.
  • Fill in the required fields in the resulting form.

8 - Webforms

Beyond just a basic contact form, Drupal’s robust webforms features allow you to build interactive webforms with logic-based questions, built-in animation fields, and a submissions manager.

Because this is one of the most well-documented applications in the Drupal community, we recommend using the documentation provided by the maintainer of the Webform module, Jacob Rockowitz.

9 - Virtual Y

Virtual YMCA allows members and other authorized users to enjoy exclusive content from their local Y.

After members log in to your website, they can browse a diverse selection of gated content—on-demand videos, written content, and live events—from any device.

Below are links to various videos and documents providing basic setup and management information for your new Virtual Y environment. Choose the format that best suits your learning style.

9.1 - Building Blocks & Basics

Virtual YMCA (VY) is based on Open Y and was originally built as an extension for Open Y sites. Therefore, it shares many of the same underlying functionalities and concepts.

Virtual YMCA utilizes the same content editing tools as Open Y. However, the pre-configured features and modules available “out-of-the-box” may differ from a standard Open Y installation. It’s best to review the specific modules enabled in your VY instance, such as the ones provided by the ws_small_y module collection (see below), to understand its capabilities.

Content Types

Virtual YMCA comes with several content types designed for delivering exclusive member experiences. These content types are typically accessible behind a login.

Virtual Y Video

Reach your members even when they’re away from the physical Y. Provide on-demand classes, kids’ activities, and other engaging video content. This is an excellent option for health seekers, families, and active older adults.

Virtual Y Videos can be added individually or through automation using the separate Virtual Y Video Automation application.

Integrates with: YouTube and Vimeo

Live Streams

Stream your popular classes and events to members in real-time. Live Streams are well-suited for events where audience interaction is minimal.

Live Streams can be added individually or scheduled on a recurring basis. Unlike Virtual Events, Live Streams are embedded directly within the Virtual Y site.

Integrates with: YouTube and Vimeo

Virtual Events

Host interactive group fitness classes and other live events with member participation. Virtual Events are ideal for classes with Y instructors and personal or small group training sessions.

Virtual Events can be added individually or on a recurring basis. Unlike Live Streams, users are directed to an external video link for Virtual Events.

Integrates with: Any URL/link, including GoToMeeting, Google Meet, Microsoft Teams, Zoom, Instagram Live, and Facebook

Blog Posts

Provide members with written workouts, recipes, activity suggestions, and other engaging content. Blog Posts are perfect for members who prefer self-guided activities and need inspiration.

Virtual Y Blog Posts can be added via the standard Add Content list or menu within the Drupal interface.

No integrations required.

Small Y Module Collection

The ws_small_y module and its submodules provide a collection of features that customize the appearance and functionality of smaller Y associations. These modules can include enhanced article displays, staff directories, and customized styling. Review the list of enabled modules within the ws_small_y collection on your site to understand the features available.

9.2 - Authentication Providers

The authentication options available for gating your content depend on your Customer Management System (CRM). Currently, the following options can be used to control access to content within the Virtual Y website.

Personify

Single Sign-On (SSO)

Requires members to log in using their existing Personify CRM credentials.

Daxko

Single Sign-On (SSO)

Requires members to log in using their existing Daxko CRM credentials.

Note: Daxko API access is required and may incur API usage fees from Daxko. Contact Daxko for details on API access and associated costs.

Barcode Validation

Requires members to enter their barcode. The Virtual Y site validates the barcode against the Daxko system before granting access.

Set up Daxko Barcode Validation.

ReClique

Single Sign-On (SSO)

Requires members to log in using their existing ReClique CORE CRM credentials.

CSV File Uploads

Allows associations to upload a CSV file containing membership information to grant access. Two options are available:

CSV Upload without Email Verification

Upload a CSV file containing member email addresses. The Virtual Y site validates the entered email address against the uploaded list before granting access.

CSV Upload with Email Verification

Upload a CSV file containing member email addresses. The Virtual Y site sends a verification email to the address provided. The member must click the link in the email to gain access.

9.2.1 - Daxko Barcode Authentication

Open Y Gated Content (Virtual Y) release 0.13 includes a new authentication provider to support Daxko Virtual Areas. This allows associations using Daxko to set up Virtual Areas that enable members to access Virtual Y content using only their member barcode.

Instructions for setting up Virtual Areas are in Daxko’s documentation. If you need assistance configuring Virtual Areas, Daxko’s support team can assist you with setup: support@daxko.com.

Configuration

  1. Enable Daxko Barcode Virtual YMCA integration.
  2. OPTIONAL (but highly recommended): Configure reCaptcha settings at /admin/config/people/captcha/recaptcha.
  3. Add your validation secret and form URL, and check the help messages at /admin/openy/virtual-ymca/gc-auth-settings/provider/daxkobarcode.
  4. Save your settings.
  5. Set Daxko Barcode as your main authorization plugin in the Virtual YMCA settings: /admin/openy/openy-gc-auth/settings.

Once enabled, the module allows granular configuration of messages that users will receive on the page. You can change “Barcode” to something different, like “Member ID”, and add help text to assist members in finding their ID. It also allows for global help text to direct members to help channels if they’re unable to log in.

The Daxko Barcode configuration form

Once the module is enabled, members will be presented with the appropriately titled field to log in to Virtual Y.

The Virtual Y login page with Daxko Barcode authentication and reCAPCHA enabled

Upon success, the user will be logged in to Virtual Y. Upon failure, the failure state will be returned along with a help message provided by the association.

The Virtual Y login page with an error from a failed authentication

Notes

Members with a Balance Due

Anyone with a balance due in Daxko doesn’t have access to Virtual Y [via Daxko Barcode]. A lot of the accounts with balances are families with memberships who receive state scholarships for child care. The balance in Daxko is the portion the state pays, so it’s a bit of a “fake” balance. Is there any way to allow any ACTIVE member to use [Virtual Y], regardless of whether they have a balance or not?

The fix:

There’s a setting on the Daxko Operations virtual area at Membership > Virtual Area > Virtual Y > Edit that you can check/uncheck for “Block access when balance due.” Unchecking that should let the member access the virtual area.

9.2.2 - ReClique SSO Configuration

The ReClique Core API enables check-in access by specifying a member’s email address. The following steps are necessary to fully configure the ReClique Provider for your Virtual Y site.

Acquire ReClique Core API Access

To get started, you will need to perform the following steps in the ReClique CORE portal, while logged in as a YMCA super admin user:

  • Locate and note your YMCA association’s YMCA ID, known within the ReClique CORE documentation as the “Association Slug”.
  • Create a separate user for executing the ReClique CORE authentication API and grant this user API-level access.

In Detail:

  1. Log into the ReClique Core portal using a user with the YMCA super administrator role.

  2. Click Profile in the top-right corner of the CORE portal.

    ReClique Profile

  3. The YMCA ID is the non-numeric part of the “Association Slug” in front of the numeric user ID. Note this value for use in the Verification URL. In this example, the text midtn is the association slug value and is needed for the YMCA ID.

    ReClique Association Slug

  4. Click Users from the navigation menu (Users > Add New User).

    ReClique Users Menu

  5. Select the + Add User / Staff button.

    ReClique Add User Button

  6. Create a stand-alone user for the purpose of executing API calls only. A suggested name is virtual_y, but any suitable name can be used.

  7. Assign this user the API Access role by selecting Use Core API in the Other list of role options.

    ReClique API Access Role

Configure the Virtual Y ReClique Provider

To enable the Virtual Y site to communicate with the ReClique Core API, you’ll need to configure the ReClique provider.

  1. Navigate to the Gated Content Auth Setting Page at Manage > Virtual Y > Virtual YMCA Settings > GC Auth Settings.

    GC Auth Settings Navigation

    The GC Auth Settings page, when loaded, will look like this:

    GC Auth Settings Page

  2. Find the ReClique Provider option and click the Edit Action.

    ReClique Provider Edit Action

  3. Enter Your ReClique Provider Settings.

    The ReClique Provider configuration page allows the specification of permission mappings, settings for accessing the ReClique CORE authentication API, and Email Verification settings.

    ReClique Provider Configuration Page

    1. Specify Permission Mappings

      This is used for User Segmentation. User Segmentation will allow YMCAs to segment content to particular Virtual Y roles based on membership types. Refer to documentation from the Open Y Community for more information about Setting up user segmentation.

      ReClique Permission Mappings

    2. Add ReClique CORE API settings

      Add the values needed to connect to the ReClique Core API.

      ReClique CORE API Settings

      FieldValue
      Verification URLThe API endpoint provided by ReClique to verify member logins. It takes the form https://{Y_ID}.recliquecore.com/api/v1/members/virtual_y/?Email= (This is the Production verification URL).
      Authentication loginThe login for the dedicated user created with ‘Use Core API’ access in the ReClique Core portal.
      Authentication passwordThe password for the dedicated user created with ‘Use Core API’ access in the ReClique Core portal.
      ID field textThe text to be displayed on the Virtual Y login form. The default value is “Enter your Email:”.
    3. Specify the Email Verification options

      This enables a one-time login link to be sent to the member’s email for verification. Here, you can configure the length of time the login link will last before needing to generate another, email verification text, and a message displayed to the member with instructions on how to proceed with logging into the Virtual Y site.

      ReClique Email Verification Options

    4. Specify the Verification Message

      This is the message the member will see when logging in if they are inactive. The phone number must be added at the very least.

      ReClique Verification Message

    5. After configuring the ReClique provider, click Save.

    6. From the GC Auth Settings page, ensure only ReClique Provider is selected and click Save.

Your ReClique Provider is now fully configured and ready for use.

To test, log out from the admin portal. You should now see your new login form configured and ready to accept input from the Home Page.

If a valid email address is entered and the member is active, the member will be allowed access to your gated content (videos, blog posts, virtual meetings).

9.3 - Video Support & Hosting

Virtual Y supports embedding videos from the following sources. The supported source depends on the content type:

On-demand Video

  • YouTube
  • Vimeo

Live Stream

  • YouTube
  • Vimeo

Virtual Meeting

  • As a “Join” button
    • Any external link, including Facebook
    • Zoom meetings (embedding is no longer supported)

Video Provider Specifics

Each video provider has its benefits. We’ve provided this list to help you decide where to start.

YouTube

YouTube videos smaller than 1280x720px (aka “720p”) may not display a thumbnail properly in Virtual Y. If you upload a larger (greater than 1280x720px) thumbnail using YouTube’s video editor, that should resolve this issue on Virtual Y (until this issue is resolved).

Setting up a Brand account for your Y is a good first step in using YouTube for your videos.

The requirements for embedding YouTube Live Streams may change often. Previously, this has required having more than 1000 subscribers on your channel or turning on “Monetization”. It may, at times, be more expedient to use Vimeo for Live Streaming.

As of February 2021, YouTube’s stated requirements for Live Streaming are:

To live stream, you need to have no live streaming restrictions in the past 90 days, and you need to verify your channel.

Vimeo

  • Requires a paid plan for typical Y usage.
  • Upload and bandwidth limits based on account type.
  • Truly gated videos with domain-level privacy. Domain restrictions are NOT RECOMMENDED if you plan on sharing your content with other Y’s using Virtual Y’s “Shared Content” feature.
  • To facilitate content sharing, we recommend using the Hide this video from vimeo .com privacy option combined with Enable people to embed this video on any site. Review all of Vimeo’s privacy options.

Most associations have purchased the “Premium” level to get access to unlimited live streaming.

Vimeo private videos do not allow thumbnails to be generated for your site. If you use private videos on Vimeo, you’ll need to upload a thumbnail using the Teaser Image field on the content.

A screenshot of the Teaser Image field

Facebook

Facebook is not recommended for Virtual Y content, as any meeting there will also be listed publicly.

If you choose to host virtual meetings on Facebook, they will need to be publicly listed; otherwise, it is not possible to create a direct link to the event. To get the link to a public video:

  • Click the three dots on the bottom right of the video.
  • Select “Copy Link”.

Zoom

A few notes:

  • If you are creating a recurring Virtual Meeting, please be sure your Zoom meeting recurrence matches the recurrence on the Virtual Y meeting.
  • If your Zoom meeting requires a password, we recommend generating a link with the password embedded in it. This usually looks something like ?pwd=... in the link. Please review Zoom’s updated security settings for more information.
  • Through many tests, we determined that Zoom embeds are unreliable, and support for that feature has been disabled. Zoom links now display as a “Join” button, which should make for a much smoother user experience.

9.4 - Go-live Checklist

Here are some things you should check before you go live with your Virtual Y site:

Review Your Content

  • Disable any Virtual Y sections that you’re not using.
    • Ensure that you’ve disabled links to those sections in your Main Navigation.
  • Review and click through Main Navigation and Footer links to ensure they’re all valid.
  • Visit /admin/content and ensure any demo content is deleted or unpublished. This is important to ensure a clean and professional launch.
  • Visit Virtual Y > Event Series and ensure any demo content is deleted.
  • Ensure that Virtual Y content is displaying as you expect.
    • If some content is not displaying, check to ensure all required fields are filled in. While the Description field is not technically required, leaving it empty can sometimes prevent content from displaying.

Review Your Authentication

  • Review and test your Virtual Y Authentication provider.
    • If you’re using the Daxko Barcode provider, ensure you’ve set the Message for login failures at Virtual Y > Virtual YMCA Settings > GC Auth Settings > Edit Daxko barcode provider. This message will be displayed to users if their barcode is invalid.

Final Clean-up

  • If you’re using it, ensure you’ve set up Google Analytics at Configuration > System > Google Analytics.
  • If you’re using any basic authentication to protect the site before it goes live (what Y Cloud calls “Site Lock”), ask your hosting partner to turn it off. Leaving it on will prevent public access to your site.
  • If you’d like to share content with other Ys, review Shared Content and initiate a connection to the Open Y Shared Content server. This allows you to leverage content created by other Ys and share your own.

9.5 - FAQs

For up-to-the-minute conversations and info on Virtual Y and its content, join us in the YUSA Slack. Request access to Slack

For even more Virtual Y FAQs, check out Y-USA’s post.

Evaluating VY

  • How do I learn the basics?

I’m in with VY

  • Once you’ve viewed the demo and slide deck, here’s what we suggest:
    • Join the #virtual_ymca Slack channel where you can talk with other Y associations, the YMCA Website Services team, and partners on how to quickly get your Virtual Y experience launched.
    • Not on Slack? Request access.
    • Contact your developer partner or one of our featured partners.
    • If you didn’t find the answer (or the droids) you were looking for, let us know and we’ll point you in the right direction
  • Can I see a live example?
    • Yes. Please contact us and we can provide you with links and information.
  • Can I see a demo?
  • How much will it cost?
    • The Virtual Y code is free, but using it is not. Your costs come with having a developer configure Virtual Y as well as from hosting. Time estimate: <30 hours if you stick close to the default implementation and don’t make customizations. The more you deviate, the higher the cost. Costs will include:
      • Implementation
      • CRM SSO integration
      • Domain name and hosting
      • Training and support (will vary based on team’s comfort working with Drupal)

I’m not on YMCA Website Services

  • Can I use it if I’m not on YMCA Website Services? Yes!
    • Our website is built in WordPress. Will Virtual YMCA integrate with WordPress?
      • Virtual Y is built on YMCA Website Services (Drupal). You would build a stand-alone instance of Virtual Y (see agency partner next steps) that could be linked to from your current site. You can work with an agency of your choice or talk with one of our core partners if your current partner does not develop on Drupal. Time estimate is <30 hours if you stick close to the distribution and don’t customize.
    • What is my next step for Virtual Y if I’m not on YMCA Website Services?
      • Have a conversation with your current developer or contact one of our featured partners. You may work with your current web developer if they know Drupal. If not, one of our partners or Y-USA will likely be more economical.
    • How does my internal developer or agency use Virtual Y?
    • How do I add Virtual Y to my main website’s domain?
      • Ys who don’t have Open Y for their association’s main site can install a standalone Virtual Y site and put on their web address using a subdomain.
      • Example: virtual.ymcaname.org would point to your Virtual Y site. To your members and other website users, it would appear to be part of your site.
  • Where do I ask questions?
  • Can I try it?
    • Yes! You can use it yourself in the Sandbox
    • The login is the same as for the standard YMCA Website Services sandboxes so let us know if you need that information.

Committed to VY - Initial Technical Set-Up

  • I already have an YMCA Website Services site, do I need to upgrade to get Virtual Y?
    • Nope, unless you’re more than a couple of upgrades behind. Our incredible developer team established a structure to allow Ys to obtain Virtual Y without undergoing a full site upgrade, saving both time and $$$. If it has been 12+ months since your last upgrade, we recommend you proceed to keep your site current with the latest features and security. This will reduce future upgrade costs (it’s more expensive to update a site that is multiple versions behind) and help prepare you for Drupal 9, which was released in February 2021.
  • Drupal CMS (Video)
  • Software requirements
  • There’s not much here for technical documentation. What’s up?
  • Implementation
  • Which CRMs is Virtual Y compatible with?
    • Personify
    • Daxko
    • CSV authentication available for ActiveNet and other CRMs
    • Avocado (Salesforce)
    • Y-USA’s Nationwide Membership database
    • ReClique Core
    • If your CRM is not listed, we have a workaround solution where you can upload a CSV file of your active members’ email addresses into your Virtual Y site to grant your Virtual Y visitors access to your content. As long as you can export a basic spreadsheet of your active members, your data is likely compatible with Virtual Y.
  • Will there be impacts to the domain?
    • There should not be any impact from your domain if you already use YMCA Website Services. If you do not use YMCA Website Services, you can create a subdomain of your choosing, such as virtualy.yourassociationname.org where virtualy is the subdomain.
  • What Web Browsers are compatible with Virtual Y?
  • User Activity Logs Documentation
  • Setting up Google Analytics for Virtual Y (web)

Committed to VY - Content Editors

  • Does Virtual Y come with content?
    • There is demo content for you to test with, but you need to create and post your own content via the platforms mentioned in the next question. Some Ys have shared their content for all to use.
  • Which platforms can I use to host my content for Virtual Y?
    • Virtual Y works* with:

      • YouTube - hosted and livestream
      • Vimeo - hosted and livestream
      • Zoom - livestream
      • Zoom, GoToMeeting and Teams - video conferences
      • Blogs - any content you post
    • *Note: “Works with” means technically functional. Each video provider service, such as YouTube, manages its own terms of use, which will guide what’s okay and what’s not.

  • For Vimeo, is a specific account level needed to host videos to stream/pass through Virtual Y?
    • Many associations have been buying the Premium level to get access to unlimited livestreaming. Again, the YMCA Website Services Team has no control over Vimeo’s terms of use, and Vimeo’s terms of use are subject to change at any point without prior notice.
  • Can we keep our YouTube videos unlisted on our channel but still have them play in our Virtual Y?
    • Yes.
  • Can we use Facebook video links?
    • No. Due to restrictions/limitations enforced by Facebook, private videos or videos from a private group cannot be embedded on an external (non-Facebook) site. This means the only option would be to use publicly-facing Facebook Live video within Virtual Y, which can be seen by anyone on Facebook, not just your members. This weakens the case for paying for exclusive access to Virtual Y as a member, and YMCA associations were not interested in YMCA Website Services pursuing this type of Facebook integration.
  • Can I host Les Mills classes on our Y’s YouTube channel?
    • Unfortunately, Les Mills licensing does not cover recording the class for rebroadcasting.
  • Can we use Y360 videos?
    • Y360 videos are owned exclusively by Y360 and then licensed by Ys. A Y would need to obtain explicit permission from them for usage within Virtual Y. Additionally, YMCA Website Services would first have to build a new integration to accept those videos as on-demand content, because Y360 uses a video hosting service other than YouTube or Vimeo.
  • Music Licensing
    • How does music licensing work with this platform?
      • Music licensing copyrights and restrictions originate with the video platform used (e.g., YouTube, Vimeo) so you need to follow those guidelines. Be very careful to investigate whether the music you use within your branches is OK on livestream workouts.
    • Is YouTube strict about licensing?
      • YES. Do not put your Y at risk.
  • How do I learn the basics of content editing:
  • Editing your content categories listings via Drupal taxonomies
  • Adding new content to VY:
  • Image Guidelines
  • Setting up your Virtual Y
  • Virtual Y Experience Map & Rollout Plan

Live Streaming

Shared Content

Y-USA’s Role

  • I just heard Y-USA is building a Virtual Y platform. What if I’m already building this with a developer?
    • Virtual Y is open source software built by the YMCA Website Services. Because this software is open source, it is free for any YMCA to download and use. The Y-USA’s Y Cloud platform uses the Virtual Y module as a plug-and-play standalone micro-site that YMCA Website Services created. Y-USA’s Y Cloud provides Virtual Y as Software-as-a-Service (SaaS) that includes hosting, maintenance and general support of the Virtual Y stand-alone microsite for a low monthly fee. Y-USA provides this as an opt-in option to any YMCA that may be interested. For any further questions, you can contact Y-USA at ycloud@ymca.net
  • What’s the difference between Y-USA’s work on Virtual Y and what other partners are doing?
    • There is no significant customer-facing difference between Y-USA’s Virtual Y SaaS solution and other partners’ hosting solutions. The functionality should work as expected in both deployment models.

Marketing

  • Will there be an opportunity for shared content?
    • Yes. Cross-association content sharing is available now, both for use and for you to contribute your content.
  • Do associations have access to analytics for Virtual Y?
    • Yes, there is a tracking log within the admin menu that displays when a user logs in, as well as which pieces of content they view. This allows you to gauge what is most popular with your members. The information can be sorted and exported for ease of use.
  • Will there be a marketing toolkit?
    • Ys are responsible for marketing virtual offerings. We encourage associations to share helpful tips on what marketing tactics have worked best for them on the YMCA Website Services message board, and YMCA Website Services Slack
  • Do you have slides or a pitch deck I can use?

Virtual Y - Taking it to 11

9.6 - 1-on-1 Meetings

Enable direct, secure, scheduled person-to-person calls inside your Virtual Y site.

This module is distributed as part of the YCMA Virtual Experience Platform (Virtual Y). Review the README for more technical information.

Initial Configuration

  1. Go to Admin > Extend (/admin/modules) and enable the Virtual Y 1on1 Meeting (openy_gc_personal_training) module.
  2. Go to Admin > Virtual Y > 1on1 Meeting > Settings (/admin/virtual-y/personal_training/settings) and enter signals.cibox.tools:8091 as the Signaling PRL. This is the address of the signaling server that facilitates the connection between participants.
  3. Go to Admin > People (/admin/people) and add the Virtual YMCA Editor role to the user profile of any users who will create meetings.
    • NOTE: The admin user will also need to have this role set. This role grants the necessary permissions to manage 1-on-1 meetings.
  4. Also at Admin > People (/admin/people), add the Virtual trainer role to at least one user. This role identifies users as trainers within the system.
  5. If you are starting a new site, log in as a Virtual Y member at least once. This ensures that member accounts are properly initialized.
  6. Go to Admin > Virtual Y > 1on1 Meeting (/admin/virtual-y/personal_training) and you should be able to see a dashboard with links to add a 1on1 meeting.
    • If you receive an Access denied error, be sure to check that you have the Virtual YMCA Editor role as noted in step 3. This is the most common cause of this error.

Creating a 1on1 Meeting

  1. Go to Admin > Virtual Y > 1on1 Meeting (/admin/virtual-y/personal_training). This is the central management interface for 1-on-1 meetings.
  2. Choose to add a single 1on1 meeting or a series and fill in the form. When creating a series, be sure to configure the recurrence options appropriately.

Add 1-on-1 Meeting Form

Joining a 1on1 Meeting

  1. Once a 1on1 meeting is created, the customer and trainer will see a card for the call in the Virtual Y dashboard. The dashboard provides a convenient overview of upcoming meetings.
    1-on-1 Meeting Card on Dashboard
  2. Both the Trainer and Customer should open this card, join the meeting, provide their names, and proceed with the call. Ensure that both participants have a stable internet connection and working audio/video devices for the best experience.

9.7 - Add/Edit Video

View a video of this process.

Adding a New Video

There are multiple ways to add a new video, depending on the type of site you’re working with:

  • Y Sites: Navigate to “Content” and click the blue “Add Content” button. Select “Virtual Y Video.”
  • Standalone Virtual Y Sites: Go to “Virtual Y” -> “Videos” -> “Add Video.”
  • From the Main Content Tab: You can also add a new video directly from the main “Content” tab.

Video Details

  • Title and Description: Add a title and description for your video. These will be displayed below the video player.

Media Tab

  • Selecting Your Video: In the “Media” tab, click “Select videos.”
    • New Videos (Default): This option is for uploading new videos.
      • Video Name: Name your video file the same as your content title for easy identification.
      • Video URL: Copy and paste your video URL into the “Video URL” field.
        • Supported Platforms: This field supports Vimeo and YouTube URLs.
        • URL Format: Use the main URL from your browser’s address bar. You do not need embed code or special URLs.
      • Other Fields: The “Media Tags,” “Directory,” “Revision Log Message,” and “URL Alias” fields can usually be ignored.
    • Previously Uploaded Videos: If you are reusing a video you’ve already uploaded, go to the “Select Videos” tab and choose the desired video.

Additional Options

  • Level (if applicable): Select a level for your video, such as for an on-demand class.

    • Add/Edit Levels: You can add or edit the default levels by going to “Structure” -> “Taxonomy” -> “Virtual YMCA Level” -> “List terms.”
  • Instructor Name (if applicable): Type in the instructor’s name.

  • Category: Choose a category for your video by typing it in and selecting from the dropdown. Only one category can be assigned per video.

  • Equipment: If your video features the use of equipment (e.g., exercise equipment in a workout video), type the name of the equipment and select it from the list. To add multiple items, click “Add another item.”

    • Configure Equipment List: You can configure the available equipment options by going to “Structure” -> “Taxonomy” -> “Virtual YMCA Equipment” -> “List terms.”
  • Duration: Add your video’s length in seconds in the “Duration” field.

  • Featured Video: To feature your video on the Virtual Y homepage, click the “featured” checkbox.

Saving

  • Click the blue “Save” button to save your video.

9.8 - How to change the Login page photo

Please follow these steps if you wish to customize the photo users will see when they log into the Virtual Y site.

To update the image before the user logs in:

  1. Log into the site as a Site Owner.

  2. Go to Manage > Content (click directly on Content, not one of its sub-menus).

  3. In the content grid, find “Virtual YMCA Login” and click the Edit button for that row.

  4. Expand the “Header Area”.

  5. Click the Edit button next to the “Banner” row.

    A screenshot highlighting the Title, Header Area, and Edit button

  6. Expand the “Image” section. Locate the current image and click the Remove button underneath it (not the Edit button).

    A screenshot of the Image field with the Remove button highlighted

  7. Re-expand the “Image” section and click the Select Images button.

  8. If the desired image is not already in the system, click the Upload images link to add it.

  9. If the image is already in the system, select it and click Select media.

    A screenshot of the Select Images popup

  10. Scroll to the bottom of the page and click Save.

    A screenshot of the save button

If you also want to modify the image the user sees after they log in, repeat the steps above, but in step #3, find “Virtual YMCA” instead of “Virtual YMCA Login”.

9.9 - Image Guidelines

Virtual Y uses Drupal’s Image Styles concept to allow you to upload a single image but display it in several ways. Image Styles automatically resize, crop, or otherwise manipulate images on display. This allows for consistent image presentation across the site, regardless of the original image dimensions. Because of this, there are no strict image dimensions required for images in your Virtual Y site.

We can, however, provide guidance on what images work best with the image styles used on the site:

  • Use high-resolution images if possible, but compress them using a tool like TinyJPG or ImageOptim to ensure they are no more than 1-2MB. Large image files will slow down page load times.
  • Use landscape-orientation images with a 4:3 or 16:9 ratio. These are common formats, so often no cropping is necessary.
  • Square images are NOT recommended, as they are often cropped in unexpected ways.
  • Images are sometimes cropped from the top and bottom, so ensure faces or other focal points are in the vertical center of the image. This will help prevent important content from being cropped out.

When including images for “Meta” (preview) purposes, such as for social media sharing, images should be at least 1080px in width.

9.10 - Live Chat

Enable group chat functionality on your live stream events.

This module is distributed as part of the YCMA Virtual Experience Platform (Virtual Y). Review the openy_gc_livechat README for more technical information.

The Virtual Y live chat window displaying a conversation between two users.

Initial Configuration

  1. Go to Admin > Extend (/admin/modules) and enable the Virtual Y Livechat (openy_gc_livechat) module.
  2. Go to Admin > Virtual Y > Virtual YMCA Settings > Livechat Settings (/admin/openy/virtual-ymca/gc-livechat-settings). Review the settings and modify them if necessary.
  3. Go to Admin > People > Roles > Add role (/admin/people/roles/add) and add a role entitled Virtual Trainer if it does not exist.
    • Assign this role to any user who should have the ability to disable chat.
    • NOTE: The admin user will also need to have this role set.

Joining a Live Chat

  1. Visit any Live Stream event. At the time that the event starts, a Live Chat button will appear below the video.

    The Virtual Y Live Chat button

    • The button will not be visible before the event start time. To allow attendees to join before the meeting, set the start time to a few minutes before your actual start.
  2. All participants can enter the chat, set their name, and chat throughout the entire Live Stream event.

    A dialog with “Specify your name” in a modal popup. In the upper right an arrow points to an icon with people and a gear to open this setting.

Moderating a Live Chat

  • At any point during a chat session, users with the Virtual Trainer role have the ability to disable the chat using the Disable Chat button.

    The Virtual Y chat window with an arrow pointing to a button labeled “Disable Chat”.

  • Users will see a message saying “Instructor disabled chat for users”.

    A screenshot with the text “Instructor disabled chat for users”

  • Chat can be restarted using the Restart Livechat button on the event page, next to the chat icon.

    A chat icon and the text “Restart livechat”

  • Disabling chat will remove the history of that chat from the server.

Chat History

  • Each Livestream saves its history for a certain amount of time.
    • The default is 30 days and can be configured in the Live Chat Settings (/admin/openy/virtual-ymca/gc-livechat-settings).
  • Chat history is saved and can be viewed at Admin > Virtual Y > Virtual Meeting Chat Logs (/admin/virtual-y/chats).

Troubleshooting

  • If the chat button is not appearing, or the dialog displays “Chat is not available” or “Chat is not working at the moment,” you will need to check with your development partner to ensure the Livechat service is properly configured on your server.

    A dialog with the message “Sorry, chat is not working at current moment”

9.11 - Logging

Introduced in Virtual Y 0.7, the “Open Y Virtual YMCA Log” module generates logs to record user behavior on Virtual Y sites. This module is part of the Open Y distribution and helps track user activity for reporting and analysis.

To enable the module, visit the Extend page on your site (/admin/modules), or ask your partner for assistance. You will need appropriate administrative permissions to access the Extend page.

Once the Log module is enabled, you’ll see two new items in the Virtual Y menu (/admin/config/virtual-ymca):

Logs

A screenshot of the Virtual Y menu with Logs selected

The Virtual Y Logs page (/admin/config/virtual-ymca/logs) displays searchable and filterable individual user activity. Additionally, individual log items can be removed. This allows administrators to review and manage user activity data directly within the Drupal interface.

Activities that are currently being tracked include:

  • User login
  • User views content

The Open Y team is working to add additional logging functionality as they gather requirements. If you have additional logging requirements for your reporting, please contact the YMCA Website Services team with as much detail about your requirements as possible. Providing detailed use cases helps the team prioritize and implement relevant logging features.

Logs Archives

As of Virtual Y 1.1, log archives can be generated on-demand via Virtual Y > Logs > Export Log Records (/admin/config/virtual-ymca/logs/export).

While logging begins immediately, log archives (prior to VY 1.1) should appear on the first day of the month following when logging is enabled. Log archives will be available as .gz files. The archive stores data indefinitely, but the log itself then deletes out the previous month’s info out of the database to start collecting data for the current month. This ensures efficient storage and data management.

  • Virtual Y > Logs stores ONLY the current month’s records
  • Virtual Y > Logs > Logs Archives keeps monthly archives indefinitely, in the format virtual-y-logs-2021-01.csv.gz

The log archive process depends on Drupal’s cron task, so you’ll need to ensure that cron is running periodically on your site. The cron task is responsible for automatically generating and archiving the log files. You can configure cron jobs through your hosting provider or using Drupal modules like Automated Cron.

To extract .gz files:

Extracting files on Mac:

  • The system’s Archive Utility should work to extract files. If that fails…
  • (Easy) Download Keka or The Unarchiver, install, and use it to extract the file.
  • (Advanced) Open a Terminal window and navigate to the directory where the .gz file is located, then run gunzip my_log_file.csv.gz. Replace my_log_file.csv.gz with the actual name of your archive file.

Extracting files on Windows:

  • Use 7-Zip to extract the .gz file.
  • Open the extracted .csv file with Excel or Google Sheets.

Extracting files online (without a separate download):

Translating timestamps

Your Virtual Y log archives may include times in the created column that look like 1606839555. This is a format called “Unix epoch time”, representing the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT). You can convert it to a human-readable format in a few ways:

  • Visit https://www.epochconverter.com/ and paste in a value
  • In Excel/Google Sheets:
    • Use the formula = (A1/86400) + DATE(1970,1,1), substituting the correct cell for A1. This formula divides the Unix timestamp by the number of seconds in a day (86400) and adds it to the base date of January 1, 1970.
    • Right-click on the column, select “Format Cells”, then choose a Date format. This will display the converted timestamp in a readable date and time format.

9.12 - Managing Footer Links

Your standalone Virtual Y site may have a block with social media links at the bottom of the page. These links can be customized for many social media services.

Getting to the Block Editor

Your site may have a “Quick Edit” icon (a tiny pencil) that appears when you hover over the section with the links. If so, click the pencil, then Edit.

A screenshot of the Quick Edit menu

OR

If you don’t see the Quick Edit option, you can navigate to the Block editor via the admin menu at Structure > Block Layout > Custom Block Library > Edit Footer Social Block.

A screenshot of the menu sequence to edit Footer links

Editing the Block

In the Block editor, you will see a Content field containing links to your social media sites.

  1. Add a new item to the bulleted list.
  2. Select the text you want to use for the link.
  3. Click the link icon.

A screenshot of the Footer links content editor

  1. Select the text you want to link, or double-click an existing link to modify it.

  2. In the URL field, add the complete URL to the social media site.

  3. Edit the Title field to something more descriptive; this will be used as the title attribute for accessibility.

  4. Open the Advanced section and update the CSS classes field to select the correct icon. Be sure to copy the entire code snippet below for the icon you want. These CSS classes use Font Awesome icons.

    • Facebook: fa fa-facebook
    • Twitter: fa fa-twitter
    • YouTube: fa fa-youtube
    • Instagram: fa fa-instagram
    • Vimeo: fa fa-vimeo
    • Many other options (ensure you select a free icon).

    Note: The available icons may depend on the version of Font Awesome included with your site theme.

A screenshot of the “Edit Link” dialog

When you are finished, click Save.

9.13 - Shared Content

Requirements | Getting Started | Fetching Shared Content | Publishing Shared Content | FAQ

Released in 0.12, Virtual Y’s Shared Content module allows Y’s to share their content with other associations/branches and to pull shared content to use on their own site.

Requirements

Open Y Gated Content Module

  • While Shared Content is supported in Open Y Gated Content >=0.12, we recommend that you use version 1.0 or greater for the best support.

Hosted Videos

  • Any YouTube video that works in Virtual Y will be sharable.
  • Vimeo videos that use the “Only on sites I choose” privacy setting should not be shared. Please review the Vimeo Privacy Settings Overview for full details. If you plan to share content on Vimeo, we recommend:
    • Who can watch? - “People with the private link” OR “Hide this video on vimeo.com”
    • Where can this be embedded? - “Anywhere”

Getting Started

To start sharing content, you need to get your site ready.

Enable the modules

On the Drupal Extend page (/admin/modules), enable Virtual Y Shared Content. If your site is hosted on a managed hosting environment, this step is either already done for you or will need to be done by your hosting partner.

A visual depiction of the sequence to install the Virtual Y Shared Content module

Accept any other required modules if asked.

Connect your site to the Open Y server

In order to share content, you’ll first need to register your site with the Open Y shared content server:

  • Go to Virtual Y > Shared Content > Source Servers (/admin/virtual-y/shared-content/server)
  • Use the List additional actions arrow () under Operations then Edit

A visual depiction of the above menu sequence to configure source servers

On the following page, simply Save the form. Once you’ve saved the form and your site is able to contact the server, the Source Token will be populated.

A screenshot of the source server form

New connection requests are reviewed periodically and are approved by the Open Y team to prevent abuse. Please allow up to two business days for approval, or email ycloud@ymca.net with the URL of your site to request approval.

Fetching Shared Content

Once you are connected to the server you may, at any point, Fetch content from the server:

  • Go to Virtual Y > Shared Content > Source Servers (/admin/virtual-y/shared-content/server)
  • Fetch content from the Open Y server.

Your site will fetch Virtual Y blog posts and Virtual Y Videos from the server. In each list you may:

  • Preview content using the button on the right.
  • Check the box to the left of any content you’d like to use on your site.
  • Fetch to my site to download the new content.

A screenshot of the shared content fetching flow described above

As of Virtual Y 1.6.1 (released in December 2021) the fetched content list will show items in different states:

  • Bold items are new to the server since your last visit.
  • Greyed out items have already been added to your site.

Also in VY 1.6.1, content can be fetched directly from the preview.

A screenshot depicting the “Fetch to my site” button

Publishing Shared Content

You can share your own content to other Y’s in the Movement too!

  • Create your Video or Blog post as usual.
  • To share a single item:
    • expand the Shared Content options on the sidebar of the content edit page,
    • then check “Available to share”.

A screenshot of the “Available to share” option

  • To share multiple items, visit the Content list (/admin/content) then:
    1. Check the Update this item checkbox.
    2. In the Action dropdown, select Share to Virtual Y.
    3. Use the Apply to selected items button.

FAQ

Why can’t another Y see my shared content?

New connection requests are reviewed periodically and are approved by the Open Y team to prevent abuse. Please allow up to two business days for approval, or email ycloud@ymca.net with the URL of your site to request approval.

Can I share content before my site is live?

If your site is in a “pre-live” mode and is somehow restricted from being publicly accessible (sometimes called “Site Lock” or “HTTP Auth”) you will not be able to share content. Please wait until your site is live to share content.

9.14 - Software Requirements

Open Y Sites

  • Open Y version 2.0 or newer.
  • The ability to install Virtual YMCA modules.

Virtual Y Standalone Site

Hosting

Tech stack required:

  • Ubuntu Server (local or Cloud environment) with 2CPU and 2GB of RAM minimum.
  • Server configured with LAMP stack (Linux/Apache/MySQL/PHP).
  • PHP 7.4+ (PHP 8.1+ is recommended)
  • Composer

Recommended Hosting Solutions:

  • Digital Ocean – Cost-effective. For self-installs.
  • OneEach Technologies – Mid-range. For Ys with developer partners.
  • Acquia/Pantheon/Platform.sh – Enterprise. For large YMCAs.

SSL (Security Certificate)

A security certificate authenticates that you own your website and displays a lock icon in the user’s web browser. Most modern browsers require SSL certificates. SSLs are widely available from a large number of reputable providers.

Domain Name (Website Address)

Only required for standalone Y sites. Can be set up with its own unique web address (i.e., virtualymcatn.org), a unique directory within your existing site (ymcamidtn.org/virtual) or as a subdomain of your existing site (virtual.ymcamidtn.org).

Requirements for each of these setups are unique. Contact your developer partner or the Open Y community for help with your setup.

Sign-In Integration

CRMs with Full Integration:

  • Daxko
  • Personify
  • Salesforce (Coming Soon)

Other CRMs:

  • Upload a .csv file of emails to your server to use the manual sign-in experience.

9.15 - User Segmentation

User segmentation is a feature within Virtual Y that allows you to categorize your users. This enables you to:

  • Diversify your membership strategy.
  • Organize your Virtual Y content into categories such as fitness, wellness, and family enrichment.

Set Up User Segmentation

  1. In your Drupal toolbar, hover over Virtual Y and click Virtual YMCA Settings.

  2. Click the AUTH Settings tab. A list of authentication method options appears. If your desired authentication method isn’t listed, install it from the Extend menu.

    A screenshot of the the Virtual Y settings tabs with “AUTH Settings” highlighted

  3. Click Edit on the authentication method you want to use. User segmentation settings are located in the Permissions Mapping field at the top of the page.

  4. In the membership field, carefully type or paste the name of a membership type from your CRM that you want to grant access to Virtual Y. Then, use the dropdown to select the appropriate access level for users with that membership type.

    A screenshot of the “Permissions Mapping” dialog

  5. To add more membership types, click the Add one more button until all desired membership types are listed.

  6. To remove a membership type: Delete the membership name from the field and select None as the Virtual Y role. Then, scroll to the bottom of the page and click the blue Save button. The empty line should then disappear from your mapping list.

Add a New Role

You might need to add roles beyond the default three included in Virtual Y. While you can, keeping the number of roles to five or fewer is recommended, as managing content and avoiding fragmentation becomes more difficult with more roles.

If you’re unfamiliar with Drupal roles, consult with your agency partner for help customizing your Virtual Y roles.

  1. Click People in the Drupal toolbar.

  2. Select the Roles tab.

    A screenshot of the People tabs with Roles highlighted

  3. Click the blue Add Role button.

  4. Enter the name of your new role in the field.

    A screenshot of the Role Name field

    Note: The Machine Name for your role must begin with virtual_y_, or it won’t be included in the permissions mapping table. To ensure this, either name your official role “Virtual Y [Desired Role Name]” or click the small Edit button link next to the Machine Name and edit the text.

    A screenshot showing the Role name and Machine-readable name fields

10 - Content Editing Basics

Adding New Content

To add new content:

  1. Select the Content tab in the administration toolbar at the top of the page.

    The content link in the admin menu

  2. Click the Add New Content button.

  3. On the next page, select the type of content you want to add. Learn About Content Types ⇒

    • Fields marked with a red asterisk are required. You must complete these fields to save the content.
    • To save the content as a draft, deselect the Published checkbox near the bottom of the page.
  4. Click the Save button.

Searching for Content

You can find content to edit in two ways:

  • Front-end: Navigate to the page on your live site (what your users see). If you’re logged in and have edit permissions, you’ll see the following tabs:

    • View
    • Edit
    • Revisions
    • Delete

    In-page Edit tab

    Click the Edit tab to edit the content.

  • Content administration page:

    1. Select Content in the administration toolbar. This opens the Content administration page.

    2. Use the text field on the left to search by title.

    3. To narrow your results, filter by:

      • Content type
      • Published status
      • Language

    Content type filtering

    1. Click the Edit button on the right side of the row to make changes.
    2. If you’re unsure whether you’ve found the correct content, click the title to view it.

Deleting Content

You can delete content in these ways:

  • Click the Delete tab when viewing the content.
  • Click the Delete tab when editing the content.
  • Select Delete from the dropdown menu on the Content administration page.

You can also delete content in bulk:

  1. On the Content administration page, select the checkboxes next to the content you want to delete.

  2. Select Delete content from the dropdown menu above the results table.

  3. Click Apply to Selected Items.

    Warning: This action is irreversible. Be sure you’re deleting the correct content.

Open Y Fields

Each content type has different fields, but they generally fall into these categories:

Unformatted/String Text

These are single-line text boxes, such as page titles. Simply enter text into the box.

Title field

Unformatted Textbox

A larger box that allows line breaks, paragraphs, and longer amounts of text.

Select one of the available options. You might need to click a button to apply or submit your selection.

Multiselect Fields

Locations field

Similar to a dropdown, but you can select multiple options by holding Control (Windows) or Command (Mac) and clicking the selections.

WYSIWYG/Formatted Text Editor

A text editor that styles your text visually and allows you to add links and embed different types of media.

More on the Text Editor ⇒

Autocomplete Field

A text field with a circle on the right that’s used for searching content, blocks, or taxonomy terms.

  1. Type what you want to enter.
  2. Select from the options that appear below the field. The results narrow as you type.

Category field

Links/Button Fields

These typically appear as a single box with two fields inside and add a link onto a page, often as a button:

  • URL: The link destination.
  • Link Text: The call to action that’s displayed.

Link field

The URL field supports relative URLs for links on your site (e.g., /join for http://myymca.org/join) and full URLs for links on other sites (e.g., http://someotherymca.org/join). You can also search for content by title and select it, like in other autocomplete fields.

Some link fields contain an Attributes section that you can expand to add attributes to your link:

A screenshot depicting the Attributes section with ID, Target, and Class fields.

  • ID: Identifies the link in the page’s HTML and can be targeted by anchor links. More on anchor/jump links.

  • Target: Determines how the link opens:

    • New Window _blank: Opens the link in a new tab or window.
    • Same Window _self: Opens the link in the same tab or window.
  • Class: Applies a CSS class to the link for styling.

Image Fields/Image Library

You can add, edit, and upload images any time you see a tab with “Image” in the title. To use the media browser, click the button in the image field.

More on Using the Image Library ⇒

Cloning Content

You can clone content using the Clone button on many pages:

or on the Content list in the site administration:

After selecting Clone, you’ll see a screen asking which entities you want to clone. Generally, you can leave the checkboxes as they are, as changing the options could cause unintended consequences.

At the bottom of the options, select Take ownership if you want your user account to own the new content, then click Save.

11 - Demo Content

The distribution comes with demo content to help kick-start your site building.

Two sets of demo content are available for the distribution:

These modules also contain significant boilerplate migration code that a developer would need to migrate content from an older Drupal site or different CMS into the distribution.

Demo content is also installed on the Sandboxes.

12 - Membership

Guide prospective members through the join process.

The distribution offers a couple of ways to present membership options to visitors and direct them to the appropriate membership management system (MMS) for signup.

Methods for Informing Visitors

The two primary methods for informing visitors about membership options involve:

  1. Membership Content Type: This content type allows you to create individual pages detailing specific membership offerings. These pages can be linked to from other areas of your site.
  2. Membership Calculator Paragraph: This paragraph type, when added to a page, creates an interactive wizard that guides users through selecting a membership. See Membership Calculator Paragraph and Membership Content Type for more information.

Every membership management system will have different ways of linking for members to complete their registration. Here are a few we know about. If you have tips for an MMS not listed here, feel free to leave them in the comments.

Daxko Operations

Navigate to: Membership > Membership Types > Edit > Online Settings. This provides the deep link to the specific membership types.

A screenshot showing the General Information screen of Daxko Operations

12.1 - Membership Calculator

This application provides an interactive “membership wizard” with location and pricing options. It is the default membership experience for attracting new members.

The Membership Calculator is bundled with the distribution in the openy_calc module.

As of August 2024, the Membership Calculator has an updated design with improved functionality and user experience. The improved design also responds to the selected colorway and page styles.

Configuring the Calculator

The Membership Calculator uses Membership content items. These must be created for the Membership Calculator to function.

  1. Create a Membership node for each membership type your Branch or Association offers.

  2. Inside each Membership node, add a Membership Info Paragraph with the details of that membership at each of your Locations. This paragraph includes fields for:

    • Location: A reference to an existing Branch content type.
    • Link: The URL a member is directed to for signing up for the membership at the selected location.
    • Join Fee: The one-time fee to join.
    • Monthly Rate: The recurring monthly membership fee.

The Membership Calculator presents a three-step process:

  1. Membership Type
  2. Primary Location
  3. Summary

Membership Type

This step displays the Title, Image, and Description of each published Membership node. This information is pulled directly from the corresponding Membership content items.

A screenshot of the Membership Calculator Type step.

Primary Location

This step shows a map with radio buttons, enabling members to select their preferred primary location. All locations listed in the YMCA Website Services Location Filter Settings (see the Troubleshooting section below) are included in the list.

A screenshot of the Membership Calculator Location step.

Summary

This final page displays a link for members to continue their registration or a message stating that the selected membership is unavailable at the chosen location. The summary includes:

  • The selected branch location.
  • The selected membership type.
  • The monthly rate and join fee, if applicable.
  • A button to proceed to the registration link, if a membership is available at the selected location.

A screenshot of the Membership Calculator Summary step displaying a price.
A screenshot of the Membership Calculator Summary step indicating no membership is available.

Placing the Calculator on a page

Once configured, the Membership Calculator can be placed on a page using:

Troubleshooting

If the second step of the Membership Calculator does not display any locations, navigate to Administration > YMCA Website Services > Settings > YMCA Website Services Location Filter Settings. Ensure that all Branches you want to include in the location search are selected.

A screenshot displaying the Location Filter settings.

12.2 - Membership Framework

This application is built on Drupal Commerce and provides advanced options for building a membership journey.

The Membership Framework is distributed in the openy_memberships repository and must be added and installed on top of the base distribution. We recommend working with your development partner if you wish to go this route.

Check out the Membership Framework sandboxes for a demonstration.

Membership Landing Pages

To get started with the Membership Framework, you will first need to create a number of landing pages.

The examples below use Paragraphs. Similar pages can be created using Layout Builder blocks and the Membership Framework custom block.

Membership Builder

  1. Go to /node/add/landing_page

  2. Title: Membership Builder

  3. Layout: Two Columns with left sidebar

  4. Header Area: Add a “Small banner” paragraph and fill in the fields.

  5. Content area: Add a “Memberships” paragraph (it has pre-filled fields).

  6. Sidebar Area: Add a “Block Container” paragraph with the “Memberships Desktop Sidebar” skin.

    • Block_ref: Choose “Paragraph container” with the “Memberships Menu Container” title.
  7. Sidebar Area: Add “Simple content” with the “Memberships Button” skin and link to the builder:

    <p><a class="btn btn-primary" href="/membership-builder"><span class="text">JOIN THE Y</span></a></p>
    
  8. Sidebar Area: Add a “Sidebar Menu” with the “Memberships Sidebar Menu” skin to create your Memberships Menu with these items:

    • Membership Types
    • Member Benefits
    • Discounts
    • Corporate Wellness
    • Free Trial

    A screenshot of memberships menu settings page.

  9. Sidebar Area: Add a “Block container” with the “Memberships Feature card” skin. Use the “Feature Card” block type with any content allowed in this block.

  10. Save the landing page.

Membership Types

  1. Go to /node/add/landing_page
  2. Title: Membership Types
  3. Layout: Two Columns with left sidebar
  4. Header Area: Add a “Small banner” paragraph and fill in the fields.
  5. Content Area:
    • Add a “Simple content” paragraph with the “Membership Simple Content” skin and text.
    • Add a “Membership Types Listing” with the “Membership Types” skin.
  6. Sidebar Area: Follow the same steps for the “Membership Builder” page.
  7. Save the landing page.

Member Benefits

  1. Go to /node/add/landing_page

  2. Title: Member Benefits

  3. Layout: Two Columns with left sidebar

  4. Header Area: Add a “Small banner” paragraph and fill in the fields.

  5. Content Area: Fill the area with content. An example is shown in the next screenshot.

  6. Sidebar Area: Follow the same steps for the “Membership Builder” page.

  7. Save the landing page.

    A screenshot of the member benefits landing page creation.

Discounts

  1. Go to /node/add/landing_page

  2. Title: Discounts

  3. Layout: Two Columns with left sidebar

  4. Header Area: Add a “Small banner” paragraph and fill in the fields.

  5. Content Area: Fill the area with content. An example is shown in the next screenshot.

  6. Sidebar Area: Follow the same steps for the “Membership Builder” page.

  7. Save the landing page.

    A screenshot of the discounts page creation.

Corporate Wellness

  1. Go to /node/add/landing_page

  2. Title: Corporate Wellness

  3. Layout: Two Columns with left sidebar

  4. Header Area: Add a “Small banner” paragraph and fill in the fields.

  5. Content Area: Fill the area with content. An example is shown in the next screenshot.

  6. Sidebar Area: Follow the same steps for the “Membership Builder” page.

  7. Save the landing page.

    A screenshot of the corporate wellness page creation.

Free Trial

  1. Go to /node/add/landing_page
  2. Title: Free Trial
  3. Layout: Two Columns with left sidebar
  4. Header Area: Add a “Small banner” paragraph and fill in the fields.
  5. Content Area: Add “Simple content” with a description.
  6. Content Area: Add a “Webform” with the “Memberships Free Trial Webform” skin and the “Memberships Free Trial” webform.
  7. Sidebar Area: Follow the same steps for the “Membership Builder” page.

Membership Products

  1. Go to /admin/commerce/products

  2. Click on + Add product, then choose Membership.

  3. You’ll see these fields:

    • Title
    • Description
    • Add-ons (used in specific cases, skip for default setup)
    • Total Available
  4. Subfields:

    • Related Add-on (skip for default functionality)
    • Age groups (select age groups, usually Adults, Youth, Seniors)
    • Total Available (number of people allowed for the age group selected above for the membership product. You can add multiple groups by clicking “Add another item” for Family memberships)
    • Total Free (designed for cases where extra people are allowed in the membership, but with an additional fee. Fill with the same value as Total Available for default functionality)
  5. Branches in the product: Use if a membership is specific to a branch. If “None” is selected, the membership will appear for all branches.

    A typical setup is shown in the following screenshot:

    A screenshot of the product creation display.

  6. Click on the “Save and add variations” button (or go to the “Variations” tab if editing a previously created product).

    A typical setup for variations of a membership is shown in the following screenshot:

    A screenshot of a product variations configuration.

13 - Schedules

The distribution provides two applications for managing schedules at your YMCA.

Under the hood, these applications use the Activity/Class/Session Content Types and the YMCA Sync module to import content from an external API. These components together comprise the “Program Event Framework,” which is highlighted in a case study on drupal.org.

13.1 - Activity Finder

Provides an interactive tool to help members find and book activities.

Activity Finder combines data from the Activity, Class, and Session content types into an interactive tool that can be used with Paragraphs or Layout Builder pages.

Out-of-the-box, YMCA Website Services’s Activity Finder integrates with Daxko, ActiveNet, and Personify. Configuring these integrations is mostly user-friendly, but often is supported by a partner development team. Any other CRM will require custom developer work.

See the Program Event Framework developer docs for a full list of integrations.

Block configuration

When you add the Activity Finder block to a page, you have a number of options. These are in addition to the configuration at Admin > YMCA Website Services > Settings > Activity Finder Settings (/admin/openy/settings/activity-finder). See the Activity Finder module README for more information.

  • Location & Category Filters - Restrict this block to show sessions from only certain Locations or Categories. ‘Limit’ will show only the specified options. ‘Exclude’ will remove the specified options. Generally, you should choose either Exclude or Limit, not both.
    • Limit by location - Only show sessions at specific locations in the results.
    • Exclude by location - Remove sessions at specific locations from the results.
    • Limit by category - Only show sessions related to specific Program Subcategories in the results.
    • Exclude by category - Remove sessions related to specific Program Subcategories from the results.
  • Legacy mode - Shows some data as it was in the previous version of Activity Finder (v3):
    • Disables bookmark functionality on the results screen.
    • Doesn’t display the age indicator in the result card of activities.
    • Changes the days + times wizard step. Displays only days of week, but not times of each day (doesn’t support DaysTimes filter).
  • Weeks filter - Changes the Day/Time filter to use custom defined Week filters.
    • This requires setting the Weeks configuration in the Activity Finder settings (/admin/openy/settings/activity-finder).
      Activity Finder Weeks configuration.
    • Note: Only sessions that have “Camp” in the title or room fields will return for this filter.
  • Additional filters - These filters are off by default, but can be enabled in the Block Configuration.
    Activity Finder additional filters
    • Start Month - Filters based on the month in the Session Time field.
    • In Membership - Shows Sessions that have In membership checked.
    • Duration - The length of the Session. This is configurable in the Activity Finder settings (/admin/openy/settings/activity-finder) and defaults to:
      • Single day
      • Multi-day (up to 5 days)
      • Weekly (up to 3 weeks)
      • Monthly (up to 5 weeks)
      • Season (up to 12 weeks)
      • School year (~9 months)
      • Full year
  • Hide Home Branch info block - Disables functionality related to the user’s selected home branch.
  • Background image - An image that’s displayed in the background of the banner above Activity Finder.

The Activity Finder block configuration.

Front-end

Once the Activity Finder Paragraph or Activity Finder Layout Builder Block has been added to a page, users can see its content.

A set of screenshots illustrating the Activity Finder application with items labeled as per the following descriptions.

Filters

  • Schedules - Filters by a number of facets, which are configurable in the Block Configuration or Activity Finder settings.
    • Age(s) - Filters based on the Min Age and Max Age. Age ranges are configurable in the Activity Finder settings (/admin/openy/settings/activity-finder).
    • Day(s) & Time(s) - Filters by the time of date on specific days of the week. This filter has no configuration.
    • Weeks - Replaces date/time filter when Weeks filter is selected in the Block Configuration. See configuration requirements above.
  • Activities - Program Subcategory filters grouped by Program.
  • Locations - Location filters grouped by Content type.

See Block Configuration for more detail on other available filters.

Results

The filtered results in the Activity Finder app are a list of Sessions that meet the given filter criteria.

Each row of results contains:

  • The Session Title.
  • The Session Time, which contains a date, days of the week, and times.
  • The Session Location.
  • The Session Min/Max Age.
  • The Member Price and Non-member price.
  • An indication of the number of spots available, from the Initial Availability field.

Clicking on the row will bring up a pop-up with further details:

  • The Session Description.
  • A “Learn more” link and “Register” button which both go to the URL in the Session Registration Link field.

Additional topics

Allowing UTM codes in Activity Finder

UTM codes can be used to track the effectiveness of marketing campaigns. Activity Finder uses query strings as filters, but as of version 4.2.0 it will also maintain UTM codes in the URL.

Activity Finder begins with a number of preset arguments, and those can be modified at Admin > YMCA Website Services > Settings > Activity Finder Settings (/admin/openy/settings/activity-finder) in the Allowed Query Arguments field.

A screenshot of the Activity Finder settings, focused on the “Allowed Query Arguments” field

Once those settings are saved, you can visit an Activity Finder page with UTM codes attached, for example:

https://example.com/activity_finder?step=results&selectedAges=24&selectedLocations=1541437&selectedActivities=2786027,2786083&utm_source=promotional_member&utm_medium=email&utm_content=button_register_now&utm_campaign=fall_group_swim_lessons_2021

and see that the codes are maintained as the filters are changed.

13.2 - Group Schedules

Displays daily group exercise classes with filters and a PDF download.

Sometimes called “Group Exercise” or “Group Schedules”, the Repeat Schedules block provides a similar view to Activity Finder, but focuses on recurring, often drop-in classes. You can see an example of this on our sandbox site.

Developers can find more information in ynorth-project/openy_repeat and Program Event Framework.

As of August 2024, the Schedules have an updated design with improved functionality and user experience. The improved design will also respond to the selected colorway and page styles.

Using Group Schedules

Block Configuration

After you add the Paragraph or Block to a page, configure the options:

  • PDF Schedule link - a link to a manually generated PDF as an alternative to the automatically generated one.
  • Clear All link - where the user is directed when they use the “Clear all” link.
  • Limit by category - choose categories with autocomplete to only show certain categories.
  • Filters - choose the filters that show up in the sidebar. The available filters are:
    • by category
    • by class name
    • by instructor name
  • Limit by Location - choose a location to only show events from that location.
  • Display instructor - controls whether the instructor’s name is displayed.
  • Display end time
  • Categories Exclude - exclude any programs that are tagged with specific categories.
  • PDF only view - only show the PDF link and not the schedule.

Front-end

Data from Sessions, Classes, and Activities are all used to form the Repeat Schedules. Here’s what shows up where. Fields are noted with their relationships, so session.class.activity.title means “the title of the Activity referenced by the Class referenced by the Session”.

Fields used in the table view:

A diagram listing the relationships between the fields in the Repeat Schedules table and their names.

Fields used in the popup view:

A diagram listing the relationships between the fields in the Repeat Schedules modal and their names.

13.3 - Simple Schedules

The PEF Schedules module allows Ys to create and manage schedules with a simple, calendar-based view powered by FullCalendar.

YCloudYUSA/y_pef_schedule

See PEF Schedules for installation instructions. Also reference the README.md file in the module for additional information.

Once you install the PEF Schedules module, you will be able to build schedules and add sessions via a calendar-based builder.

Before you start

Create schedule groupings

The Schedule editor allows Content Editors to create Sessions on a WYSIWYG calendar interface. As described in the PEF data model, Sessions require Classes, which reference Activities, which reference Program Subcategories, which require Programs.

flowchart LR
    subgraph "PEF Relationships"
        direction LR
        Session -- requires --> Class
        Class -- references --> Activity
        Activity -- references --> PS
        PS -- requires --> Program
        PS["Program Subcategory"]
    end

You will need to create at least a Class and Activity to start adding events to the calendar. Go to Admin > Content > Add Content (/node/add) to start adding items.

If you have preexisting content for any of these content types you can use them here. You may first need to configure the Activity Color for existing Activities.

Activity colors

PEF Schedules adds a new Color field to Activities which is used to style the categories on the calendar.

An example of different colored Activity labels

The Color field takes a hex value (#XXXXXX where X is a hexadecimal character (0-9, a-f)). We recommend using colors from the Brand Standard Color Wheel. The default color is configurable in the Calendar Settings. We recommend selecting dark tones from the color wheel as the item titles are displayed with white text.

Calendar settings

Settings for the calendar are configurable at Admin > YMCA Website Services > Settings > Schedules calendar settings (admin/openy/settings/schedules-calendar). This form is managed by the \Drupal\y_pef_schedule\Form\FullCalendarSettingsForm.

Options include:

  • Slot settings - These relate to creating events on the calendar.
    • Slot Duration - The default length of each time slot. This setting defines the length of each time slot in the calendar (e.g., 00:30:00 for 30 minutes). Must be in the format of HH:MM:SS.
    • Snap Duration - The default granularity to which events “snap” when clicking and dragging on the calendar. This setting determines the granularity of time slot selection and event dragging (e.g., 00:30:00 for 30 minutes). Must be in the format of HH:MM:SS.
    • Slot Label Interval - The interval between time labels on the calendar’s time axis. This setting specifies the interval between time labels displayed along the calendar’s axis (e.g., 01:00 for every hour). Must be in the format of HH:MM.
  • Time Settings - These help make the calendar display more relevant to your user’s needs.
    • Min Time - The earliest time that is visible on the calendar view. Enter the earliest time in HH:MM:SS format that you want to be visible in the calendar’s view. This setting helps to limit the view to specific hours, making the calendar more relevant to the user’s needs.
    • Max Time - The latest time that is visible on the calendar view. Enter the latest time in HH:MM:SS format that you want to be visible in the calendar’s view. This time represents the cutoff point at which the calendar view will stop displaying events for the day.
  • Default Color - Enter the default color for activities in the calendar. Enter the color in hexadecimal string format #XXXXXX where X is a hexadecimal character (0-9, a-f).

Manage schedules

Once everything is configured, you can start managing schedules. See a list of available schedules at Admin > Content > Schedules Calendar (admin/openy/branch-schedules). Click on one of the options to open the editable schedule.

A description of the options available when managing the schedule.

When in the schedule, you can:

  • Click Download PDF to download a PDF of the current display.
  • Click Legend to open the legend, then click items in the legend to filter the view.
  • Use the Week/Day buttons to filter and change the view or page between weeks/days.
  • Click anywhere in the calendar to add a session.
  • Click on an existing item to view its details and edit.
  • Drag from the middle of an item to change its time.
  • Drag from the bottom of an item to change its duration.

Create sessions

When creating a session from the schedule, you’ll see a simplified version of the Add Session (/node/add/session) form.

The options available when creating a session.

  • Enter a Title (required).
  • Select a Class from the dropdown (required).
  • Enter a Room and/or Instructor (optional).
  • Choose a Location (required).
  • Add a Session Description (optional).
  • Set a Start date/time and End date/time (required). The time values will determine when on each day the session happens. The dates will determine the start and end of its recurrence if it happens across multiple days.
  • Set the Days on which the Session recurs during the duration of the dates set above (required).

Display schedules

Once content is added to the schedule, you have several options for showing it to users:

  1. Place the Simple Schedule block on any Layout Builder page. This block adds a calendar view of a Branch schedule to a page. Configure the block by selecting the desired schedule.
  2. All items added via the Simple Schedule will be shown in Activity Finder or Group Schedules. Follow the directions on those pages to configure the respective components and add them to a page.
  3. Download the schedule PDF and upload it somewhere on your site.