Skip to content

Instantly share code, notes, and snippets.

View LionsAd's full-sized avatar

Fabian Franz LionsAd

  • LionsAd
  • Schweiz
View GitHub Profile
@LionsAd
LionsAd / container-decorator-test.php
Last active September 2, 2015 17:14
Test script to test container decoration
<?php
require "autoload.php";
use Drupal\Component\DependencyInjection\Dumper\PhpArrayDumper;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
/*
@LionsAd
LionsAd / hack-the-renderer.diff
Last active September 1, 2015 10:55
Cleanup renderer, prepare for passing just one cacheable metadata to doRender()
diff --git a/core/lib/Drupal/Core/Render/Renderer.php b/core/lib/Drupal/Core/Render/Renderer.php
index f2be9ce..82f6228 100644
--- a/core/lib/Drupal/Core/Render/Renderer.php
+++ b/core/lib/Drupal/Core/Render/Renderer.php
@@ -131,10 +131,23 @@ public function renderRoot(&$elements) {
// Render in its own render context.
$this->isRenderingRoot = TRUE;
- $output = $this->executeInRenderContext(new RenderContext(), function () use (&$elements) {
- return $this->render($elements, TRUE);
@LionsAd
LionsAd / gist:c3096a5563152d7b37a4
Created May 26, 2015 15:18
Cache contexts for $access
diff --git a/core/modules/block/src/BlockRepository.php b/core/modules/block/src/BlockRepository.php
index 485a66f..e2aa34e 100644
--- a/core/modules/block/src/BlockRepository.php
+++ b/core/modules/block/src/BlockRepository.php
@@ -77,9 +77,8 @@ public function getVisibleBlocksPerRegion(array $contexts) {
foreach ($this->blockStorage->loadByProperties(array('theme' => $this->getTheme())) as $block_id => $block) {
/** @var \Drupal\block\BlockInterface $block */
// Set the contexts on the block before checking access.
- if ($block->setContexts($contexts)->access('view')) {
- $full[$block->getRegion()][$block_id] = $block;
@LionsAd
LionsAd / gist:3a03f5c7716652ff767d
Created April 28, 2015 20:11
toRenderArray support
diff --git a/core/lib/Drupal/Core/Template/TwigExtension.php b/core/lib/Drupal/Core/Template/TwigExtension.php
index bb29cd1..5461283 100644
--- a/core/lib/Drupal/Core/Template/TwigExtension.php
+++ b/core/lib/Drupal/Core/Template/TwigExtension.php
@@ -420,7 +420,11 @@ public function renderVar($arg) {
}
if (is_object($arg)) {
- if (method_exists($arg, '__toString')) {
+ // @todo Replace with a proper interface.
@LionsAd
LionsAd / smart-placeholder-cache-wip.diff
Created February 18, 2015 15:02
SmartPlaceholderCache
diff --git a/core/lib/Drupal/Core/Render/BubbleableMetadata.php b/core/lib/Drupal/Core/Render/BubbleableMetadata.php
index c56b421..748bc0b 100644
--- a/core/lib/Drupal/Core/Render/BubbleableMetadata.php
+++ b/core/lib/Drupal/Core/Render/BubbleableMetadata.php
@@ -39,6 +39,13 @@ class BubbleableMetadata {
protected $postRenderCache;
/**
+ * #placeholder metadata.
+ *
@LionsAd
LionsAd / smartcache-plus-poc.diff
Created February 18, 2015 13:20
SmartCache++
diff --git a/core/lib/Drupal/Core/Render/Renderer.php b/core/lib/Drupal/Core/Render/Renderer.php
index 69e99a0..8bdf86a 100644
--- a/core/lib/Drupal/Core/Render/Renderer.php
+++ b/core/lib/Drupal/Core/Render/Renderer.php
@@ -184,6 +184,11 @@ protected function doRender(&$elements, $is_root_call = FALSE) {
$this->bubbleStack();
return $elements['#markup'];
}
+
+ // Store the cache ID for later comparison.
@LionsAd
LionsAd / make-profiling-fun
Last active December 16, 2015 18:38
Make profiling Drupal's theme system fun!
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 47c99d9..30380f8 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -11,6 +11,7 @@
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Template\Attribute;
use Drupal\Core\Utility\ThemeRegistry;
+use Drupal\Component\PhpStorage\PhpStorageFactory;
@LionsAd
LionsAd / cache-clear-all-d8.php
Created December 6, 2012 21:11
Drupal Flush all Caches in D8
<?php
/**
* @file
* The PHP page that serves all page requests on a Drupal installation.
*
* The routines here dispatch control to the appropriate handler, which then
* prints the appropriate page.
*
* All Drupal code is released under the GNU General Public License.
@LionsAd
LionsAd / component.php
Created November 12, 2012 22:36
Theme Component Library - Draft
<?php
component('ordered_list',
array(
component('item', 'a', array('id' => 'id-a')),
'b',
'c'),
array('id' => 'x')
);
@LionsAd
LionsAd / gist:4041188
Created November 8, 2012 20:05
Markup for Twig features and compiled
=== blocks.twig
{% block sidebar %}
Right
{% endblock %}
=== test-base.twig
<side>
{% block sidebar %}Sidebar{% endblock %}
</side>