Drupal Dump

Drupal Snippets, Hacks and more....

459 posts since 2011

Adding JS with library without jquery or jquery-once dependency

If you want to add some JS code, like some kind of snippet to your pages with libraries.yml, add it as any other library item but don't use jquery or drupal behaviours in .js code, add some plain JS code like

document.addEventListener("DOMContentLoaded", function() {

so to wrap some JS snippet for it, do it like below.

Recursively renaming files and folders with PHP

I wanted to rename lots of filed and folders for my modules, but not to do it manually I made an php script that does this for me. Also I used my IDE to rename code(class names and methods). So just replace root where is the code you want to change file and folder names and do that for strings also.

Block build output, theme and allowed_tags tags

To output block, you can attach which theme template will output it, which library to attach to it, what markup will be outputed and in the end what tags can be in this markup
 

Adding prefix or suffix to entity base fields

When creating custom entity you will use "BaseFieldDefinition" code snippets where you will define many things about this field, one of the things you may want to define is suffix or prefix that will be used in display of this field either on entity view or on views that use this field. To do that you will add it to setSettings array simple as 'suffix' => '%'

Having multiple drush versions on a enviroment

Do this on your local or virtual enviroment, depending where do you want to have it

mkdir ~/drush10
cd ~/drush10
composer require "drush/drush:10.*"

this will install drush10 to that directory and now you just need to add alias

SSH keys setup on Mac OsX

To add multiple ssh keys to your system, you need to edit config file ~/.ssh/config and put lines like below, this will also help store password for your ssh in keychain and use agent forwarding so you can use your keys on virtual machines like vagrant

Useful form snippets for multiple selections

When building forms it is useful to have widgets that select multiple values for you and enhance UI, if you have large select list I would recommend to use select2 module to make custom form use its widget you should first get an array of elements in a variable, like 

Fastly and other CDN batch error

As Batch is dependent on the order of query string parameters if you are using Fastly or some other CDN they often have "Query String Sort" enabled or it is a good practice to do that, as it will result in more cache hits for you.