From eb21fc37a77a4a61144d9046a2303fac6dba3de2 Mon Sep 17 00:00:00 2001 From: webchick <drupal@webchick.net> Date: Tue, 26 Aug 2014 10:25:49 -0700 Subject: [PATCH] Issue #2301245 by sun, joelpittet | larowlan: Fixed Entity system invokes non-existing theme hooks: 'Theme hook not found.' --- core/includes/theme.inc | 12 +++++------- .../block_content/src/BlockContentViewBuilder.php | 11 +++++++++++ core/modules/contact/src/MessageViewBuilder.php | 11 +++++++++++ .../modules/system/src/Tests/Theme/FunctionsTest.php | 1 - .../entity_test/src/EntityTestViewBuilder.php | 10 ++++++++++ 5 files changed, 37 insertions(+), 8 deletions(-) diff --git a/core/includes/theme.inc b/core/includes/theme.inc index cd09a884f128..15ef789bb7e9 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -2223,10 +2223,14 @@ function template_preprocess_field_multiple_value_form(&$variables) { if ($variables['multiple']) { $table_id = drupal_html_id($element['#field_name'] . '_values'); $order_class = $element['#field_name'] . '-delta-order'; + $header_attributes = new Attribute(array('class' => array('label'))); + if (!empty($element['#required'])) { + $header_attributes['class'][] = 'form-required'; + } $header = array( array( 'data' => array( - '#prefix' => '<h4 class="label">', + '#prefix' => '<h4' . $header_attributes . '>', 'title' => array( '#markup' => t($element['#title']), ), @@ -2237,12 +2241,6 @@ 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, - ); - } $rows = array(); // Sort items according to '_weight' (needed when the form comes back after diff --git a/core/modules/block_content/src/BlockContentViewBuilder.php b/core/modules/block_content/src/BlockContentViewBuilder.php index 0977e9f1eb86..ff2a8536b3cb 100644 --- a/core/modules/block_content/src/BlockContentViewBuilder.php +++ b/core/modules/block_content/src/BlockContentViewBuilder.php @@ -16,6 +16,17 @@ */ class BlockContentViewBuilder extends EntityViewBuilder { + /** + * {@inheritdoc} + */ + protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) { + $build = parent::getBuildDefaults($entity, $view_mode, $langcode); + // The custom block will be rendered in the wrapped block template already + // and thus has no entity template itself. + unset($build['#theme']); + return $build; + } + /** * {@inheritdoc} */ diff --git a/core/modules/contact/src/MessageViewBuilder.php b/core/modules/contact/src/MessageViewBuilder.php index 4cbbd2c17208..23e9b4300432 100644 --- a/core/modules/contact/src/MessageViewBuilder.php +++ b/core/modules/contact/src/MessageViewBuilder.php @@ -17,6 +17,17 @@ */ class MessageViewBuilder extends EntityViewBuilder { + /** + * {@inheritdoc} + */ + protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) { + $build = parent::getBuildDefaults($entity, $view_mode, $langcode); + // The message fields are individually rendered into email templates, so + // the entity has no template itself. + unset($build['#theme']); + return $build; + } + /** * {@inheritdoc} */ diff --git a/core/modules/system/src/Tests/Theme/FunctionsTest.php b/core/modules/system/src/Tests/Theme/FunctionsTest.php index b0fe3050980e..58ffcde40e19 100644 --- a/core/modules/system/src/Tests/Theme/FunctionsTest.php +++ b/core/modules/system/src/Tests/Theme/FunctionsTest.php @@ -64,7 +64,6 @@ function testItemList() { // Verify that title set to a render array is output. $variables = array(); $variables['title'] = array( - '#theme' => 'markup', '#markup' => '<span>Render array</span>', ); $variables['empty'] = 'No items found.'; 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 535faff120b9..345651254215 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; /** @@ -17,6 +18,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} */ -- GitLab