This bundle extends erdnaxelaweb/staticfakedesign to provide an abstraction layer for the Ibexa CMS in order to streamline the templates development workflow.
It serves as a bridge between static design development and the Ibexa CMS by:
- Providing a consistent definition model for content types, taxonomy entries, and landing page blocks
- Managing transformations between Ibexa's native objects and template-friendly representations
- Enabling developers to build and test templates before the CMS integration
- Offering a smooth transition from static design to dynamic CMS implementation
- Add the bundle to your project via Composer:
composer require erdnaxelaweb/ibexadesignintegration- Register the bundle in your
config/bundles.php:
return [
// ...
ErdnaxelaWeb\IbexaDesignIntegrationBundle\IbexaDesignIntegrationBundle::class => ['all' => true],
];- Value Transformers: Specialized services for transforming Ibexa CMS objects (content, fields, blocks) into template-friendly objects
- Content Abstraction: Consistent interfaces for accessing content data regardless of the underlying implementation
- Block Management: Enhanced landing page block integration with attribute transformation
- Taxonomy Integration: Support for Ibexa Taxonomy with transformation capabilities
- Pagination System: Flexible pager builder with search type system for creating paginated listings
- Performance Optimization: Lazy-loading mechanisms for improved template rendering performance
- HTTP Cache Integration: Automatic response tagging for efficient cache invalidation
Refer to the erdnaxelaweb/staticfakedesign bundle documentation for detailed usage instructions.
Define content types in a standardized way using the definition pattern:
parameters:
erdnaxelaweb.static_fake_design.content_definition:
article:
name:
eng-GB: 'Article'
nameSchema: '<title>'
urlAliasSchema: '<title>'
fields:
title:
type: string
required: true
body:
type: richtext
required: falseDefine taxonomy types for categorizing content:
parameters:
erdnaxelaweb.static_fake_design.taxonomy_entry_definition:
category:
fields:
name:
required: true
type: string
identifier:
required: true
type: stringCreate custom landing page blocks:
ibexa_design_integration:
system:
default:
block_definition:
featured_articles:
views:
default: '@ibexadesign/landing_page/block/featured_articles.html.twig'
attributes:
title:
type: "string"
required: false
articles:
type: "content"
required: true
options:
type: article
max: 3The bundle provide a set of twig functions to integrate templates with the Ibexa CMS.:
display_content: Renders a content view template
{{ display_content(<template name>, <content>, <parameters>, <is ESI>, <view type>) }}
{{ display_content('@ibexadesign/content/list/news.html.twig', content, []) }}display_block: Renders a block view template
{{ display_block(<block>, <is ESI>) }}
{{ display_block(block) }}display_component: Renders a component view template
{{ display_component('@ibexadesign/components/footer.html.twig', []) }}
{{ display_component(<template name>, <parameters>, <controller action>, <is ESI>) }}Thoses functions are used to switch between include and render depending on the context (static or dynamic version).
- A content view template should always be associated with a content object
- Page template names should follow the pattern:
<view>/<content_type>.html.twig - The content variable in a content view template should always be named
content
Detailed documentation is available in the ./doc directory:
- Block Attribute Value Transformers
- Block Transformer
- Content Transformer
- Field Value Transformers
- Pager Builder
- Pager Search Types
- Taxonomy Entry Transformer
- Developer Guide
Contributions are welcome! Please feel free to submit a Pull Request.
This bundle is released under the MIT License.