\PicoTwigExtension

Picos Twig extension to implement additional filters

Summary

Methods
Properties
Constants
__construct()
getPico()
getName()
getFilters()
markdownFilter()
mapFilter()
sortByFilter()
getKeyOfVar()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
$pico
N/A

Properties

$pico

$pico : \Pico

Current instance of Pico

Type

\Pico

Methods

__construct()

__construct(\Pico  $pico) 

Constructs a new instance of this Twig extension

Parameters

\Pico $pico

current instance of Pico

getPico()

getPico() : \Pico

Returns the extensions instance of Pico

Returns

\Pico

the extensions instance of Pico

getName()

getName() : string

Returns the name of the extension

Returns

string —

the extension name

getFilters()

getFilters() : array<mixed,\Twig_SimpleFilter>

Returns the Twig filters markdown, map and sort_by

Returns

array<mixed,\Twig_SimpleFilter> —

array of Picos Twig filters

markdownFilter()

markdownFilter(string  $markdown) : string

Parses a markdown string to HTML

This method is registered as the Twig markdown filter. You can use it to e.g. parse a meta variable ({{ meta.description|markdown }}). Don't use it to parse the contents of a page, use the content filter instead, what ensures the proper preparation of the contents.

Parameters

string $markdown

markdown to parse

Returns

string —

parsed HTML

mapFilter()

mapFilter(array|\Traversable  $var, mixed  $mapKeyPath) : array

Returns a array with the values of the given key or key path

This method is registered as the Twig map filter. You can use this filter to e.g. get all page titles ({{ pages|map("title") }}).

Parameters

array|\Traversable $var

variable to map

mixed $mapKeyPath

key to map; either a scalar or a array interpreted as key path (i.e. ['foo', 'bar'] will return all $item['foo']['bar'] values)

Returns

array —

mapped values

sortByFilter()

sortByFilter(array|\Traversable  $var, mixed  $sortKeyPath, string  $fallback = 'bottom') : array

Sorts an array by one of its keys or a arbitrary deep sub-key

This method is registered as the Twig sort_by filter. You can use this filter to e.g. sort the pages array by a arbitrary meta value. Calling {{ pages|sort_by("meta:nav"|split(":")) }} returns all pages sorted by the meta value nav. Please note the "meta:nav"|split(":") part of the example. The sorting algorithm will never assume equality of two values, it will then fall back to the original order. The result is always sorted in ascending order, apply Twigs reverse filter to achieve a descending order.

Parameters

array|\Traversable $var

variable to sort

mixed $sortKeyPath

key to use for sorting; either a scalar or a array interpreted as key path (i.e. ['foo', 'bar'] will sort $var by $item['foo']['bar'])

string $fallback

specify what to do with items which don't contain the specified sort key; use "bottom" (default) to move those items to the end of the sorted array, "top" to rank them first, or "keep" to keep the original order of those items

Returns

array —

sorted array

getKeyOfVar()

getKeyOfVar(array|\Traversable|\ArrayAccess|object  $var, mixed  $keyPath) : mixed

Returns the value of a variable item specified by a scalar key or a arbitrary deep sub-key using a key path

Parameters

array|\Traversable|\ArrayAccess|object $var

base variable

mixed $keyPath

scalar key or a array interpreted as key path (when passing e.g. ['foo', 'bar'], the method will return $var['foo']['bar']) specifying the value

Returns

mixed —

the requested value or NULL when the given key or key path didn't match