When the standard view provider is not able to select an appropriate template for a given content, the system fallbacks to the legacy kernel and delegates the view selection to itThis ensures that a content is always displayed and hence eases project migration from eZ Publish v4.x to v5.x

Pagelayout and main block

When falling back to the legacy kernel, the old content/view module is run to return the appropriate view for the given content. However, the pagelayout is not rendered as it needs to be still rendered by Twig in the Symfony part, for consistency. In this regard, the system uses the Decorator design pattern to include the generated view in your layout.

For this to work, you need to configure 2 things :

  1. Which template you want to use as a base template for legacy fallback
  2. The name of the block to use in your layout

Base layout for legacy fallback

You can configure this by setting the ezpublish_legacy.view.default_layout config key.

    ezpublish_legacy.view.default_layout: AcmeDemoBundle::my_layout.html.twig

This configuration is application global only for now.


Block name

Internally when rendering the view coming from the legacy kernel, a Twig template is created on the fly. This template extends the pagelayout you configured and includes the content inside a block. The name of this block is configurable as well (default is content).

    ezpublish_legacy.view.default_layout: AcmeDemoBundle::my_layout.html.twig
    ezpublish.content_view.content_block_name: content
<!DOCTYPE html>
    <!-- ... -->
    {block content}{# Content will be inserted here #}{endblock}


Assets and persistent variable