Drupal 8 Twig cheatsheet

## Drupal 8 Twig cheatsheet

### Getting Drupal 8 field values in Twig

Image path: `{{ file_url(content.field_name['#items'].entity.uri.value) }}`

Image title text: `{{ node.field_name.title }}`

Entity Reference path: `{{ content.field_tags[0]['#url'] }}`

@see https://blog.usejournal.com/getting-drupal-8-field-values-in-twig-22b80c...

### Check if field is filled

Tags:

Layout Builder module

Entity Browser
Entity Browser block
Block blacklist
Manage class with taxonomy
Views layout

Tags:

Dev Desktop db workround

Go to user

Open .aquia/DevDesktop/DrupalSettings/loc_sitename_dd.inc to swap in database name

Open phpmyadmin to assign database permission to drupaluser

Tags:

Allow login by username or email on checkout login form

To answer my own question, this is possible using the email registration module.

install dev version
apply patch from here
go to /admin/config/people/accounts and check the checkbox: Allow log in with email address or username.
go to /admin/commerce/config/checkout-flows and replace the default login with the login provided by this module
Optionally, the patch from this issue will allow for the username to be entered on registration.

mamaye linktxt FileLink.php in preprocess < Plugin < src < bootstrap

<?php

namespace Drupal\bootstrap\Plugin\Preprocess;

use Drupal\bootstrap\Bootstrap;
use Drupal\bootstrap\Utility\Element;
use Drupal\bootstrap\Utility\Variables;
use Drupal\Core\Link;
use Drupal\Core\Url;
use Drupal\file\Entity\File;

/**
* Pre-processes variables for the "file_link" theme hook.
*
* @ingroup plugins_preprocess
*
* @BootstrapPreprocess("file_link",
* replace = "template_preprocess_file_link"
* )
*/
class FileLink extends PreprocessBase {

Tags:

Cron run failed

Open up your PHPMyAdmin
Find semaphore table
Delete cron row

Turn on cron logging
See which cron stuck

Tags:

Composer nodev

If you have separate dev/staging and production servers, ensure you copy/commit both your composer.json and composer.lock files to production and always run composer install --no-dev on production, rather than update. (The --no-dev switch will stop any packages listed in 'require-dev' from being installed, typically modules for debugging and libraries for unit/behavioral testing.)

Install local composer and drush

1. go to WHM, find MultiPHP INI Editor, find php 7.2, ensure allow_url_fopen is Enabled
2. increase ram
3. download composer
https://getcomposer.org/download/
4. Run locally php composer.phar require drush/drush:8.x
5. upload the composer.json and composer.lock files
5. Run remotely php composer.phar install
6. Run remotely ../vendor/drush/drush/drush status, cr, ups, up drupal

Mavic air connection issue

Phone - Developer mode - click About Phone Build 7 times
Enable USB debugging mode
Set USB options to MTP
Disable lock screen

Tags:

zip gz tar on mac terminal

ZIP – Cross Platform
First up is ZIP one of the most commonly used compression techniques used across all platforms

To compress

zip -r archive_name.zip folder_to_compress
To extract

unzip archive_name.zip
If you want to make a zip without those invisible Mac resource files such as “_MACOSX” or “._Filename” and .ds store files, use the “-X” option in the command so:

Tags:

Adding Twig Template Suggestions for Form Elements

/**
* @param $suggestions
* @param array $variables
*/
function mytheme_theme_suggestions_input_alter(&$suggestions, array $variables) {
$element = $variables['element'];

if (isset($element['#attributes']['data-twig-suggestion'])) {
$suggestions[] = 'input__' . $element['#type'] . '__' . $element['#attributes']['data-twig-suggestion'];
}
}

How to include javascript on single pages in Drupal 8 in a way that is amenable to scale.

12

Following Steps will make working with External JavaScript libraries in Drupal 8 absolutely clear (including how to conditionally load it in specific pages):

Step 1: Place the JavaScript file in your theme or module inside a folder called js. After this step your folder structure must look like :

my-theme/js/my-script.js
Step 2: If your theme already has a my-theme.libraries.yml file open it, if not create it.

In Drupal 8 Libraries are simply collections of CSS or JS files bundled together under a uniquely identified library name.

Twig expression operator

Expressions can be used in {% blocks %} and ${ expressions }.

Tags:

Drupal 7 php 7.2 updates

Modules

Admin menu
Ctools
Libraries
Rules
Views
VBO
Analytics
Webform Patch
Features / Patch in the case of Distro like Commerce Kickstart
Address
Field Group
Media
Token
Field Collection
BEF

Tags:

Pages

Subscribe to Front page feed