# Replace CMS Data Resolver

**URL:** <https://forum.shopware.com/t/replace-cms-data-resolver/90174>\
**Category:** Programmierung\
**Created:** [7. September 2021 um 12:02 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174 "2021-09-07T12:02:20Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [7. September 2021 um 12:02 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174/1 "2021-09-07T12:02:20Z")

</div>

Ich würde gerne diesen Resolver ersetzen: `Shopware\Core\Content\Cms\DataResolver\Element\TextCmsElementResolver`  
Über die reguläre Methode in der `services.xml` geht das leider nicht:

```xml
<service id="Shopware\Core\Content\Cms\DataResolver\Element\TextCmsElementResolver" class="MyPlugin\Core\Content\Cms\DataResolver\Element\TextCmsElementResolver">
    <tag name="shopware.cms.data_resolver"/>
</service>

```

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [8. September 2021 um 06:09 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174/2 "2021-09-08T06:09:10Z")

</div>

Ich würde gerne das CMS Text-Element filtern, bzw. den Text darin. Um z.B. [Markdown](https://markdown.de/) zu ermöglichen oder nach irgendwas spezifischem zu filtern. Wie stelle ich das am besten an?

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [8. September 2021 um 09:31 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174/4 "2021-09-08T09:31:16Z")

</div>

Nein, was soll mir das bringen? Was haben CMS-Elemente mit E-Mail Versand zu tun?

---

<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:** [8. September 2021 um 10:29 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174/5 "2021-09-08T10:29:50Z")

</div>

Sorry, dachte du hättest ein Problem mit einer Abstrakten Klasse. Ist aber gar nicht der Fall.

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [10. September 2021 um 13:01 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174/6 "2021-09-10T13:01:32Z")

</div>

Wie kann ich ein CMS-Element decoraten? Geht das überhaupt?

Also ich kann auch auf dem Page Loader Event einfach alle Slots loopen und filtern aber ich würde es lieber auf der Model-Ebene, also direkt beim laden, machen.

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [14. September 2021 um 13:38 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174/9 "2021-09-14T13:38:02Z")

</div>

no solution yet 😴

will do it in the Page Loader Event until I know how to do this properly

---

<div class="post-metadata">

**Author:** ![NacScha](https://avatars.discourse-cdn.com/v4/letter/n/3bc359/32.png) [@NacScha](https://forum.shopware.com/u/NacScha)\
**Post date:** [13. Juni 2023 um 13:10 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174/10 "2023-06-13T13:10:22Z")

</div>

@AlexGalax Ich kenne nur den Weg den Serivce in der service.xml komplett zu überschreiben. Ist aber auch nicht optimal, da man alle privaten Funktionien kopieren und einfügen muss…  
Aber seit deiner letzten Antwort ist ja einige Zeit vergangen, hast du hierzu mittlerweile einen passablen Weg gefunden?

**Edit:**  
Hier findet sich alles zum Thema, man kann einfach einen zusätzlichen Resolver programmieren, welcher die Daten holt: [Add data to CMS element - Shopware Developer](https://developer.shopware.com/docs/guides/plugins/plugins/content/cms/add-data-to-cms-elements)

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [14. Juni 2023 um 02:30 UTC](https://forum.shopware.com/t/replace-cms-data-resolver/90174/11 "2023-06-14T02:30:55Z")

</div>

Ich überschreibe den Resolver

```xml
<service id="MyTheme\Core\Content\Cms\DataResolver\Element\TextCmsElementResolver"
         decorates="Shopware\Core\Content\Cms\DataResolver\Element\TextCmsElementResolver">
    <argument type="service"
              id="MyTheme\Core\Content\Cms\DataResolver\Element\TextCmsElementResolver.inner" />
</service>

```
