Issue #3188122 by JohnAlbin, larowlan, smustgrave, dww, Abhijith S, B-Prod, raman.b, ranjith_kumar_k_u, levmyshkin: Views more link container theme suggestions are in the wrong order
parent
c886a764bd
commit
caa705a781
|
@ -23,6 +23,9 @@ display:
|
|||
relationship: none
|
||||
table: views_test_data
|
||||
plugin_id: numeric
|
||||
use_more: true
|
||||
use_more_always: true
|
||||
use_more_text: more
|
||||
display_plugin: default
|
||||
display_title: Default
|
||||
id: default
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace Drupal\Tests\views\Kernel;
|
||||
|
||||
use Drupal\Core\DependencyInjection\ContainerBuilder;
|
||||
use Drupal\views\Views;
|
||||
|
||||
/**
|
||||
|
@ -16,7 +17,18 @@ class ViewsTemplateTest extends ViewsKernelTestBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $testViews = ['test_view_display_template'];
|
||||
public static $testViews = ['test_page_display', 'test_view_display_template'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function register(ContainerBuilder $container) {
|
||||
parent::register($container);
|
||||
// Enable Twig debugging.
|
||||
$parameters = $container->getParameter('twig.config');
|
||||
$parameters['debug'] = TRUE;
|
||||
$container->setParameter('twig.config', $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests render functionality.
|
||||
|
@ -30,4 +42,28 @@ class ViewsTemplateTest extends ViewsKernelTestBase {
|
|||
$this->assertStringContainsString('This module defines its own display template.', (string) $renderer->renderRoot($output));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers views_theme_suggestions_container_alter().
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function testThemeSuggestionsContainerAlter() {
|
||||
$build = [
|
||||
'#type' => 'view',
|
||||
'#name' => 'test_page_display',
|
||||
'#display_id' => 'default',
|
||||
'#arguments' => [],
|
||||
];
|
||||
|
||||
$output = $this->render($build);
|
||||
$extension = '.html.twig';
|
||||
$expected = '<!-- FILE NAME SUGGESTIONS:' . PHP_EOL
|
||||
. ' * container--more-link--test-page-display--default' . $extension . PHP_EOL
|
||||
. ' * container--more-link--default' . $extension . PHP_EOL
|
||||
. ' * container--more-link--test-page-display' . $extension . PHP_EOL
|
||||
. ' * container--more-link' . $extension . PHP_EOL
|
||||
. ' x container' . $extension . PHP_EOL
|
||||
. '-->' . PHP_EOL;
|
||||
$this->assertStringContainsString($expected, $output, 'Views more link container suggestions found in Twig debug output');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -285,7 +285,11 @@ function views_theme_suggestions_comment_alter(array &$suggestions, array $varia
|
|||
*/
|
||||
function views_theme_suggestions_container_alter(array &$suggestions, array $variables) {
|
||||
if (!empty($variables['element']['#type']) && $variables['element']['#type'] == 'more_link' && !empty($variables['element']['#view']) && $variables['element']['#view'] instanceof ViewExecutable) {
|
||||
$suggestions = array_merge($suggestions, $variables['element']['#view']->buildThemeFunctions('container__more_link'));
|
||||
$suggestions = array_merge(
|
||||
$suggestions,
|
||||
// Theme suggestions use the reverse order compared to #theme hooks.
|
||||
array_reverse($variables['element']['#view']->buildThemeFunctions('container__more_link'))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue