Skip to content

Extension ​

Type
Class
Namespace
craft\web\twig
Inherits
craft\web\twig\Extension » Twig\Extension\AbstractExtension
Implements
Twig\Extension\GlobalsInterface
Since
3.0.0

Class Extension

View source

Protected Properties ​

PropertyDescription
environment\Twig\Environment, null
viewcraft\web\View, null

environment ​

Type
\Twig\Environment, null
Default value
null

View source

view ​

Type
craft\web\View, null
Default value
null

View source

Public Methods ​

MethodDescription
__construct()Constructor
addressFilter()
appendFilter()Appends HTML to the end of the given tag.
atomFilter()Converts a date to the Atom format.
attrFilter()Modifies a HTML tag’s attributes, supporting the same attribute definitions as craft\helpers\Html::renderTagAttributes().
camelFilter()CamelCases a string.
cloneFunction()Returns a clone of the given variable.
collectFunction()Returns a new collection.
currencyFilter()Formats the value as a currency number.
dataUrlFunction()Generates a base64-encoded data URL for the given file path or asset.
dateFilter()Extending Twig's
dateFunction()Converts an input to a DateTime instance.
datetimeFilter()Formats the value as a date+time.
dumpFunction()Displays a variable(s).
encencFilter()Encrypts and base64-encodes a string.
entryTypeFunction()
expressionFunction()
fieldValueSqlFunction()
filesizeFilter()Formats the value in bytes as a size in human-readable form, for example 12 kB.
filterFilter()Filters an array.
getFilters()
getFunctions()
getGlobals()Registers global variables.
getNodeVisitors()
getTests()
getTokenParsers()
gqlFunction()Executes a GraphQL query against the full schema.
groupFilter()Groups an array by the results of an arrow function, or value of a property.
httpdateFilter()Converts a date to the HTTP format (used by HTTP headers such as Expires).
indexOfFilter()Returns the index of an item in a string or array, or -1 if it cannot be found.
jsonEncodeFilter()This method will JSON encode a variable. We're overriding Twig's default implementation to set some stricter encoding options on text/html/xml requests.
kebabFilter()Kebab-cases a string.
lcfirstFilter()Lowercases the first character of a multibyte string.
lengthFilter()Returns the length of an array, or the total result count of a query.
literalFilter()Escapes commas and asterisks in a string so they are not treated as special characters in craft\helpers\Db::parseParam().
mapFilter()Maps an array.
markdownFilter()Parses text through Markdown.
mergeFilter()Merges an array with another one.
moneyFilter()Outputs a value from a Money object.
multisortFilter()Duplicates an array and sorts it with craft\helpers\ArrayHelper::multisort().
numberFilter()Formats the value as a decimal number.
parseAttrFilter()Parses an HTML tag to find its attributes.
parseRefsFilter()Parses a string for reference tags.
pascalFilter()PascalCases a string.
percentageFilter()Formats the value as a percent number with "%" sign.
pluginFunction()Returns a plugin instance by its handle.
prependFilter()Prepends HTML to the beginning of given tag.
purifyFilter()Purifies the given HTML using HTML Purifier.
pushFilter()Pushes one or more items onto the end of an array.
reduceFilter()Reduces an array.
removeClassFilter()Removes a class (or classes) from the given HTML tag.
renderObjectTemplate()
replaceFilter()Replaces Twig's
rssFilter()Converts a date to the RSS format.
seqFunction()Returns the next number in a given sequence, or the current number in the sequence.
shuffleFunction()Shuffles an array.
snakeFilter()Snake_cases a string.
sortFilter()Sorts an array.
svgFunction()Returns the contents of a given SVG file.
tagFunction()Generates a complete HTML tag.
timeFilter()Formats the value as a time.
timestampFilter()Formats the value as a human-readable timestamp.
translateFilter()Translates the given message.
truncateFilter()Truncates the string to a given length, while ensuring that it does not split words.
ucfirstFilter()Uppercases the first character of a multibyte string.
ucwordsFilter()Uppercases the first character of each word in a string.
unshiftFilter()Prepends one or more items to the beginning of an array.
widontFilter()Inserts a non-breaking space between the last two words of a string.
withoutFilter()Returns an array without certain values.
withoutKeyFilter()Returns an array without a certain key.

__construct() ​

Constructor

View source

Arguments ​

addressFilter() ​

Since
4.0.0

View source

Arguments ​

Returns ​

string

appendFilter() ​

Since
3.3.0

Appends HTML to the end of the given tag.

View source

Arguments ​

  • $tag (string) – The HTML tag that $html should be appended to
  • $html (string) – The HTML to append to $tag.
  • $ifExists (string, null) – What to do if $tag already contains a child of the same type as the element defined by $html. Set to 'keep' if no action should be taken, or 'replace' if it should be replaced by $tag.

Returns ​

string – The modified HTML

atomFilter() ​

Converts a date to the Atom format.

View source

Arguments ​

Returns ​

string – The formatted date

attrFilter() ​

Since
3.3.0

Modifies a HTML tag’s attributes, supporting the same attribute definitions as craft\helpers\Html::renderTagAttributes().

View source

Arguments ​

  • $tag (string) – The HTML tag whose attributes should be modified.
  • $attributes (array) – The attributes to be added to the tag.

Returns ​

string – The modified HTML tag.

camelFilter() ​

CamelCases a string.

View source

Arguments ​

  • $string (mixed) – The string

Returns ​

string

cloneFunction() ​

Returns a clone of the given variable.

View source

Arguments ​

  • $var (mixed)

Returns ​

mixed

collectFunction() ​

Since
4.0.0

Returns a new collection.

View source

Arguments ​

  • $var (mixed)

Returns ​

\Illuminate\Support\Collection

currencyFilter() ​

Since
3.6.0

Formats the value as a currency number.

View source

Arguments ​

Returns ​

string

dataUrlFunction() ​

Since
3.5.13

Generates a base64-encoded data URL for the given file path or asset.

View source

Arguments ​

  • $file (string, craft\elements\Asset) – A file path on an asset
  • $mimeType (string, null) – The file’s MIME type. If null then it will be determined automatically.

Returns ​

string – The data URL

Throws ​

dateFilter() ​

Extending Twig's |date filter so we can run any translations on the output.

View source

Arguments ​

  • $env (\Twig\Environment)
  • $date (DateTimeInterface, DateInterval, string) – A date
  • $format (string, null) – The target format, null to use the default
  • $timezone (DateTimeZone, string, false, null) – The target timezone, null to use the default, false to leave unchanged
  • $locale (string, null) – The target locale the date should be formatted for. By default, the current system locale will be used.

Returns ​

string

dateFunction() ​

Converts an input to a DateTime instance.

View source

Arguments ​

Returns ​

DateTimeInterface

datetimeFilter() ​

Formats the value as a date+time.

View source

Arguments ​

  • $env (\Twig\Environment)
  • $date (DateTimeInterface, string) – A date
  • $format (string, null) – The target format, null to use the default
  • $timezone (DateTimeZone, string, false, null) – The target timezone, null to use the default, false to leave unchanged
  • $locale (string, null) – The target locale the date should be formatted for. By default, the current system locale will be used.

Returns ​

string

dumpFunction() ​

Since
4.4.0

Displays a variable(s).

View source

Arguments ​

  • $context (array)
  • $vars (mixed)

Returns ​

string

encencFilter() ​

Encrypts and base64-encodes a string.

View source

Arguments ​

  • $str (mixed) – The string

Returns ​

string

entryTypeFunction() ​

Since
5.0.0

View source

Arguments ​

Returns ​

craft\models\EntryType

expressionFunction() ​

Since
3.1.0

View source

Arguments ​

Returns ​

yii\db\Expression

fieldValueSqlFunction() ​

Since
5.0.0

View source

Arguments ​

Returns ​

string, null

filesizeFilter() ​

Since
3.6.0

Formats the value in bytes as a size in human-readable form, for example 12 kB.

View source

Arguments ​

Returns ​

string

filterFilter() ​

Filters an array.

View source

Arguments ​

  • $env (\Twig\Environment)
  • $arr (iterable)
  • $arrow (callable, null)

Returns ​

array

Throws ​

  • \Twig\Error\RuntimeError

getFilters() ​

View source

getFunctions() ​

View source

getGlobals() ​

Registers global variables.

View source

getNodeVisitors() ​

View source

getTests() ​

View source

getTokenParsers() ​

View source

gqlFunction() ​

Since
3.3.12

Executes a GraphQL query against the full schema.

View source

Arguments ​

  • $query (string) – The GraphQL query
  • $variables (array, null) – Query variables
  • $operationName (string, null) – The operation name

Returns ​

array – The query result

groupFilter() ​

Groups an array by the results of an arrow function, or value of a property.

View source

Arguments ​

  • $arr (iterable)
  • $arrow (callable, string) – The arrow function or property name that determines the group the item should be grouped in

Returns ​

array[] – The grouped items

Throws ​

  • \Twig\Error\RuntimeError
    if $arr is not of type array or Traversable

httpdateFilter() ​

Since
3.6.10

Converts a date to the HTTP format (used by HTTP headers such as Expires).

View source

Arguments ​

Returns ​

string – The formatted date

indexOfFilter() ​

Returns the index of an item in a string or array, or -1 if it cannot be found.

View source

Arguments ​

  • $haystack (mixed)
  • $needle (mixed)

Returns ​

integer

jsonEncodeFilter() ​

This method will JSON encode a variable. We're overriding Twig's default implementation to set some stricter encoding options on text/html/xml requests.

View source

Arguments ​

  • $value (mixed) – The value to JSON encode.
  • $options (integer, null) – Either null or a bitmask consisting of JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
  • $depth (integer) – The maximum depth

Returns ​

string, false – The JSON encoded value.

kebabFilter() ​

Kebab-cases a string.

View source

Arguments ​

  • $string (mixed) – The string
  • $glue (string) – The string used to glue the words together (default is a hyphen)
  • $lower (boolean) – Whether the string should be lowercased (default is true)
  • $removePunctuation (boolean) – Whether punctuation marks should be removed (default is true)

Returns ​

string – The kebab-cased string

lcfirstFilter() ​

Lowercases the first character of a multibyte string.

View source

Arguments ​

  • $string (mixed) – The multibyte string.

Returns ​

string – The string with the first character converted to lowercase.

lengthFilter() ​

Since
4.2.0

Returns the length of an array, or the total result count of a query.

View source

Arguments ​

  • $env (\Twig\Environment)
  • $value (mixed) – A variable

Returns ​

integer – The length of the value

literalFilter() ​

Escapes commas and asterisks in a string so they are not treated as special characters in craft\helpers\Db::parseParam().

View source

Arguments ​

  • $value (mixed) – The param value.

Returns ​

string – The escaped param value.

mapFilter() ​

Since
4.4.16

Maps an array.

View source

Arguments ​

  • $env (\Twig\Environment)
  • $array (mixed)
  • $arrow (mixed)

Returns ​

array

Throws ​

  • \Twig\Error\RuntimeError

markdownFilter() ​

Parses text through Markdown.

View source

Arguments ​

  • $markdown (mixed) – The markdown text to parse
  • $flavor (string, null) – The markdown flavor to use. Can be 'original', 'gfm' (GitHub-Flavored Markdown), 'gfm-comment' (GFM with newlines converted to <br>s), or 'extra' (Markdown Extra). Default is 'original'.
  • $inlineOnly (boolean) – Whether to only parse inline elements, omitting any <p> tags.
  • $encode (boolean) – Whether special characters should be pre-encoded, before parsing the text as Markdown. Note that the flavor cannot be specified if this option is used.

Returns ​

string

mergeFilter() ​

Since
3.4.0

Merges an array with another one.

View source

Arguments ​

Returns ​

array – The merged array

moneyFilter() ​

Outputs a value from a Money object.

View source

Arguments ​

Returns ​

string, null

multisortFilter() ​

Duplicates an array and sorts it with craft\helpers\ArrayHelper::multisort().

View source

Arguments ​

  • $array (mixed) – The array to be sorted. The array will be modified after calling this method.
  • $key (string, callable, array) – The key(s) to be sorted by. This refers to a key name of the sub-array elements, a property name of the objects, or an anonymous function returning the values for comparison purpose. The anonymous function signature should be: function($item). To sort by multiple keys, provide an array of keys here.
  • $direction (integer, array) – The sorting direction. It can be either SORT_ASC or SORT_DESC. When sorting by multiple keys with different sorting directions, use an array of sorting directions.
  • $sortFlag (integer, array) – The PHP sort flag. Valid values include SORT_REGULAR, SORT_NUMERIC, SORT_STRING, SORT_LOCALE_STRING, SORT_NATURAL and SORT_FLAG_CASE. Please refer to PHP manual for more details. When sorting by multiple keys with different sort flags, use an array of sort flags.

Returns ​

array – The sorted array

Throws ​

numberFilter() ​

Since
3.6.0

Formats the value as a decimal number.

View source

Arguments ​

Returns ​

string

parseAttrFilter() ​

Since
3.4.0

Parses an HTML tag to find its attributes.

View source

Arguments ​

  • $tag (string) – The HTML tag to parse

Returns ​

array – The parsed HTML tag attributes

Throws ​

parseRefsFilter() ​

Parses a string for reference tags.

View source

Arguments ​

Returns ​

string

pascalFilter() ​

PascalCases a string.

View source

Arguments ​

  • $string (mixed) – The string

Returns ​

string

percentageFilter() ​

Since
3.6.0

Formats the value as a percent number with "%" sign.

View source

Arguments ​

Returns ​

string

pluginFunction() ​

Since
3.1.0

Returns a plugin instance by its handle.

View source

Arguments ​

  • $handle (string) – The plugin handle

Returns ​

craft\base\PluginInterface, null – The plugin, or null if it’s not installed

prependFilter() ​

Since
3.3.0

Prepends HTML to the beginning of given tag.

View source

Arguments ​

  • $tag (string) – The HTML tag that $html should be prepended to
  • $html (string) – The HTML to prepend to $tag.
  • $ifExists (string, null) – What to do if $tag already contains a child of the same type as the element defined by $html. Set to 'keep' if no action should be taken, or 'replace' if it should be replaced by $tag.

Returns ​

string – The modified HTML

purifyFilter() ​

Since
3.4.0

Purifies the given HTML using HTML Purifier.

View source

Arguments ​

  • $html (string, null) – The HTML to be purified
  • $config (string, array, null) – The HTML Purifier config. This can either be the name of a JSON file within config/htmlpurifier/ (sans .json extension) or a config array.

Returns ​

string, null – The purified HTML

pushFilter() ​

Since
3.5.0

Pushes one or more items onto the end of an array.

View source

Arguments ​

Returns ​

array

reduceFilter() ​

Since
4.4.16

Reduces an array.

View source

Arguments ​

  • $env (\Twig\Environment)
  • $array (mixed)
  • $arrow (mixed)
  • $initial (mixed)

Returns ​

mixed

Throws ​

  • \Twig\Error\RuntimeError

removeClassFilter() ​

Since
3.7.0

Removes a class (or classes) from the given HTML tag.

View source

Arguments ​

Returns ​

string – The modified HTML tag

renderObjectTemplate() ​

View source

Arguments ​

  • $template (string)
  • $object (mixed)

Returns ​

string

replaceFilter() ​

Replaces Twig's |replace filter, adding support for passing in separate search and replace arrays.

View source

Arguments ​

  • $str (mixed)
  • $search (mixed)
  • $replace (mixed)
  • $regex (boolean, null)

Returns ​

mixed

rssFilter() ​

Converts a date to the RSS format.

View source

Arguments ​

Returns ​

string – The formatted date

seqFunction() ​

Since
3.0.31

Returns the next number in a given sequence, or the current number in the sequence.

View source

Arguments ​

  • $name (string) – The sequence name.
  • $length (integer, null) – The minimum string length that should be returned. (Numbers that are too short will be left-padded with 0s.)
  • $next (boolean) – Whether the next number in the sequence should be returned (and the sequence should be incremented). If set to false, the current number in the sequence will be returned instead.

Returns ​

integer, string

Throws ​

shuffleFunction() ​

Shuffles an array.

View source

Arguments ​

  • $arr (iterable)

Returns ​

array

snakeFilter() ​

Snake_cases a string.

View source

Arguments ​

  • $string (mixed) – The string

Returns ​

string

sortFilter() ​

Since
4.3.2

Sorts an array.

View source

Arguments ​

Returns ​

array

Throws ​

  • \Twig\Error\RuntimeError

svgFunction() ​

Returns the contents of a given SVG file.

View source

Arguments ​

  • $svg (string, craft\elements\Asset) – An SVG asset, a file path, or raw SVG markup
  • $sanitize (boolean, null) – Whether the SVG should be sanitized of potentially malicious scripts. By default, the SVG will only be sanitized if an asset or markup is passed in. (File paths are assumed to be safe.)
  • $namespace (boolean, null) – Whether class names and IDs within the SVG should be namespaced to avoid conflicts with other elements in the DOM. By default, the SVG will only be namespaced if an asset or markup is passed in.
  • $class (string, null) – A CSS class name that should be added to the <svg> element. (This argument is deprecated. The |attr filter should be used instead.)

Returns ​

string

tagFunction() ​

Since
3.3.0

Generates a complete HTML tag.

View source

Arguments ​

  • $type (string) – The tag type ('p', 'div', etc.)
  • $attributes (array) – The HTML tag attributes in terms of name-value pairs. If text is supplied, the value will be HTML-encoded and included as the contents of the tag. If 'html' is supplied, the value will be included as the contents of the tag, without getting encoded.

Returns ​

string

timeFilter() ​

Formats the value as a time.

View source

Arguments ​

  • $env (\Twig\Environment)
  • $date (DateTimeInterface, string) – A date
  • $format (string, null) – The target format, null to use the default
  • $timezone (DateTimeZone, string, false, null) – The target timezone, null to use the default, false to leave unchanged
  • $locale (string, null) – The target locale the date should be formatted for. By default, the current system locale will be used.

Returns ​

string

timestampFilter() ​

Since
3.6.0

Formats the value as a human-readable timestamp.

View source

Arguments ​

Returns ​

string

translateFilter() ​

Translates the given message.

View source

Arguments ​

  • $message (mixed) – The message to be translated.
  • $category (string, array, null) – The message category.
  • $params (array, string, null) – The parameters that will be used to replace the corresponding placeholders in the message.
  • $language (string, null) – The language code (e.g. en-US, en). If this is null, the current application language will be used.

Returns ​

string – The translated message.

truncateFilter() ​

Since
3.5.10

Truncates the string to a given length, while ensuring that it does not split words.

View source

Arguments ​

  • $string (string) – The string to truncate
  • $length (integer) – The maximum number of characters for the truncated string
  • $suffix (string) – The string that should be appended to $string, if it must be truncated
  • $splitSingleWord (boolean) – Whether to split up $string if it only contains one word

Returns ​

string – The truncated string

ucfirstFilter() ​

Uppercases the first character of a multibyte string.

View source

Arguments ​

  • $string (mixed) – The multibyte string.

Returns ​

string – The string with the first character converted to upercase.

ucwordsFilter() ​

Uppercases the first character of each word in a string.

View source

Arguments ​

  • $env (\Twig\Environment)
  • $string (string)

Returns ​

string

unshiftFilter() ​

Since
3.5.0

Prepends one or more items to the beginning of an array.

View source

Arguments ​

Returns ​

array

widontFilter() ​

Since
3.7.0

Inserts a non-breaking space between the last two words of a string.

View source

Arguments ​

Returns ​

string

withoutFilter() ​

Returns an array without certain values.

View source

Arguments ​

  • $arr (mixed)
  • $exclude (mixed)
  • $strict (boolean)

Returns ​

array

withoutKeyFilter() ​

Since
3.2.0

Returns an array without a certain key.

View source

Arguments ​

Returns ​

array