Extension Methods

ZauberCMS provides extension methods to simplify common data access patterns. These extensions work with the service-based architecture and are available throughout your components.

Content Extensions

These extension methods work on any object implementing IHasPropertyValues (like Content). Services must be injected via @inject directives in your components.

Get Multiple Media Items

/// <summary>
/// Retrieves a list of media items from a content property.
/// </summary>
/// <param name="content">The content item that holds the media property.</param>
/// <param name="alias">The alias of the media property to fetch.</param>
/// <param name="mediaService">The media service to query.</param>
/// <param name="fallBackUrl">A fallback URL to use if no media is found.</param>
/// <returns>List of media items if found; otherwise, a list containing a single media item with the fallback URL.</returns>
public static async Task<List<Media.Models.Media>> GetMediaItems(
    this IHasPropertyValues content, 
    string? alias,
    IMediaService mediaService, 
    string? fallBackUrl = null)

Usage:


Get Single Media Item

Usage:


Get Multiple Content Items

Usage:


Get Single Content Item

Usage:


Get Content Blocks

Usage:


Get Multiple Users

Usage:


Get Single User

Usage:


Service Extensions

These extension methods provide shortcuts for common service operations.

Get Global Settings

Usage:


Save Global Settings

Usage:


Get Global Data (Generic)

Usage:


Get Current User

Usage:


Get User by ID (Shorthand)

Usage:


Get Media by ID (Shorthand)

Usage:


Get Content by ID (Shorthand)

Usage:


Complete Example

Here's a complete example showing multiple extension methods in use:

Last updated