From 30683b8d11791eb685c79c54f583723ea92242e3 Mon Sep 17 00:00:00 2001
From: sun <sun@unleashedmind.com>
Date: Fri, 1 Aug 2014 21:57:07 +0200
Subject: [PATCH] Issue #2301245 by sun: Fixed Entity system invokes
 non-existing theme hooks: "Theme hook $entity_type_id not
 found.".

---
 core/includes/theme.inc                                        |  7 ++-----
 core/modules/block_content/src/BlockContentViewBuilder.php     |  9 +++++++++
 core/modules/contact/src/MessageViewBuilder.php                |  9 +++++++++
 .../tests/modules/entity_test/src/EntityTestViewBuilder.php    | 10 ++++++++++
 4 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index f23a864..f65e0f2 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -459,7 +459,7 @@ function _theme($hook, $variables = array()) {
       // Only log a message when not trying theme suggestions ($hook being an
       // array).
       if (!isset($candidate)) {
-        \Drupal::logger('theme')->warning('Theme hook %hook not found.', array('%hook' => $hook));
+        trigger_error(sprintf("Theme hook %s not found.", $hook), E_USER_ERROR);
       }
       // There is no theme implementation for the hook passed. Return FALSE so
       // the function calling _theme() can differentiate between a hook that
@@ -2449,10 +2449,7 @@ function template_preprocess_field_multiple_value_form(&$variables) {
       t('Order', array(), array('context' => 'Sort order')),
     );
     if (!empty($element['#required'])) {
-      $header[0]['data']['required'] = array(
-        '#theme' => 'form_required_marker',
-        '#element' => $element,
-      );
+      $header[0]['data']['#prefix'] = '<h4 class="label form-required">';
     }
     $rows = array();
 
diff --git a/core/modules/block_content/src/BlockContentViewBuilder.php b/core/modules/block_content/src/BlockContentViewBuilder.php
index 0977e9f..545dd91 100644
--- a/core/modules/block_content/src/BlockContentViewBuilder.php
+++ b/core/modules/block_content/src/BlockContentViewBuilder.php
@@ -19,6 +19,15 @@ class BlockContentViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
+    $build = parent::getBuildDefaults($entity, $view_mode, $langcode);
+    unset($build['#theme']);
+    return $build;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) {
     parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
     // Add contextual links for this custom block.
diff --git a/core/modules/contact/src/MessageViewBuilder.php b/core/modules/contact/src/MessageViewBuilder.php
index 4cbbd2c..3295dbc 100644
--- a/core/modules/contact/src/MessageViewBuilder.php
+++ b/core/modules/contact/src/MessageViewBuilder.php
@@ -20,6 +20,15 @@ class MessageViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
+    $build = parent::getBuildDefaults($entity, $view_mode, $langcode);
+    unset($build['#theme']);
+    return $build;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
     parent::buildComponents($build, $entities, $displays, $view_mode, $langcode);
 
diff --git a/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilder.php b/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilder.php
index 535faff..3456512 100644
--- a/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilder.php
+++ b/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilder.php
@@ -8,6 +8,7 @@
 namespace Drupal\entity_test;
 
 use Drupal\Component\Utility\String;
+use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityViewBuilder;
 
 /**
@@ -20,6 +21,15 @@ class EntityTestViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
+    $build = parent::getBuildDefaults($entity, $view_mode, $langcode);
+    unset($build['#theme']);
+    return $build;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
     parent::buildComponents($build, $entities, $displays, $view_mode, $langcode);
 
-- 
1.7.11.msysgit.1

