Reusable Contao frontend module that renders the published content elements of a selected source article in another module or layout context.
The selected source article itself may remain unpublished and can be used as an internal content container. Only published content elements inside that article are rendered.
Designed for theme- and template-driven setups where structure is handled by templates, layout areas or structural content elements, while content is managed through Contao articles.
- Frontend module: Article Insert
- Select source page
- Select source article
- Renders all published content elements from the selected source article
- Allows the selected source article to remain unpublished
- Prevents recursive article rendering
- Returns empty output for invalid, missing or recursive article references
- Useful for:
- layout areas
- reusable article-based content blocks
- template-driven page structures
- custom template slots
- one-page layouts
- Theme-agnostic output
- Keeps content management inside Contao articles
Backend -> Themes -> Frontend Modules
- Create a new frontend module
- Select module type: Article Insert
- Select a page
- Select the article
- Place the module in a layout section, custom template slot or page layout area
The article list depends on the selected page. Selecting a page triggers a backend reload and refreshes the article selector immediately, including before the module is saved for the first time.
Article Insert tracks the selected source article while its published content elements are being rendered. If the same article is requested again inside that render chain, the nested attempt returns empty output.
Example:
- Article Insert renders Article A.
- Article A contains a module content element that renders the same Article Insert module.
- The second attempt to render Article A is stopped.
Invalid or deleted source article records also return empty output without rendering broken frontend markup.
Use this bundle when you need to render a selected article in another module or layout context.
Recommended separation:
frontend-assets= shared frontend CSS and JavaScriptcontent-elements= actual reusable content elementssection-elements= inline Start / Area / End structures in the current articlecontent-grid= renders article content inside a grid structurearticle-insert= renders a selected article in another module/layout contextlayout-preset= macro layout with external slots
mod_article_insert.html5
Add the package definition to your Contao project composer.json or install it via your configured repository setup.
Example package reference:
{
"repositories": [
{
"type": "package",
"package": {
"name": "vtxm-h/article-insert",
"version": "1.1.5",
"type": "contao-bundle",
"license": "MIT",
"dist": {
"url": "https://github.com/vtxm-h/article-insert/archive/refs/tags/v1.1.5.zip",
"type": "zip"
},
"autoload": {
"psr-4": {
"Vendor\\ArticleInsertBundle\\": "src/"
}
},
"require": {
"php": "^8.0",
"contao/core-bundle": "^4.13",
"contao/manager-plugin": "^2.0",
"vtxm-h/contao-dca-helpers": "^1.0"
},
"extra": {
"contao-manager-plugin": "Vendor\\ArticleInsertBundle\\ContaoManager\\Plugin"
}
}
}
]
}Install:
composer require vtxm-h/article-insertContao 4.13 PHP 8.0+
MIT