@toptalo/twig-helpers
v3.0.1
Published
Custom Twig functions and filters
Downloads
17
Readme
@toptalo/twig-helpers
Кастомные функции и фильтры
Установка
npm install @toptalo/twig-helpers --save
Есть функции:
{{ core('css/global.css') }}
- возвращает путь для/static/core/css/global.css
{{ vendor('jquery.min.js') }}
- возвращает путь для/static/vendor/jquery.min.js
{{ media('image.jpg') }}
- возвращает путь для/static/core/markup-media/image.jpg
{{ getMenu(menu, id|path|slug, ?group) }}
- возвращает массивchildrens
объекта меню с заданнымid
,path
илиslug
{{ getMenuItem(menu, id|path|slug) }}
- возвращает объект меню с заданнымid
,path
илиslug
{{ getPageTitle(page, menu) }}
- возвращает заголовок страницы из меню, сопоставляя поpage.id
{{ getRoot(page, menu, ?rootLevel) }}
- возвращает корневой элемент меню для переданной страницы, отступ от корня регулируется параметромrootLevel
- по умолчанию 1{{ getPage(page, menu) }}
- возврашает объект старницы обогащённый данными из меню{{ getParentFor(menu, id|path|slug) }}
- возвращает родительский элемент меню{{ isActive(menuItem, page) }}
- возвращаетtrue
еслиmenuItem.id
есть в путиpage.path
{{ isCurrent(menuItem, page) }}
- возвращаетtrue
еслиmenuItem.id
последний в путиpage.path
Есть фильтры:
{{ 'text'|slug }}
- возвращает слаг для строкиtext
(нормализованную строку){{ 'text'|ft }}
- типографика (длинное тире, пробелы){{ '11590'|digit(?decimals, ?dec_point, ?thousands_sep) }}
- возвращает число разбитое по разрядам11 590
{{ '+7 (999) 888-77-66'|phone2numeric }}
- возвращает чистый номер+79998887766
{{ menu|url(id|path|slug) }}
- возвращаетurl
из пункта менюmenu
с заданнымid
,path
илиslug
{{ menu|matchArray(key, value) }}
- вернет пункты меню у которыхkey
===value
{{ '1024'|fileSize }}
- вернет1кб
для 1 000 байт,1Мб
для 1 000 000 байт{{ loop.index|hash }}
- делает хеш из числа, строки, объекта, или функции (удобно для айдишников){{ loop.index|cycle('one', 'two', 'three') }}
- используя индекс повторяет строки из переданного массива{{ target|extend(defaults, rewriteTarget) }}
- расширяет объектdefaults
объектомtarget
или наоборот если передан флагrewriteTarget
.defaults
может быть массивом объектов, тогда действие будет применено ко всем элементам массива{{ 'block'|mod(?modificators, ?connector, ?skipDefault{boolean}) }}
- добавляет модификаторов на класс, используяconnector(_)
, если модификаторы не переданы (строка, разделённая запятыми), добавляет модификаторdefault
, можно отключить передав третий параметрskipDefault
равныйtrue
{{ 'image.jpg'|retina(?postfix) }}
- добавляет постфикс в имя файла, по умолчанию@2x
([email protected]){{ 'image.jpg'|webp }}
- заменяет расширение в пути наwebp
{{ {key: value}|extra }}
- разворачивает объект в HTML аттрибуты{{ 'string'|test(re, ?flags) }}
- проверяет по регулярке на совпадение{{ menuItem|inGroup(groupName) }}
- проверяет вхождение элемента меню в указанную группуgroupName
. Группа меню указывается у элемента в параметреgroup: 'groupName'
. Элемент меню может входить в несколько группgroup: 'groupName1, groupName2'
.{{ self|hasMenu }}
- проверяет есть ли пункты меню для вывода, учитывая стандартные фильтры.{{ self|jsClass(className) }}
- добавляетclassName
кself.jsClassName
{{ self|sortBy(keyName) }}
- сортирует список объектовself
по ключуkeyName
При поддержке
История релизов
Смотри CHANGELOG.