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

View source

view

Type
craft\web\View, null

View source

Public Methods

MethodDescription
__construct()Constructor
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.
dateFilter()Extending Twig's
datetimeFilter()Formats the value as a date+time.
encencFilter()Encrypts and base64-encodes a string.
expressionFunction()
filterFilter()Filters an array.
getCsrfInput()
getFilters()
getFootHtml()
getFunctions()
getGlobals()
getHeadHtml()
getNodeVisitors()
getTests()
getTokenParsers()
gqlFunction()Executes a GraphQL query against the full schema.
groupFilter()Groups an array by a the results of an arrow function, or value of a property.
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.
literalFilter()Escapes commas and asterisks in a string so they are not treated as special characters in craft\helpers\Db::parseParam().
markdownFilter()Parses text through Markdown.
multisortFilter()Duplicates an array and sorts it with craft\helpers\ArrayHelper::multisort().
parseRefsFilter()Parses a string for reference tags.
pascalFilter()PascalCases a string.
pluginFunction()Returns a plugin instance by its handle.
prependFilter()Prepends HTML to the beginning of given tag.
renderObjectTemplate()
replaceFilter()Replaces Twig's
roundFunction()Rounds the given value.
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.
svgFunction()Returns the contents of a given SVG file.
tagFunction()Generates a complete HTML tag.
timeFilter()Formats the value as a time.
translateFilter()Translates the given message.
ucfirstFilter()Uppercases the first character of a multibyte string.
withoutFilter()Returns an array without certain values.
withoutKeyFilter()Returns an array without a certain key.

__construct()

Constructor

View source

Arguments

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

dateFilter()

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

View source

Arguments

Returns

mixed, string

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 systme locale will be used.

Returns

mixed, string

encencFilter()

Encrypts and base64-encodes a string.

View source

Arguments

  • $str (mixed) – The string

Returns

string

expressionFunction()

Since
3.1.0

View source

Arguments

  • $expression (mixed)
  • $params (mixed)
  • $config (mixed)

Returns

yii\db\Expression

filterFilter()

Filters an array.

View source

Arguments

Returns

array

getCsrfInput()

DEPRECATED

Deprecated in Craft 3.0. Use csrfInput() instead.

View source

Returns

string

getFilters()

View source

getFootHtml()

DEPRECATED

Deprecated in Craft 3.0. Use endBody() instead.

View source

Returns

string

getFunctions()

View source

getGlobals()

View source

getHeadHtml()

DEPRECATED

Deprecated in Craft 3.0. Use head() instead.

View source

Returns

string

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 a the results of an arrow function, or value of a property.

View source

Arguments

Returns

array[] – The grouped items

Throws

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

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

mixed – 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.

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.

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.

Returns

string

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, Closure, 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

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

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

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)

Returns

mixed

roundFunction()

DEPRECATED

Deprecated in 3.0. Use Twig's |round filter instead.

Rounds the given value.

View source

Arguments

Returns

integer, float

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 (mixed)

Returns

mixed

snakeFilter()

Snake_cases a string.

View source

Arguments

  • $string (mixed) – The string

Returns

string

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.

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 systme locale will be used.

Returns

mixed, string

translateFilter()

Translates the given message.

View source

Arguments

  • $message (mixed) – The message to be translated.
  • $category (string, null) – The message category.
  • $params (array, 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.

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.

withoutFilter()

Returns an array without certain values.

View source

Arguments

  • $arr (mixed)
  • $exclude (mixed)

Returns

array

withoutKeyFilter()

Since
3.2.0

Returns an array without a certain key.

View source

Arguments

Returns

array