Is this really the version you are looking for? Kentico Xperience 9 Documentation is no longer updated. Use the switcher in the header to choose your product version.
You can modify Kentico application tiles to display various data. Tiles that display application data are called Live tiles. Live tiles display a numerical value and a description of the numerical value.
The following Kentico applications work as live tiles by default
Content management
On-line marketing
E-commerce
Configuration
You can modify the existing Live tiles to display different data or make static tiles into Live tiles.
Ideally, Live tiles should display information that may require users' attention. By having certain information displayed directly on the application dashboard, users don't have to visit the application itself unless necessary.
Create a class that implements the ILiveTileModelProvider interface.
Implement the logic of the class. The GetModel method needs to return the data of the Live tile in one of the following formats:
LiveTileModel object containing:
Null - in cases when you want the application tile to stay static. For example, when the number of objects displayed by the tile is 0.
using System;
using CMS.ApplicationDashboard;
using CMS.Core;
using CMS.Helpers;
using CMS.OnlineMarketing;
using CMS.SiteProvider;
using CMS.WebAnalytics;
public class ContactManagementLiveTileModelProvider : ILiveTileModelProvider
{
public LiveTileModel GetModel(LiveTileContext liveTileContext)
{
if (liveTileContext == null)
{
throw new ArgumentNullException("liveTileContext");
}
return CacheHelper.Cache(() =>
{
if (!ActivitySettingsHelper.OnlineMarketingEnabled(liveTileContext.SiteInfo.SiteName))
{
return null;
}
var newContactsCount = GetNewContactsCount(liveTileContext.SiteInfo);
return new LiveTileModel
{
Value = newContactsCount,
Description = "New contacts in the last 14 days",
};
}, new CacheSettings(2, "ContactManagementLiveTileModelProvider", liveTileContext.SiteInfo.SiteID));
}
/// <summary>
/// Gets total number of new contacts from the last 14 days.
/// </summary>
/// <param name="site">Contacts' site</param>
/// <returns>Number of new contacts</returns>
private static int GetNewContactsCount(SiteInfo site)
{
return ContactInfoProvider.GetContacts()
.OnSite(site.SiteID)
.CreatedAfter(DateTime.Now.AddDays(-14))
.Count;
}
}Register the live model provider via an assembly attribute using the module code name and UI element code name represented by the Live tile.
Module and UI element code names
Find the module code name when editing the specific module in the Modules application. For Kentico modules, you can also use the constant defined in the CMS.Core.ModuleName class.
Find the UI element code name in Modules -> UI elements on the General tab of the UI element.
[assembly: RegisterLiveTileModelProvider("CustomModuleCodeName", "UIElement", typeof(ContactManagementLiveTileModelProvider))][assembly: RegisterLiveTileModelProvider(ModuleName.ABTEST, "ContactsFrameset", typeof(ContactManagementLiveTileModelProvider))]Note that registering an existing live model provider overwrites the functionality. This way, you can change the behaviour of the default Live tiles.
[assembly: RegisterLiveTileModelProvider(ModuleName.ONLINEMARKETING, "ContactsFrameset", typeof(ContactManagementLiveTileModelProvider))]Save the file.
The Live tile now displays the number of contacts added to the site in the last 14 days.