# CMS-Seite via Twig aufrufen

**URL:** <https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112>\
**Category:** Shopware 6 (German)\
**Created:** [6. September 2022 um 12:40 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112 "2022-09-06T12:40:14Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [6. September 2022 um 12:40 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/1 "2022-09-06T12:40:14Z")

</div>

Hallo,

ich möchte aus Twig heraus eine eigene CMS-Seite aufrufen. Konkret ist der Sinn, das Registrierung-Formular durch ein eigenes Formular zu ersetzen, welches im Endeffekt eine E-Mail sendet, statt den Kunden im Shop zu registrieren:

```auto
{% sw_extends '@Storefront/storefront/page/account/register/index.html.twig' %}

{% block page_account_register_container %}
    <div class="col-lg-8">
        {% sw_include ... } %}
    </div>
{% endblock %}

```

Die CMS-Seite ist bereits angelegt. Aber wie kann ich die konkret aufrufen?

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [7. September 2022 um 00:47 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/2 "2022-09-07T00:47:14Z")

</div>

Welches Formular nutzt du denn? Du kannst die dieses Plugin beschaffen:

> **[Formular Baukasten 2 | Basis Version](https://store.shopware.com/moorl49965471465/formular-baukasten-2-basis-version.html)**
>
> Hinweis für alle Kunden, die den Formular Baukasten bereits besitzen Dieses Plugin ist grundlegend anders aufgebaut und bietet keine…

Da werde ich relativ zeitnah ein Update raus bringen um Formulare mit einem Twig Snippet einzubinden.

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [7. September 2022 um 06:24 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/3 "2022-09-07T06:24:57Z")

</div>

Hallo Moorleiche,

ich nutze das Plugin „CMS-Erweiterungen für Shopware 6“ um eigene Formulare zu erstellen. In diesem Fall will ich die Kunden-Registrierung durch ein Formular ersetzen, welches eine E-Mail mit den Kundendaten an den Shopbetreiber sendet. Der nutzt eine Warenwirtschaft und will die Kundendaten zentral in der WaWi erfassen.

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [7. September 2022 um 09:25 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/4 "2022-09-07T09:25:48Z")

</div>

Irgendwie stehe ich gerade auf dem Schlauch. Mit folgendem Aufruf kann ich mein Formular im modalen Fenster aufrufen:

```auto
<a href="/widgets/cms/66c84e2e09e948789d077e4bbfd4a408"
       title="Contact us" 
       data-toggle="modal" 
       data-url="/widgets/cms/66c84e2e09e948789d077e4bbfd4a408">Contact us</a>

```

Ich möchte aber die gerenderte CMS-Seite nicht als Link zu einem modal, sondern direkt inkludieren, beispielsweise via

`{% sw_include ...` %}

Hat jemand einen Tipp? Ich kann dazu nichts finden 🙄.

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [7. September 2022 um 09:54 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/5 "2022-09-07T09:54:26Z")

</div>

Ein CMS-Element ist ein Eintrag in der Datenbank und keine Datei. Daher kannst du das nicht per include einbinden (soviel ich weiß, ehrlich gesagt noch nie mit dem Thema beschäftigt). Was du gepostet hast wird für einen AJAX call genutzt und über die ID das CMS geladen.

Da ich hier [Shopware's twig functions - Shopware Developer](https://developer.shopware.com/docs/resources/references/storefront-reference/twig-function-reference) keine Shopware-Funktion finde, schätze ich, dass das nur über einen Storefront Controller bzw. Subscriber möglich ist (schätze, keine Ahnung).

@Moorleiche kennst sich damit aber garantiert aus.

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [7. September 2022 um 10:03 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/6 "2022-09-07T10:03:01Z")

</div>

Danke. Ja, stimmt. Die CMS-Seite ist ja kein Template-File, was man mit `sw_include` einbinden kann. Aber irgendwie muss es doch gehen, das Teil einzubinden?

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [7. September 2022 um 12:28 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/7 "2022-09-07T12:28:46Z")

</div>

Irgendwie geht es immer… Aber der Weg zum Ziel wird sich nicht als Kurzgeschichte zusammenfassen lassen können. Ich habe soeben mein Plugin, welches ich vorgeschlagen habe angepasst, sodass man Twig Snippets nutzen kann 😉

> **[Formular Baukasten 2 | Anleitungen](https://docs.moori.net/plugin/MoorlForms/how-tos/#formular-in-twig-template-einbauen)**
>
> Hier findest du viele nützliche Tipps und Tricks für die Einrichtung deiner individuellen Formulare in Shopware 6.

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [7. September 2022 um 12:48 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/8 "2022-09-07T12:48:13Z")

</div>

Hallo,

da ich „CMS-Erweiterungen für Shopware 6“ nutze, will ich jetzt nicht noch ein Plugin für die Formulare nutzen. Da muss ich eben weiter nach einer Lösung suchen. Danke trotzdem 😐.

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [7. September 2022 um 12:51 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/9 "2022-09-07T12:51:41Z")

</div>

Hallo Frank, kann verstehen, dass man sein System immer möglichst minimalistisch halten will. Aber um dein Vorhaben so umzusetzen, wirst du auch ein Plugin einsetzen/schreiben müssen. Mit Hausmitteln oder einem Theme geht das leider nicht. VG

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [7. September 2022 um 13:00 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/10 "2022-09-07T13:00:35Z")

</div>

Hallo Moorleiche,

ja, ich verstehe auch Dein Argument. Vielleicht nutze ich am Ende Dein Plugin. Es ist immer so eine Entscheidung: welche Dinge mache ich im Theme selber, wo mache ich ein Plugin, oder kaufe ein fertiges Plugin, weil der Aufwand zu hoch wird, wenn ich es nicht so schnell hinbekomme …

In diesem Fall verstehe ich noch nicht ganz, warum es so kompliziert ist. Im Footer werden die CMS-Seiten doch auch eingebunden. Muss mir mal anschauen, wie das dort umgesetzt ist.

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [7. September 2022 um 13:19 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/11 "2022-09-07T13:19:23Z")

</div>

Im Footer werden keine CMS-Seiten eingebunden.

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [7. September 2022 um 13:30 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/12 "2022-09-07T13:30:52Z")

</div>

ich meinte, wenn ich in der Footer-Navigation (Kataloge/Kategorien) auf eine eigene Shopseite verweise (z.B. Kontakt, Newsletter). Aber ist vielleicht doch was anderes?

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [7. September 2022 um 13:53 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/13 "2022-09-07T13:53:17Z")

</div>

Das ist ein simpler Hyperlink.

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [7. September 2022 um 13:59 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/14 "2022-09-07T13:59:52Z")

</div>

Ja, stimmt. Die Einbindung, wie ich sie brauche ist wohl eher ein „Snippet“.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [7. September 2022 um 14:08 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/15 "2022-09-07T14:08:02Z")

</div>

Ein Snippet ist ein Textbaustein, der hat mit einer CMS-Seite überhaupt nichts zu tun.

Snippets bindest du per `{{ 'snippet'|trans }}` ein.

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [7. September 2022 um 14:11 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/16 "2022-09-07T14:11:32Z")

</div>

Ja, es gibt aber auch Code-Snippets 🙂

> **[Snippet (programming)](https://en.wikipedia.org/wiki/Snippet_(programming))**
>
> Snippet is a programming term for a small region of re-usable source code, machine code, or text. Ordinarily, these are formally defined operative units to incorporate into larger programming modules. Snippet management is a feature of some text editors, program source code editors, IDEs, and related software. It allows the user to avoid repetitive typing in the course of routine edit operations.
> In programming practice, "snippet" refers narrowly to a portion of source code that is literally inc...

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [8. September 2022 um 07:22 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/17 "2022-09-08T07:22:17Z")

</div>

Also sowas hier in der Art:

> **[GitHub - aggrosoft/shopware-twig-load-cms-blocks: Allows including cms...](https://github.com/aggrosoft/shopware-twig-load-cms-blocks)**
>
> Allows including cms snippets inside of templates. Contribute to aggrosoft/shopware-twig-load-cms-blocks development by creating an account on GitHub.

Wurde übrigens in diesem Beitrag behandelt, wo es genau um mein Problem geht:

> [@Erlebniswelten in das Template einbinden](https://forum.shopware.com/t/erlebniswelten-in-das-template-einbinden/87857):
>
> Hallo, gibt es eine Möglichkeit eine Erlebniswelt über TWIG in das Template einzubinden? Viele Grüße

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![cci-woelfel](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/cci-woelfel/32/24017_2.png) [@cci-woelfel](https://forum.shopware.com/u/cci-woelfel)\
**Post date:** [1. Oktober 2024 um 12:33 UTC](https://forum.shopware.com/t/cms-seite-via-twig-aufrufen/96112/18 "2024-10-01T12:33:31Z")

</div>

Ab Shopware 6.X solltest du den Page\_Loader nutzen.  
Ob das allerdings im Template geht, kann ich dir nicht sagen.

{% set page = page\_loader.load(‚technischer\_name‘) %} //Name der Seite

Alternativ kannst du es auch über die id aus der datenbank erreichen:  
// id = 018c8d0e0da0701c9a22fe350d52eaae;

```auto
<div class="cms-page-loader"
     data-url="{{ path('frontend.cms.page', { id: '018c8d0e0da0701c9a22fe350d52eaae' }) }}"
     data-loading="true">
    <div class="loading-indicator">Lädt...</div>
</div>

<script>
        const loader = document.querySelector('.cms-page-loader');
        
        if (loader) {
            const url = loader.getAttribute('data-url');

            // AJAX-Anfrage durchführen
            fetch(url)
                .then(response => {
                    if (!response.ok) {
                        throw new Error('Netzwerkfehler: ' + response.statusText);
                    }
                    return response.text();
                })
                .then(data => {
                    loader.innerHTML = data; // Ersetze den Inhalt mit den geladenen Daten
                })
                .catch(error => {
                    console.error('Fehler beim Laden der Seite:', error);
                });
        }
</script>

```
