Template configuration¶
You configure how templates are used under the ibexa.system.<scope>.content_view
configuration key.
The following example configuration defines template usage for several cases:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
Scope¶
The content view configuration must be placed under ibexa.system.<scope>
.
Scope defines the SiteAccesses for which the configuration is valid. It may be a SiteAccess, a SiteAccess group, or one of the generic configuration scopes.
Page layout¶
pagelayout
defines the general layout of the whole site.
Other templates can extend the page layout.
1 |
|
View types¶
The ibexa.system.<scope>.content_view
configuration key defines rules for rendering content.
Rules are grouped per view type.
1 2 3 4 5 6 |
|
The default, built-in views are:
full
- used when the content item is displayed by itself, as a full pageline
- used when content is displayed as an item in a list, for example a list of the contents of a foldertext_linked
- used for a text section which is a linkembed
- used when one content item is embedded in another, as a blockembed-inline
- used when a content item is embedded inline in anotherasset_image
- used when an image asset is embedded in another content item
The built-in views have built-in default templates. You can define any other custom views. For each custom view, you must define a custom template.
Direct path to previewing view types
You can preview content in a specific view type by using a direct path to the built-in view controller:
<yourdomain>/view/content/<contentId>/<viewType>/true/<locationId>
For example:
<yourdomain>/view/content/55/embed/true/57
View rules and matching¶
Each rule must have a name unique per view type.
For each rule you must define the matching conditions.
The match
key can contain one or more view matchers, including custom ones.
1 2 3 4 5 |
|
template
indicates which template to use.
controller
indicates which controller and which method to use when rendering the content.
You can use it together with the template
key, or without it.
params
can provide additional parameters to the content view.
Use them, for example, with Query types
or to provide custom Twig variables to the template.
Combining matchers¶
When you use more than one matcher in one rule, both conditions must match for the rule to apply.
1 2 3 |
|
In the example above, content which is either an article or a blog post is matched, but it must be in the "News" Section.
Matching every content item¶
When you use no matcher in a rule, this rule always match. Several values are available to declare no matcher:
1 2 3 |
|
Such rules can be found in the default template configuration.
Tip
For example, you can ensure that any content item lacking a dedicated template isn't displayed in full
view but is instead sent to a custom controller.
1 2 3 4 5 6 7 8 9 10 |
|
$view->setResponse((new Response())->setStatusCode(404));
, and fetch reverse relations to provide suggestions on the error page.