Reference - Macro methods

Macro expressions allow you to use a large variety of methods. The following categories list the methods according to the type of provided functionality:

Keep in mind that the recommended macro syntax is to use infix notation for the first parameter of methods.

For example: {% "word".ToUpper() %} instead of {% ToUpper("word") %}

 

 

Data manipulation

MethodReturn typeParametersDescription
GetValueobject
  • ISimpleDataContainer container
  • string column
  • object defaultValue
Gets the value of the specified data column of an object that implements the ISimpleDataContainer interface. You can specify a default value used if the requested data is null.
GetPropertyobject
  • IHierarchicalObject object
  • string property
  • object defaultValue
Gets the value of the specified property of an IHierarchicalObject object. You can specify a default value used if the requested property is null.
GetItemobject
  • IEnumerable collection
  • int index
  • object defaultValue
Gets the object at the specified index of a collection. You can specify a default value used if the requested object is null.
OrderByAbstractObjectCollection
  • AbstractObjectCollection collection
  • string orderBy

Returns the collection of objects, with the order defined by the specified SQL ORDER BY clause.

If the macro is saved by a user without the Administrator privilege level, the method only allows the following SQL syntax:

  • one or more column names (separated by commas)
  • the ASC and DESC keywords
WhereAbstractObjectCollection
  • AbstractObjectCollection collection
  • string where

Filters a collection of objects according to the specified SQL Where condition.

If the macro is saved by a user without the Administrator privilege level, the method only allows the following SQL syntax in the where condition:

  • column names, values and basic operators: =, !=, >, <
  • AND & OR operators, parentheses
  • column BETWEEN value AND value
  • column LIKE value
  • column IN (values)
  • column IS NULL
  • NOT keyword for the above expressions (NOT BETWEEN, NOT LIKE, NOT IN, IS NOT NULL)

Other expressions and SQL functions are not supported.

TopNAbstractObjectCollection
  • AbstractObjectCollection collection
  • int topn
Returns only the specified number of objects in the collection.
ColumnsAbstractObjectCollection
  • AbstractObjectCollection collection
  • string columns

Returns the collection of objects containing only the specified data columns.

If the macro is saved by a user without the Administrator privilege level, the method only allows the following SQL syntax:

  • one or more column names (separated by commas)
  • SQL aliases for columns defined using the AS keyword (must be upper case)
FilterInfoObjectCollection
  • IEnumerable collection
  • string condition
Filters a collection of objects according to the specified macro condition.
ClassNamesTreeNodeCollection
  • TreeNodeCollection collection
  • string classNames
Filters a TreeNodeCollection of pages according to the specified page types. The second parameter must contain a list of allowed page type code names, separated by semicolons.
InListbool
  • object object
  • IEnumerable collection
Returns a true value if the object exists within the specified collection.
Allbool
  • IEnumerable collection
  • string condition
Returns a true value if all of the objects in the collection match the given condition. Specify the condition as a macro expression.
Anybool
  • IEnumerable collection
  • string condition

Returns a true value if at least one object in the collection matches the given condition. Specify the condition as a macro expression.

If you leave out the condition parameter, the method returns true if the collection contains at least one object.

Throws an exception if the collection is null.

Existsbool
  • IEnumerable collection
  • string condition

Returns a true value if at least one object in the collection matches the given condition. Specify the condition as a macro expression.

If you leave out the condition parameter, the method returns true if the collection contains at least one object.

Returns false if the collection is null.

RandomSelectionIList
  • IEnumerable items
  • int numberOfItems
Returns randomly selected objects from the collection. You can optionally specify the number of items.
SelectIntervalIList
  • IEnumerable items
  • int lowerBound
  • int upperBound
Returns the specified interval of objects from the collection.
Cacheobject
  • object expression
  • int cacheMinutes

  • bool condition
  • string cacheItemName

  • string cacheItemNameParts

  • CMSCacheDependency cacheDependency

Evaluates the specified macro expressions and stores the result in the server-side application cache. The system only evaluates the expression if the result is not found in the cache.

See also: Caching the results of macros

GetCacheDependency
___________________
CMSCacheDependency
_____________________
  • string[] dependencies

Returns a CMSCacheDependency object based on the specified dummy cache keys (one or more string parameters).

See also:

> Back to the list of macro method categories

Data conversion

MethodReturn typeParametersDescription
ToString
___________________
string
_____________________
  • object value
  • string defaultValue
  • string culture
  • string format

Converts an object to a string. Returns the optional default value if the conversion is not possible.

You can also specify the culture context and a formatting string used for the conversion.

ToIntint
  • object value
  • int defaultValue
Converts an object to an integer number. Returns the optional default value if the conversion is not possible.
ToBoolbool
  • object value
  • bool defaultValue
Converts an object to a boolean value. Returns the optional default value if the conversion is not possible.
ToDoubledouble
  • object value
  • double defaultValue
  • string culture

Converts an object to a double number. Returns the optional default value if the conversion is not possible.

You can also specify a culture code to determine the formatting of the decimal number.

ToGuidguid
  • object value
  • Guid defaultValue
Converts an object to a GUID value. Returns the optional default value if the conversion is not possible.
ToDateTimeDateTime
  • object value
  • DateTime defaultValue
  • string culture

Converts an object to a DateTime value. Returns the optional default value if the conversion is not possible.

You can also specify a culture code to determine the date format.

FromOADateDateTime
  • double value
Converts a double representation of a date and time value (OLE Automation Date) to a DateTime object.
ToTimeSpanTimeSpan
  • object value
Converts an object to a TimeSpan value. Returns null if the conversion is not possible.
ToBaseInfoBaseInfo
  • object value
  • BaseInfo defaultValue
Converts an object to a BaseInfo — the general type for Kentico system objects and pages. Returns the optional default value if the conversion is not possible.
ListArrayList
  • object items
Converts a list of objects to an ArrayList.

> Back to the list of macro method categories

Text manipulation

MethodReturn typeParametersDescription
Containsbool
  • string text
  • string search
Returns a true value if the string specified by the second parameter occurs within the first string.
EndsWithbool
  • string text
  • string findText
Indicates whether the string specified by the second parameter occurs at the end of the first string.
Formatstring
  • string value
  • string format

Replaces all formatting expressions in a string using the text equivalents specified in the second parameter.

Based on composite formatting.

FormatNotEmptystring
  • string value
  • string format
  • string emptyResult

If the first parameter is not empty or null, replaces all formatting expressions in the string using the text equivalents specified in the second parameter. Returns the optional third parameter if the value is null or empty.

Based on composite formatting.

GetMatchstring
  • string text
  • string regex
Matches the string value to the specified regular expression and returns the match.
IndexOfint
  • string text
  • string searchFor
Returns the index of the first occurrence of the second string within the first string.
LastIndexOfint
  • string text
  • string searchFor
Returns the index of the last occurrence of the second string within the first string.
LimitLengthstring
  • string text
  • int length
  • string padString
  • bool wholeWords

Limits the length of the string to the specified number of characters.

The padString parameter allows you to set a string that the method appends to the end of the limited result. The length of the parameter is included in the maximum length.

If you set the wholeWords parameter to true, the method preserves the last word in the string.

LoremIpsumstring
  • int length
Generates lorem Ipsum text. You can specify the number of generated characters (1000 by default).
Matchesbool
  • string text
  • string regex
Indicates whether the string matches the specified regular expression.
NotContainsbool
  • string text
  • string search
Returns a true value if the string specified by the second parameter does NOT occur within the first string.
PadLeftstring
  • string text
  • int length
  • string paddingString

Adds leading characters to the string until the total length matches the second parameter.

By default, the method uses spaces as the padding character, but you can optionally specify a different character.

PadRightstring
  • string text
  • int length
  • string paddingString

Adds trailing characters to the string until the total length matches the second parameter.

By default, the method uses spaces as the padding character, but you can optionally specify a different character.

RegexReplacestring
  • string text
  • string regex
  • string replacement

Replaces strings that match the regular expression pattern within the first string using the replacement string.

Removestring
  • string text
  • int position
  • int length
Deletes characters from the string, starting at the specified index. By default, the method removes all remaining characters from the specified position. You can optionally specify the number of characters to be removed.
Replacestring
  • string text
  • string replace
  • string replacement
Replaces all occurrences of the second string within the first string using the replacement string.
Splitstring[]
  • string text
  • string delimiters
  • bool removeEmpty
Separates the string into an array of substrings according to the specified delimiting characters. If the optional third parameter is true, the method removes empty substrings from the result.
StartsWithbool
  • string text
  • string findText
Indicates whether the string specified by the second parameter occurs at the start of the first string.
Substringstring
  • string text
  • int index
  • int length
Returns a substring starting at the specified index. By default, the method returns all remaining characters from the specified index. You can optionally specify the number of characters to be returned.
ToLowerstring
  • string text
Converts the entire string to lower case.
ToUpperstring
  • string text
Converts the entire string to upper case.
Trimstring
  • string text
  • string charsToTrim

Removes all leading and trailing occurrences of characters from the string. By default, the method trims white space characters, but you can optionally specify a different set of characters (as a string).

TrimEndstring
  • string text
  • string charsToTrim
Removes all trailing occurrences of characters from the string. By default, the method trims white space characters, but you can optionally specify a different set of characters (as a string).
TrimStart
___________________
string
_____________________
  • string text
  • string charsToTrim
Removes all leading occurrences of characters from the string. By default, the method trims white space characters, but you can optionally specify a different set of characters (as a string).

Tips: To perform lexicographical comparison of strings, use the basic comparison operators (==, <, >, <=, >=).  Add macro parameters to specify case sensitivity and the culture context of text operations.

> Back to the list of macro method categories

Advanced text processing

MethodReturn typeParametersDescription
GetResourceStringstring
____________
  • string resourceStringKey
  • string culture
Translates the specified resource (localization) string. By default, the target language of the localization depends on the current culture. You can specify the target language using the optional parameter.
JSEscapestring
  • string text

Escapes the string for safe usage in JavaScript. Adds the \ escape character before special characters used by JavaScript (quotes, etc.).

Localizestring
  • string inputText
  • string culture
Resolves localization expressions within the specified text. By default, the target language of the localization depends on the current culture. You can specify the target language using the optional parameter.
MapPathstring
  • string path
Returns the physical file path that matches the specified virtual path.
ResolveBBCodestring
  • string text

Resolves BBCode tags in the specified text, for example:

{% ResolveBBCode("[quote]Sample text[/quote]") %}.

ResolveMacroExpressionsstring
  • string expression
Resolves the specified macro expression (without the {% %} parentheses).
ResolveMacrosstring
  • string inputText
Resolves all macros within the specified text.
ResolveUrlstring
  • string url

Converts relative URLs starting with ~/ to relative URLs containing the current application path (so they can be resolved by clients). Absolute URLs remain unchanged.

StripTagsstring
  • string text
Removes all HTML tags from the specified text.
SQLEscapestring
  • string text
Escapes the string for safe usage in SQL commands (to avoid SQL injection).
UnresolveUrlstring
  • string url

Converts relative URLs containing the application path to relative URLs starting with ~/. Absolute URLs remain unchanged.

UrlEncodestring
  • string url
Applies URL encoding to the specified string.

> Back to the list of macro method categories

Date and time modification

MethodReturn typeParametersDescription
AddMillisecondsDateTime
  • DateTime datetime
  • int milliseconds
Adds the specified number of milliseconds to a DateTime value.
AddSecondsDateTime
  • DateTime datetime
  • int seconds
Adds the specified number of seconds to a DateTime value.
AddMinutesDateTime
  • DateTime datetime
  • int minutes
Adds the specified number of minutes to a DateTime value.
AddHoursDateTime
  • DateTime datetime
  • int hours
Adds the specified number of hours to a DateTime value.
AddDaysDateTime
  • DateTime datetime
  • int days
Adds the specified number of days to a DateTime value.
AddWeeksDateTime
  • DateTime datetime
  • int weeks
Adds the specified number of weeks to a DateTime value.
AddMonthsDateTime
  • DateTime datetime
  • int months
Adds the specified number of months to a DateTime value.
AddYearsDateTime
  • DateTime datetime
  • int years
Adds the specified number of years to a DateTime value.
ToShortDateStringstring
  • DateTime datetime
Converts the value of the DateTime parameter to an equivalent short date string representation.
ToShortTimeString
________________
string
____________
  • DateTime datetime
Converts the value of the DateTime parameter to an equivalent short time string representation.

> Back to the list of macro method categories

Mathematical operations

The macro autocomplete help only shows the mathematical methods as members of the Math namespace, for example {% Math.Abs(-2) %}. However, the system resolves the methods even without the namespace.

MethodReturn typeParametersDescription
Absdouble
  • double number
The absolute value of the specified number.
Acosdouble
  • double number
The angle whose cosine is the specified number.
Asindouble
  • double number
The angle whose sine is the specified number.
Atandouble
  • double number
The angle whose tangent is the specified number.
Averagedouble
  • InfoObjectCollection collection
  • string columnName
The average of all numbers in the specified data column of the objects in the collection.
Ceilingdouble
  • double number
The smallest whole number greater than or equal to the specified number.
Cosdouble
  • double number
The cosine of the specified angle.
Coshdouble
  • double number
The hyperbolic cosine of the specified angle.
Expdouble
  • double number
e raised to the specified power.
Floordouble
  • double number
The largest whole number lesser than or equal to the specified number.
GetRandomInt
________________
int
____________
  • int minValue
  • int maxValue
  • int seed
Generates a random positive integer. You can use the optional parameters to specify the range of possible numbers, and the seed number for the generator.
GetRandomDoubledouble
  • int minValue
  • int maxValue
  • int seed
Generates a random positive decimal number. You can use the optional parameters to specify the range of possible numbers, and the seed number for the generator.
IsOddbool
  • int number
Returns a true value if the specified number is odd.
IsEvenbool
  • int number
Returns a true value if the specified number is even.
Logdouble
  • double number
The base e logarithm of a specified number.
Log10double
  • double number
The base 10 logarithm of a specified number.
Maxdouble
  • double parameters
The maximum from the given list of numbers.
Maximumdouble
  • InfoObjectCollection collection
  • string columnName
The maximum of all numbers in the specified data column of the objects in the collection.
Mindouble
  • double parameters
The minimum from the given list of numbers.
Minimum 
  • InfoObjectCollection collection
  • string columnName
The minimum of all numbers in the specified data column of the objects in the collection.
Moduloint
  • int left
  • int right
The modulo of two integer numbers.
Powdouble
  • double base
  • double exp
The number raised to the specified power.
Percentdouble
  • double percent
Multiples the specified number by 0.01.
Rounddouble
  • double number
  • int digits
  • string mode

The number nearest to the specified value.

The optional second parameter sets the number of fractional digits in the rounded value.

You can use the third parameter to set the rounding mode for numbers half-way between two other numbers. Supported variants are:

  • AwayFromZero - rounds to the nearest number away from zero
  • ToEven - rounds toward the nearest even number
Signdouble
  • double number

Returns a value indicating the sign of a number:

  • -1 (the number is less than zero)
  • 0 (the number is zero)
  • 1 (the number is greater than zero)
Sindouble
  • double number
The sine of the specified angle.
Sinhdouble
  • double number
The hyperbolic sine of the specified angle.
Sqrtdouble
  • double number
The square root of a specified number.
Sumdouble
  • InfoObjectCollection collection
  • string columnName
The sum of all numbers in the specified data column of the objects in the collection.
Tandouble
  • double number
The tangent of the specified angle.
Tanhdouble
  • double number
The hyperbolic tangent of the specified angle.

> Back to the list of macro method categories

E-commerce

SKU properties

MethodReturn typeParametersDescription

GetPrice

_________________________

string

____________

  • object (SKUInfo) sku
  • object (CurrencyInfo) currency
Returns the price of the specified product (object sku) in the specified currency (object currency).
GetSKUPriceSavingstring
  • object (int) SKUID
    _________________________ 

Returns the amount of saved money in the current user's shopping cart currency based on the difference between the final selling price and the retail price of the SKU specified with the ID (object SKUID). If the selling price is bigger than the retail price, 0 is returned.

If product prices are displayed with discounts on the live site, the amount is calculated with discounts. If product prices are displayed with taxes on the live site, the amount is calculated also with taxes. The price from the SKUPrice column is used as the final selling price; the price from the SKURetailPrice column is used as the retail price.

GetSKUOriginalPricestring
  • object (int) SKUID

Depending on what is the bigger number, returns the price from the SKURetailPrice column or the price before applying discounts of the SKU specified with the ID (object SKUID) in the current user's shopping cart currency. If both prices equals the price from the SKUPrice column, 0 is returned.

If product prices are displayed with taxes on the live site, the price is returned with taxes.

IsOptionUsedInVariantsbool
  • int skuID
Returns true if the product option with the specified ID (int skuID) is used in any existing product variant.

Properties related to SKU

MethodReturn typeParametersDescription

GetManufacturer

_________________________

object

____________

  • int id
  • string column

Returns an object from the specified column (string column) of the manufacturer with the specified ID (int id).

GetDepartmentobject
  • int id
  • string column

Returns an object from the specified column (string column) of the department with the specified ID (int id).

GetSupplierobject
  • int id
  • string column

Returns an object from the specified column (string column) of the supplier with the specified ID (int id).

GetInternalStatusobject
  • int id
  • string column

Returns an object from the specified column (string column) of the internal status with the specified ID (int id).

GetPublicStatusNamestring
  • object (int) statusId
Returns the value from the SKUPublicStatusID column of the public status with the specified ID (object statusId).
GetPublicStatusobject
  • int id
  • string column

Returns an object from the specified column (string column) of the public status with the specified ID (int id).

GetMainSiteCurrencyCurrencyInfo
  • int siteID
Returns the currency used on the site with the specified ID (int siteID).
GetShoppingCartItemsCountint________________________________________Returns the number of products in the current shopping cart.
GetCouponsMessagestring
  • object (DiscountInfo) Discount

Returns an info message about coupons and their redemption of the specified discount (object Discount).

GetMultiBuyCouponsMessage

string
  • object (MultiBuyDiscountInfo) MultiBuyDiscount
Returns an info message about coupons and their redemption of the specified Buy X Get Y discount (object MultiBuyDiscount).
CheckCustomerSiteIDstring
  • object (CustomerInfo) Customer
Returns true if the specified customer (object Customer) is anonymous on the current site or has login credentials to the current site.
GetMassUnitstring

 

Returns the mass unit of the Kentico instance.

FormatPrice

string
  • double price
  • bool round
Returns the specified price (double price) formatted according to the current currency settings. Set whether you also want to round the price (bool round).

URLs

MethodReturn typeParametersDescription

GetAddToShoppingCartLink

_________________________

string

____________

  • object (int) productId
  • object (bool) enabled

Returns the URL for adding the specified product (object productId) to the current user's shopping cart. You can specify whether the product is enabled (object enabled).

The image in the link is located in "~/CMSModules/CMS_Ecommerce/addorder.png".

GetAddToWishListLinkstring
  • object (int) productId
    ____________________ 

Returns the URL for adding the specified product (object productId) to the current user's wishlist.

The image in the link is located in "~/CMSModules/CMS_Ecommerce/addtowishlist.png".

GetRemoveFromWishListLinkstring
  • object (string) productId

Returns the URL for removing the specified product (object productId) from the current user's wishlist.

ShoppingCartURLstring
  • string siteName

Returns the URL of the current user's shopping cart on the specified site (string siteName).

WishlistURLstring
  • string siteName

Returns the URL of the current user's wishlist on the specified site (string siteName).

GetProductUrlstring
  • object (int, string) skuId

Returns the URL of the product specified by the identifier (object SKUID), which is the primary key.

GetProductUrlForFeedstring
  • object (Guid) skuGUID
  • object (string) skuName
  • object (string) siteName
Returns the URL of the specified product (object skuGUID) with the specified name (object skuName) with the feed query string parameter in the URL for the feed on the specified site (object siteName).
GetEproductUrlstring
  • Guid fileToken
  • string fileName
  • int siteId

Returns the URL for downloading an e-product specified with a unique download URL (Guid fileToken), a file name (string fileName), and an ID of the site on which the order with the e-product took place (int siteId).

GetProductUrlByGUIDstring
  • object (Guid) skuGuid
  • object (string) skuName

  • object (string) siteName

Returns the user-friendly URL of the product specified by the GUID (object skuGuid) and name (object skuName) of the product. You can specify the site name of the product's site (object siteName).

GetProductImagestring
  • object (string) imageUrl
  • object (string) alt
  • object (int) maxSideSize
  • object (int) width
  • object (int) height 

Returns the complete HTML code of the URL of the specified product image (object imageURL) on the current site with the alternative text (object alt). You can specify the maximum width (object maxSideSize), or the required width (object width) and height (object height).

> Back to the list of macro method categories

User membership and permissions

MethodReturn typeParametersDescription
CheckPrivilegeLevelbool
  • object user (UserInfo)
  • UserPrivilegeLevelEnum privilegeLevel

Checks the user's privilege level. Returns a true value if the user's privilege level matches the required UserPrivilegeLevelEnum value or is higher.

You can check the following levels:

  • {% CurrentUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Editor) %}
  • {% CurrentUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin) %}
  • {% CurrentUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin) %}
GetFormattedUserNamestring
  • object user (UserInfo)
  • bool isLiveSite

Returns the formatted username of the specified user object. The default format is <full name> (<nickname>) if the user has a nickname, otherwise <full name> (<username>).

The isLiveSite parameter determines whether the macro displays the username on the live website.

HasAnyMembershipbool
  • object user (UserInfo)
Checks whether the user belongs to any membership in the system.
HasMembershipbool
  • object user (UserInfo)
  • string userMemberships
  • bool allMemberships

Checks if a user belongs to the specified memberships.

Enter the code names of memberships through the userMemberships parameter. When checking multiple memberships, use semicolons (;) to separate the code names. If the allMemberships parameter is true, the user must belong to all specified memberships for the check to succeed.

To check whether the user belongs to a membership on a global level, add the period character (.) prefix before the membership code name.

IsAuthorizedPerResourcebool
  • object user (UserInfo)
  • string resource
  • string permission
Evaluates whether a user has a specific permission for a resource (module). Use code names to identify the resource and permission.
IsAuthorizedPerUIElementbool
  • object user (UserInfo)
  • string resource
  • string elementName
Evaluates whether a user is allowed to access a specific UI element of a resource (module). Use code names to identify the resource and element.
IsInGroupbool
  • object user (UserInfo)
  • string userGroup
Checks if a user belongs to a group (community or workgroup).
IsInRole
________________________
bool
____________
  • object user (UserInfo)
  • string userRole
  • bool allRoles
    ____________________

Checks if a user belongs to the specified roles.

Enter the code names of roles through the userRole parameter. When checking multiple roles, use semicolons (;) to separate the code names. If the allRoles parameter is true, the user must belong to all specified roles for the check to succeed.

To check whether the user belongs to a role on a global level, add the period character (.) prefix before the role code name.

> Back to the list of macro method categories

Transformations

MethodReturn typeParametersDescription
ApplyTransformation

string

  • IEnumerable collection
  • string transformationName
  • string contentBeforeTransformationName
  • string contentAfterTransformationName

Applies Text / XML transformations to a collection of items.

See also: Using transformations in macro expressions

Transformstring
  • IEnumerable collection
  • string transformationText
Applies ad-hoc transformation code (Text / XML type) to a collection of items.

When writing Text / XML transformations, you can use most ASCX transformation methods inside macro expressions.

Outside of transformations, the macro autocomplete only offers the methods under the Transformation namespace, for example Transformation.GetDocumentUrl(). However, you can manually enter the methods even without the namespace.

> Back to the list of macro method categories