Created
December 5, 2017 06:47
-
-
Save bySebastian/093e0d67076bf47dab38d8f14580e137 to your computer and use it in GitHub Desktop.
[bamboo] Drupal extensions Twig #drupal
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://www.drupal.org/docs/8/modules/bamboo-twig/usage | |
Bamboo Twig has a lot of advantages and brings a lot of new features to the Twig landscape of Drupal 8. | |
It boosts performance by using lazy loading, improves the code quality with automated workflow. | |
It's excepted that Bamboo Twig will normalize the way you use twig in your Drupal project reducing the need to install a bunch of extra modules. | |
Internationalization | |
Use the bamboo_i18n_format_date filter to return a date string in the correct locality. | |
date string - date, timestamp, DrupalDateTimePlus, DateTimePlus or DateTime. | |
type string (optional) - The format to use, one of the built-in formats: 'short', 'medium', 'long'. Use 'custom' to use $format. | |
format string (optional) - PHP date format string suitable for input to date(). | |
timezone string (optional) - Time zone identifier, as described at http://php.net/manual/timezones.php Defaults to the time zone used to display the page. | |
langcode string (optional) - Language code to translate to. NULL (default) means to use the user interface language for the page. | |
{# Print the formatted date using Drupal i18n. #} | |
<dt>Format date:</dt> | |
<dd>{{ node.changed.value|bamboo_i18n_format_date('medium') }}</dd> | |
<dd>{{ node.changed.value|bamboo_i18n_format_date('custom', 'Y-m-d') }}</dd> | |
Use the bamboo_i18n_current_lang function to return the current lang iso code. | |
{# Print the current language ID. #} | |
<dt>Current lang:</dt> | |
<dd>{{ bamboo_i18n_current_lang() }}</dd> | |
Files | |
The bamboo_file_extension_guesser filter returns the extension of a file based on its | |
mimeType. | |
mimeType string | |
{# Print the extension of the 'application/pdf' mimeType #} | |
{{ 'application/pdf'|bamboo_file_extension_guesser }} | |
The bamboo_file_url_absolute function returns absolute url of a given URI or path to a file. | |
uri string - URI or string path to a file. | |
{# Print the absolute url to access 'image.jpg' #} | |
{{ bamboo_file_url_absolute('public://image.jpg') }} | |
Paths | |
The bamboo_path_system function returns the relative URL of a system entity. | |
type string - one of 'core', 'profile', 'module', 'theme' or 'theme_engine'. | |
item string | |
{# Print the relative URL to the system entity 'theme' named 'stable' #} | |
{{ bamboo_path_system('theme', 'stable') }} | |
Loaders | |
The bamboo_load_currentuser function returns a User object of the current logged user. | |
{# Load the current user #} | |
{% set user = bamboo_load_currentuser() %} | |
The bamboo_load_entity function returns a EntityInterface object of the requested entity. | |
entity_type string. | |
id int (optional). | |
{# Load the entity node with nid 1 #} | |
{% set node = bamboo_load_entity('node', 1) %} | |
The bamboo_load_field function returns a FieldItemListInterface object of the requested field. | |
field string. | |
entity_type string. | |
id int. | |
{# Load the title of node 1 with nid 1 #} | |
{% set title = bamboo_load_field('title', 'node', 1) %} | |
The bamboo_load_image function returns a ImageInterface object of the requested image. | |
path string - The path or URI to the original image. | |
{# Load image with uri 'public://antistatique.jpg' #} | |
{% set image = bamboo_load_image('public://antistatique.jpg') %} | |
Render | |
The bamboo_render_block function returns a render array of the specified block (works only for Block Plugin). | |
block_name string. | |
params array (optional). | |
{# Render the 'system_powered_by_block' block #} | |
{{ bamboo_render_block('system_powered_by_block') }} | |
In the case you want to render a Block Entity, you have to use the bamboo_render_entity. | |
The bamboo_render_entity function returns a render array of the specified entity type. Can render a specific view. | |
entity_type string. | |
id int (optional). | |
view_mode string (optional) - machine name of the view mode. | |
langcode string (optional) - defaults to current language. | |
{# Render node with nid 1 #} | |
{{ bamboo_render_entity('node', 1) }} | |
{# Render the teaser of node with nid 2 #} | |
{{ bamboo_render_entity('node', 2, 'teaser') }} | |
{# Render the `stark_messages` Block entity #} | |
{{ bamboo_render_entity('block', 'stark_messages') }} | |
The bamboo_render_form function returns a render array of the specified Form. | |
module string. | |
formName string. | |
params array (optional). | |
{# Render a the CronForm #} | |
{{ bamboo_render_form('system', 'CronForm') }} | |
The bamboo_render_menu function returns a render array of the specified menu. | |
menu_name string. | |
level int (optional) - defaults to 1. | |
depth int (optional) - defaults to 0. | |
{# Render a part of the admin menu #} | |
{{ bamboo_render_menu('admin', 1, 2) }} | |
The bamboo_render_field function returns a render array of an entity field. | |
field_name string. | |
entity_type string. | |
id int (optional). | |
langcode string (optional) - defaults to current language. | |
formatter string (optional) - The formatter that should be used to render the field. Eg. 'text' for textfield or 'url' for linkfield. | |
{# Render the title of node 1 #} | |
{{ bamboo_render_field('title', 'node', 1) }} | |
The bamboo_render_region function returns a render array of the specified region. | |
region string. | |
theme_name string (optional) - defaults to default theme. | |
{# Render the sidebar_first region for current theme. #} | |
{{ bamboo_render_region('sidebar_first') }} | |
Image Styles | |
The bamboo_render_image function returns a render array of the specified image file. | |
fid int. | |
styles string. | |
{# Get thumbnail from image with fid 12. #} | |
{{ bamboo_render_image(1, 'thumbnail') }} | |
The bamboo_render_image_style function returns URL string of the specified image path or URI. | |
path string. | |
styles string. | |
preprocess boolean - preprocess the image style before first HTTP call. | |
{# Get thumbnail from image 'public://antistatique.jpg'. #} | |
{{ bamboo_render_image_style('public://antistatique.jpg', 'thumbnail') }} | |
Views | |
The bamboo_render_views function renders the requested view. | |
view string. | |
item string. | |
{# Render the View `who_s_new` block `block_1` #} | |
{{ bamboo_render_views('who_s_new', 'block_1') }} | |
Configurations | |
The bamboo_config_get function returns the specified config. | |
config_key string. | |
name string. | |
{# Get system mail setting #} | |
{{ bamboo_config_get('system.site', 'mail') }} | |
The bamboo_state_get function returns the specified state. | |
state_key string. | |
{# Get system.cron_last from state #} | |
{{ bamboo_state_get('system.cron_last') }} | |
The bamboo_settings_get function returns the specified setting. | |
state_key string. | |
{# Get hash_salt from settings #} | |
{{ bamboo_settings_get('hash_salt') }} | |
Security | |
The bamboo_has_role function returns a boolean of the current|given user has the requested role. | |
role string. | |
user int - User id instead of the current logged user.. | |
{# Does the current|given user has the given role ? #} | |
{{ bamboo_has_role('authenticated') ? 'TRUE' : 'FALSE' }} | |
The bamboo_has_permission function returns a boolean of the current|given user has the requested permission. | |
permission string | |
user int - User id instead of the current logged user. | |
{# Does the current|given user has the given permission ? #} | |
{{ bamboo_has_permission('administer site configuration') ? 'TRUE' : 'FALSE' }} | |
Extensions | |
The bamboo_extensions_truncate filter from Twig-extensions Text. | |
sentence string. | |
word boolean - Truncat at the end of words. | |
ellipsis string. | |
{# Truncate a sentence #} | |
{{ "This is a very long sentence."|bamboo_extensions_truncate(2, false, '...') }} | |
The *coming soon* bamboo_extensions_truncate_html filter to truncates sentences html and preserves tags. | |
sentence string. | |
word boolean - Truncate at the end of words. | |
ellipsis string. | |
{# Truncate a HTML sentence #} | |
{{ "<p>This <b>is a very</b> long sentence.</p>"|bamboo_extensions_truncate_html(2, false, '...') }} | |
The bamboo_extensions_shuffle filter from Twig-extensions Array. | |
array array. | |
{# Shuffle the given array #} | |
[1, 2, 3]|bamboo_extensions_shuffle | |
The bamboo_extensions_time_diff filter from Twig-extensions Date. | |
date string - date, timestamp, DrupalDateTimePlus, DateTimePlus or DateTime. | |
{# Difference between two dates #} | |
{{ '24-07-2014 17:28:01'|bamboo_extensions_time_diff('24-07-2014 17:28:06') }} | |
Token | |
The bamboo_token function substitute a given tokens with appropriate value. | |
token string. | |
{# Substitute token #} | |
{{ bamboo_token('site:name') }} | |
Core Twig | |
Drupal core already adds a handful of custom functions that are Drupal specific. | |
i18n | |
The trans tag to translate string. See the following link for more details. | |
Urls | |
The path functions returns a relative URL given a route name and parameters. | |
route string. | |
params (optional) array. | |
options (optional) array. | |
{# Generates URL from route 'entity.user.canonical'. #} | |
<a href="{{ path('entity.user.canonical', {'user': user.id}) }}">View user profile</a> | |
The link functions return <a> tag for the URL. | |
text string. | |
url string. | |
params (optional) array. | |
{# Create a link with markup. #} | |
{{ link('Homepage', item.url, { 'class':['foo', 'bar', 'baz']} ) }} | |
The file_url function returns a relative url of a given URI or path to a file. | |
uri string - URI or string path to a file. | |
{# Generate a relative URI path to the file. #} | |
{{ file_url('public://antistatique.jpg') }} | |
Attachments | |
The attach_library function Attaches an asset library to the template, | |
and hence to the response. | |
library string. | |
{# Attaches an asset library to the template. #} | |
{{ attach_library('classy/node') }} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment