diff --git a/core/modules/views_ui/src/Controller/ViewsUIController.php b/core/modules/views_ui/src/Controller/ViewsUIController.php index f03328a..342f21a 100644 --- a/core/modules/views_ui/src/Controller/ViewsUIController.php +++ b/core/modules/views_ui/src/Controller/ViewsUIController.php @@ -9,6 +9,7 @@ use Drupal\Component\Utility\SafeMarkup; use Drupal\Core\Controller\ControllerBase; +use Drupal\Core\Render\RendererInterface; use Drupal\Core\Url; use Drupal\views\ViewExecutable; use Drupal\views\ViewEntityInterface; @@ -34,13 +35,23 @@ class ViewsUIController extends ControllerBase { protected $viewsData; /** + * The rendering service. + * + * @var \Drupal\Core\Render\RendererInterface + */ + protected $renderer; + + /** * Constructs a new \Drupal\views_ui\Controller\ViewsUIController object. * * @param \Drupal\views\ViewsData views_data * The Views data cache object. + * @param \Drupal\Core\Render\RendererInterface $renderer + * The rendering service. */ - public function __construct(ViewsData $views_data) { + public function __construct(ViewsData $views_data, RendererInterface $renderer) { $this->viewsData = $views_data; + $this->renderer = $renderer; } /** @@ -48,7 +59,8 @@ public function __construct(ViewsData $views_data) { */ public static function create(ContainerInterface $container) { return new static( - $container->get('views.views_data') + $container->get('views.views_data'), + $container->get('renderer') ); } @@ -157,7 +169,7 @@ public function ajaxOperation(ViewEntityInterface $view, $op, Request $request) if ($request->request->get('js')) { $list = $this->entityManager()->getListBuilder('view')->render(); $response = new AjaxResponse(); - $response->addCommand(new ReplaceCommand('#views-entity-list', drupal_render($list))); + $response->addCommand(new ReplaceCommand('#views-entity-list', $this->renderer->render($list))); return $response; } diff --git a/core/modules/views_ui/src/Form/BreakLockForm.php b/core/modules/views_ui/src/Form/BreakLockForm.php index 82f1f6f..b6e6b18 100644 --- a/core/modules/views_ui/src/Form/BreakLockForm.php +++ b/core/modules/views_ui/src/Form/BreakLockForm.php @@ -10,6 +10,7 @@ use Drupal\Core\Entity\EntityConfirmFormBase; use Drupal\Core\Entity\EntityManagerInterface; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Render\RendererInterface; use Drupal\user\SharedTempStoreFactory; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -33,16 +34,26 @@ class BreakLockForm extends EntityConfirmFormBase { protected $tempStore; /** + * The rendering service. + * + * @var \Drupal\Core\Render\RendererInterface + */ + protected $renderer; + + /** * Constructs a \Drupal\views_ui\Form\BreakLockForm object. * * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager * The Entity manager. * @param \Drupal\user\SharedTempStoreFactory $temp_store_factory * The factory for the temp store object. + * @param \Drupal\Core\Render\RendererInterface $renderer + * The rendering service. */ - public function __construct(EntityManagerInterface $entity_manager, SharedTempStoreFactory $temp_store_factory) { + public function __construct(EntityManagerInterface $entity_manager, SharedTempStoreFactory $temp_store_factory, RendererInterface $renderer) { $this->entityManager = $entity_manager; $this->tempStore = $temp_store_factory->get('views'); + $this->renderer = $renderer; } /** @@ -51,7 +62,8 @@ public function __construct(EntityManagerInterface $entity_manager, SharedTempSt public static function create(ContainerInterface $container) { return new static( $container->get('entity.manager'), - $container->get('user.shared_tempstore') + $container->get('user.shared_tempstore'), + $container->get('renderer') ); } @@ -79,7 +91,7 @@ public function getDescription() { '#theme' => 'username', '#account' => $account, ); - return $this->t('By breaking this lock, any unsaved changes made by !user will be lost.', array('!user' => drupal_render($username))); + return $this->t('By breaking this lock, any unsaved changes made by !user will be lost.', array('!user' => $this->renderer->render($username))); } /** diff --git a/core/modules/views_ui/src/Tests/CustomBooleanTest.php b/core/modules/views_ui/src/Tests/CustomBooleanTest.php index f9a990b..f30e193 100644 --- a/core/modules/views_ui/src/Tests/CustomBooleanTest.php +++ b/core/modules/views_ui/src/Tests/CustomBooleanTest.php @@ -86,6 +86,8 @@ public function testCustomOption() { ), ); + $renderer = \Drupal::service('renderer'); + // Run the same tests on each type. foreach ($custom_values as $type => $values) { $options = array( @@ -100,7 +102,7 @@ public function testCustomOption() { $view = Views::getView('test_view'); $output = $view->preview(); - $output = drupal_render($output); + $output = $renderer->render($output); $replacements = array('%type' => $type); $this->{$values['test']}(strpos($output, $values['true']), format_string('Expected custom boolean TRUE value in output for %type.', $replacements)); diff --git a/core/modules/views_ui/src/ViewEditForm.php b/core/modules/views_ui/src/ViewEditForm.php index 2fc7fc4..8e03993 100644 --- a/core/modules/views_ui/src/ViewEditForm.php +++ b/core/modules/views_ui/src/ViewEditForm.php @@ -19,6 +19,7 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Render\Element; use Drupal\Core\Render\ElementInfoManagerInterface; +use Drupal\Core\Render\RendererInterface; use Drupal\Core\Url; use Drupal\user\SharedTempStoreFactory; use Drupal\views\Views; @@ -60,6 +61,13 @@ class ViewEditForm extends ViewFormBase { protected $elementInfo; /** + * The rendering service. + * + * @var \Drupal\Core\Render\RendererInterface + */ + protected $renderer; + + /** * Constructs a new ViewEditForm object. * * @param \Drupal\user\SharedTempStoreFactory $temp_store_factory @@ -70,12 +78,15 @@ class ViewEditForm extends ViewFormBase { * The date Formatter service. * @param \Drupal\Core\Render\ElementInfoManagerInterface $element_info * The element info manager. + * @param \Drupal\Core\Render\RendererInterface $renderer + * The rendering service. */ - public function __construct(SharedTempStoreFactory $temp_store_factory, RequestStack $requestStack, DateFormatter $date_formatter, ElementInfoManagerInterface $element_info) { + public function __construct(SharedTempStoreFactory $temp_store_factory, RequestStack $requestStack, DateFormatter $date_formatter, ElementInfoManagerInterface $element_info, RendererInterface $renderer) { $this->tempStore = $temp_store_factory->get('views'); $this->requestStack = $requestStack; $this->dateFormatter = $date_formatter; $this->elementInfo = $element_info; + $this->renderer = $renderer; } /** @@ -86,7 +97,8 @@ public static function create(ContainerInterface $container) { $container->get('user.shared_tempstore'), $container->get('request_stack'), $container->get('date.formatter'), - $container->get('element_info') + $container->get('element_info'), + $container->get('renderer') ); } @@ -146,7 +158,7 @@ public function form(array $form, FormStateInterface $form_state) { '#account' => user_load($view->lock->owner), ); $lock_message_substitutions = array( - '!user' => drupal_render($username), + '!user' => $this->renderer->render($username), '!age' => $this->dateFormatter->formatInterval(REQUEST_TIME - $view->lock->updated), '@url' => $view->url('break-lock-form'), ); @@ -679,12 +691,12 @@ public function rebuildCurrentTab(ViewUI $view, AjaxResponse $response, $display // Regenerate the main display area. $build = $this->getDisplayTab($view); static::addMicroweights($build); - $response->addCommand(new HtmlCommand('#views-tab-' . $display_id, drupal_render($build))); + $response->addCommand(new HtmlCommand('#views-tab-' . $display_id, $this->renderer->render($build))); // Regenerate the top area so changes to display names and order will appear. $build = $this->renderDisplayTop($view); static::addMicroweights($build); - $response->addCommand(new ReplaceCommand('#views-display-top', drupal_render($build))); + $response->addCommand(new ReplaceCommand('#views-display-top', $this->renderer->render($build))); } /** @@ -1157,7 +1169,7 @@ public function getFormBucket(ViewUI $view, $type, $display) { * Recursively adds microweights to a render array, similar to what * \Drupal::formBuilder()->doBuildForm() does for forms. * - * @todo Submit a core patch to fix drupal_render() to do this, so that all + * @todo Submit a core patch to fix renderer service to do this, so that all * render arrays automatically preserve array insertion order, as forms do. */ public static function addMicroweights(&$build) { diff --git a/core/modules/views_ui/views_ui.theme.inc b/core/modules/views_ui/views_ui.theme.inc index f2f2b67..e41e364 100644 --- a/core/modules/views_ui/views_ui.theme.inc +++ b/core/modules/views_ui/views_ui.theme.inc @@ -97,27 +97,28 @@ function template_preprocess_views_ui_view_info(&$variables) { */ function theme_views_ui_build_group_filter_form($variables) { $form = $variables['form']; - $more = drupal_render($form['more']); + $renderer = \Drupal::service('renderer'); + $more = $renderer->render($form['more']); - $output = drupal_render($form['form_description']); - $output .= drupal_render($form['expose_button']); - $output .= drupal_render($form['group_button']); + $output = $renderer->render($form['form_description']); + $output .= $renderer->render($form['expose_button']); + $output .= $renderer->render($form['group_button']); if (isset($form['required'])) { - $output .= drupal_render($form['required']); + $output .= $renderer->render($form['required']); } - $output .= drupal_render($form['operator']); - $output .= drupal_render($form['value']); + $output .= $renderer->render($form['operator']); + $output .= $renderer->render($form['value']); $output .= '
'; - $output .= drupal_render($form['optional']); - $output .= drupal_render($form['remember']); + $output .= $renderer->render($form['optional']); + $output .= $renderer->render($form['remember']); $output .= '
'; $output .= '
'; - $output .= drupal_render($form['widget']); - $output .= drupal_render($form['label']); - $output .= drupal_render($form['description']); + $output .= $renderer->render($form['widget']); + $output .= $renderer->render($form['label']); + $output .= $renderer->render($form['description']); $output .= '
'; $header = array( @@ -136,7 +137,7 @@ function theme_views_ui_build_group_filter_form($variables) { hide($form['default_group_multiple']['All']); $rows[] = array( - drupal_render($form['default_group']['All']), + $renderer->render($form['default_group']['All']), '', array( 'data' => \Drupal::config('views.settings')->get('ui.exposed_filter_any_label') == 'old_any' ? t('<Any>') : t('- Any -'), @@ -150,16 +151,16 @@ function theme_views_ui_build_group_filter_form($variables) { $data = array( 'default' => array( 'data' => array( - '#markup' => drupal_render($form['default_group'][$group_id]) . drupal_render($form['default_group_multiple'][$group_id]), + '#markup' => $renderer->render($form['default_group'][$group_id]) . $renderer->render($form['default_group_multiple'][$group_id]), ), ), - 'weight' => drupal_render($form['group_items'][$group_id]['weight']), - 'title' => drupal_render($form['group_items'][$group_id]['title']), - 'operator' => drupal_render($form['group_items'][$group_id]['operator']), - 'value' => drupal_render($form['group_items'][$group_id]['value']), + 'weight' => $renderer->render($form['group_items'][$group_id]['weight']), + 'title' => $renderer->render($form['group_items'][$group_id]['title']), + 'operator' => $renderer->render($form['group_items'][$group_id]['operator']), + 'value' => $renderer->render($form['group_items'][$group_id]['value']), 'remove' => array( 'data' => array( - '#markup' => drupal_render($form['group_items'][$group_id]['remove']) . \Drupal::l(SafeMarkup::format('@text', array('@text' => t('Remove'))), Url::fromRoute('', [], array('attributes' => array('id' => 'views-remove-link-' . $group_id, 'class' => array('views-hidden', 'views-button-remove', 'views-groups-remove-link', 'views-remove-link'), 'alt' => t('Remove this item'), 'title' => t('Remove this item'))))), + '#markup' => $renderer->render($form['group_items'][$group_id]['remove']) . \Drupal::l(SafeMarkup::format('@text', array('@text' => t('Remove'))), Url::fromRoute('', [], array('attributes' => array('id' => 'views-remove-link-' . $group_id, 'class' => array('views-hidden', 'views-button-remove', 'views-groups-remove-link', 'views-remove-link'), 'alt' => t('Remove this item'), 'title' => t('Remove this item'))))), ), ), ); @@ -183,10 +184,10 @@ function theme_views_ui_build_group_filter_form($variables) { ); // Render the "Add another item" button below the table. - $add_another = drupal_render($form['add_group']); + $add_another = $renderer->render($form['add_group']); $render_form = drupal_render_children($form); - return $output . $render_form . drupal_render($table) . $add_another . $more; + return $output . $render_form . $renderer->render($table) . $add_another . $more; } /**