Issue #2301245 by sun, joelpittet | larowlan: Fixed Entity system invokes non-existing theme hooks: 'Theme hook not found.'

8.0.x
webchick 2014-08-26 10:25:49 -07:00
parent 65c671eff7
commit eb21fc37a7
5 changed files with 37 additions and 8 deletions

View File

@ -2223,10 +2223,14 @@ function template_preprocess_field_multiple_value_form(&$variables) {
if ($variables['multiple']) { if ($variables['multiple']) {
$table_id = drupal_html_id($element['#field_name'] . '_values'); $table_id = drupal_html_id($element['#field_name'] . '_values');
$order_class = $element['#field_name'] . '-delta-order'; $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( $header = array(
array( array(
'data' => array( 'data' => array(
'#prefix' => '<h4 class="label">', '#prefix' => '<h4' . $header_attributes . '>',
'title' => array( 'title' => array(
'#markup' => t($element['#title']), '#markup' => t($element['#title']),
), ),
@ -2237,12 +2241,6 @@ function template_preprocess_field_multiple_value_form(&$variables) {
), ),
t('Order', array(), array('context' => 'Sort order')), t('Order', array(), array('context' => 'Sort order')),
); );
if (!empty($element['#required'])) {
$header[0]['data']['required'] = array(
'#theme' => 'form_required_marker',
'#element' => $element,
);
}
$rows = array(); $rows = array();
// Sort items according to '_weight' (needed when the form comes back after // Sort items according to '_weight' (needed when the form comes back after

View File

@ -16,6 +16,17 @@ use Drupal\Core\Entity\EntityViewBuilder;
*/ */
class BlockContentViewBuilder extends EntityViewBuilder { 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} * {@inheritdoc}
*/ */

View File

@ -17,6 +17,17 @@ use Drupal\Core\Render\Element;
*/ */
class MessageViewBuilder extends EntityViewBuilder { 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} * {@inheritdoc}
*/ */

View File

@ -64,7 +64,6 @@ class FunctionsTest extends WebTestBase {
// Verify that title set to a render array is output. // Verify that title set to a render array is output.
$variables = array(); $variables = array();
$variables['title'] = array( $variables['title'] = array(
'#theme' => 'markup',
'#markup' => '<span>Render array</span>', '#markup' => '<span>Render array</span>',
); );
$variables['empty'] = 'No items found.'; $variables['empty'] = 'No items found.';

View File

@ -8,6 +8,7 @@
namespace Drupal\entity_test; namespace Drupal\entity_test;
use Drupal\Component\Utility\String; use Drupal\Component\Utility\String;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityViewBuilder; use Drupal\Core\Entity\EntityViewBuilder;
/** /**
@ -17,6 +18,15 @@ use Drupal\Core\Entity\EntityViewBuilder;
*/ */
class EntityTestViewBuilder extends EntityViewBuilder { 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} * {@inheritdoc}
*/ */