@toptalo/twig-helpers
v3.0.1
Published
Custom Twig functions and filters
Downloads
16
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.

