Skip to content

Instantly share code, notes, and snippets.

@DanLaufer
DanLaufer / Drupal 8 - Set and Truncate Title tag and meta tag head items in Drupal 8
Last active October 19, 2018 12:16
Drupal 8 - PHP - Set and Truncate Title tag and meta tag head items in Drupal 8
/**
* Gets a title from the field_headline first and falls back on the node
* title, then truncates the site name (/admin/config/system/site-information).
* - Stays under 58 characters, as that is best for SEO
* - Used for <title> and <meta name="title" content="xxxxxx">.
* - Will truncate the page title, and always add the full ' | site-name'.
* - Example output: <meta name="title" content="Homepage | MyCompany, Inc.">
* @param string $raw_title
* @param string $site_name
* @return string truncated and joined title string up to 58 characters
@DanLaufer
DanLaufer / Drupal 8 - Get a field from a paragraph reference in node preprocessing
Last active April 13, 2023 12:38
Drupal 8 - Get a field from a paragraph in template_preprocess_node()
if($node) {
// we have a node, so use headline in hero, or fall back to node title
if($node->field_hero_section && $node->field_hero_section->getValue() && $node->field_hero_section->getValue()[0]) {
$paragraph = $node->field_hero_section->getValue()[0];
$paragraph_entity = \Drupal\paragraphs\Entity\Paragraph::load( $paragraph['target_id'] );
return $paragraph_entity->field_headline->value;
} else {
return $node->getTitle();
}
}
@DanLaufer
DanLaufer / Drupal 8 - Twig - Get an alternating class within a paragraph entity
Last active October 19, 2018 12:09
Drupal 8 - Twig - Get an Alternating Class from Paragraphs in Twig
{% set alternating_class = (_context.elements['#paragraph']._referringItem.getName()) % 2 ? ' teaser__container--inverse' : '' %}
@DanLaufer
DanLaufer / Adjust Brightness with FFMPEG
Last active March 3, 2019 09:29
ffmpeg - Adjust Video Brightness Programmatically
ffmpeg -i movie.mp4 -vf eq=brightness=0.1 -c:a copy movie-brighter.mp4
$query = \Drupal::entityQuery('node');
$node_ids = $query
->condition('status', 1)
->exists('field_sidebar')
->execute();
$count_fixed = 0;
$node_ids_with_related_links = [];
@DanLaufer
DanLaufer / Export JSON PHP
Last active February 23, 2019 18:17
Drupal 8 - Export content as JSON
$query = \Drupal::entityQuery('node');
$node_ids = $query
->condition('status', 1)
->exists('field_sidebar')
->execute();
$all_nodes_JSON = [];
foreach($node_ids as $node_id) {
@DanLaufer
DanLaufer / Drupal 8 - Check Nodes for a Specific Form Reference
Last active October 19, 2018 12:04
Drupal 8 - Check Nodes for a Specific Form Reference
$query = \Drupal::entityQuery('node');
$node_ids = $query
->condition('status', 1)
->exists('field_form_reference')
->execute();
foreach($node_ids as $node_id) {
$node = \Drupal\node\Entity\Node::load($node_id);
$referenced_form = $node->get('field_form_reference')->referencedEntities();
@DanLaufer
DanLaufer / Drupal 8 - Add paragraph reference to nodes without it already
Last active October 22, 2021 05:36
Drupal 8 - Add paragraph reference to nodes without one
use Drupal\paragraphs\Entity\Paragraph;
$query = \Drupal::entityQuery('node');
// get all blogs with the flexible content field
$node_ids = $query
->condition('status', 1)
->condition('type','insight')
->exists('field_flexible_content')
->execute();
@DanLaufer
DanLaufer / script.php
Last active April 3, 2022 19:57
Drupal 8 - Programmatically Update Boolean Fields
<?php
// Single
use Drupal\node\Entity\Node;
$node = Node::load(1537);
$node->set('field_include_pop_up_form',0); // 0 to uncheck, 1 to check
$node->save();
drupal_set_message($node->get('field_include_pop_up_form')->value);
@DanLaufer
DanLaufer / Responsive YouTube Videos
Last active October 19, 2018 11:54
Responsive YouTube Videos
<!-- https://www.ostraining.com/blog/coding/responsive-videos/ -->
<div class="video-responsive">
<iframe width="420" height="315" src="http://www.youtube.com/embed/6xisazZX9bA" frameborder="0" allowfullscreen></iframe>
</div>
<style>
.video-responsive{
overflow:hidden;
padding-bottom:56.25%;