Skip to content

Instantly share code, notes, and snippets.

@steffenr
steffenr / po_to_csv.sh
Created December 8, 2023 07:46
Convert .po to .csv
#!/bin/bash
# Check if the required command-line argument is provided
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <po_file>"
exit 1
fi
po_file="$1"
csv_file="${po_file%.po}.csv"
@steffenr
steffenr / mymodule.libraries.yml
Created August 12, 2016 11:40
Attach a CSS or JS library to a View in Drupal 8
custom_view:
css:
component:
css/custom_view.css: {}
@steffenr
steffenr / ip_adapter_face_sdxl.json
Created November 6, 2023 06:49
Simple IP-Adapter Face workflow with SDXL model
{
"last_node_id": 18,
"last_link_id": 29,
"nodes": [
{
"id": 10,
"type": "EmptyLatentImage",
"pos": [
790,
390
@steffenr
steffenr / file_media_entity.php
Last active February 27, 2023 18:33
[Drupal 8] Create file/ media_entity programmatically
<?php
$filesystem = \Drupal::service('file_system');
// Create file entity.
$image = File::create();
$image->setFileUri($destination);
$image->setOwnerId(\Drupal::currentUser()->id());
$image->setMimeType('image/' . pathinfo($destination, PATHINFO_EXTENSION));
$image->setFileName($filesystem->basename($destination));
$image->setPermanent();
$image->save();
@steffenr
steffenr / book-all-books-block.html.twig
Last active October 14, 2021 05:30
Sample used in our second blog post on theming with Twig in Drupal 8
{% for book_id, menu in book_menus %}
<nav id="book-block-menu-{{ book_id }}" class="book-block-menu">
{{ menu }}
</nav>
{% endfor %}
@steffenr
steffenr / themename.info.yml
Created August 11, 2016 18:07
Embed external fonts in Drupal 8 theme (fonts are added in custom themename.libraries.yml)
name: Theme name
type: theme
description: Theme description
package: Custom
core: 8.x
libraries:
- themename/fonts
- themename/global-styling
base theme: classy
@steffenr
steffenr / THEMENAME_theme_suggestions_container_alter.php
Created November 28, 2019 07:10
Custom theme suggestions for container elements in drupal 8
<?php
/**
* Implements hook_theme_suggestions_alter() for container.
*/
function THEMENAME_theme_suggestions_container_alter(array &$suggestions, array &$variables)
{
$name = '';
$type = '';
if (isset($variables['element']['#name'])) {
@steffenr
steffenr / id_map_custom.php
Created January 29, 2018 07:23
[Drupal 8] Override id map with custom plugin for migrations
<?php
/**
* Implements hook_migration_plugins_alter().
*/
function my_module_migration_plugins_alter(array &$migrations) {
foreach ($migrations as $id => $configuration) {
if (!empty($migrations[$id]['idMap'])) {
// Do not override existing values.
continue;
@steffenr
steffenr / hook_update_n.php
Created August 20, 2019 06:55
Drupal 8 - Batch job in hook_update_n
<?php
use Drupal\node\Entity\Node;
/**
* Implements hook_update_N().
*
* Set default value to new field field_registered on all Person nodes.
*/
function MY_MODULE_update_8001(&$sandbox) {
@steffenr
steffenr / SCSS.md
Created February 4, 2019 08:20
Advanced SCSS, or, 16 cool things you may not have known your stylesheets could do

⇐ back to the gist-blog at jrw.fi

Advanced SCSS

Or, 16 cool things you may not have known your stylesheets could do. I'd rather have kept it to a nice round number like 10, but they just kept coming. Sorry.

I've been using SCSS/SASS for most of my styling work since 2009, and I'm a huge fan of Compass (by the great @chriseppstein). It really helped many of us through the darkest cross-browser crap. Even though browsers are increasingly playing nice with CSS, another problem has become very topical: managing the complexity in stylesheets as our in-browser apps get larger and larger. SCSS is an indispensable tool for dealing with this.

This isn't an introduction to the language by a long shot; many things probably won't make sense unless you have some SCSS under your belt already. That said, if you're not yet comfy with the basics, check out the aweso