# Templatewechsel per Domainaufruf

**URL:** <https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542>\
**Category:** Shopware 3.5\
**Tags:** themes--design\
**Created:** [11. September 2012 um 11:53 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542 "2012-09-11T11:53:24Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![templatescout](https://avatars.discourse-cdn.com/v4/letter/t/ad7895/32.png) [@templatescout](https://forum.shopware.com/u/templatescout)\
**Post date:** [11. September 2012 um 11:53 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/1 "2012-09-11T11:53:24Z")

</div>

Hallo, bei der 3er Shopwareversion war es möglich ein Template per Domainaufruf in Form von [http://www.domain.de/shopware.php?sTpl= … ichnisname](http://www.domain.de/shopware.php?sTpl=templateverzeichnisname) aufzurufen. Dies scheint in der 4er Version nicht mehr zu funktionieren. Gibt es dazu eine Lösung?? Gruß Andreas

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [11. September 2012 um 12:02 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/2 "2012-09-11T12:02:39Z")

</div>

Hallo, das ist korrekt. Das ist aus Sicherheitsgründen nicht mehr möglich. Du kannst aber folgendes Beispiel-Plugin dafür verwenden: Wenn du das eingebunden hast, kannst du wieder via ?sTpl=[template-name] das Theme dynamisch wechseln. `<?php class Shopware_Plugins_Frontend_ThemeSwitcher_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
	/**
	 * Install plugin method
	 *
	 * @return bool
	 */
	public function install()
	{
		  $this->subscribeEvent( 'Enlight\_Controller\_Front\_RouteStartup', 'onRouteStartup', 99 ); } public function onRouteStartup(Enlight\_Controller\_EventArgs $args) { $bootstrap = $this-\>Application()-\>Bootstrap(); if ($bootstrap-\>issetResource('Shop')) { $shop = $this-\>Application()-\>Shop(); $main = $shop-\>getMain(); if($main === null) { /\*\* @var $repository Shopware\Models\Shop\Repository \*/ $repository = Shopware()-\>Models()-\>getRepository('Shopware\Models\Shop\Shop'); $main = $repository-\>getActiveById($shop-\>getId()); } // Template Model übergeben if (!empty($\_REQUEST["sTpl"])){ Shopware()-\>Session()-\>sTpl = $\_REQUEST["sTpl"]; } if (!empty(Shopware()-\>Session()-\>sTpl)){ $repository = 'Shopware\Models\Shop\Template'; $repository = Shopware()-\>Models()-\>getRepository($repository); $template = Shopware()-\>Session()-\>sTpl; $template = $repository-\>findOneBy(array('template' =\> $template)); if ($template !== null){ $shop-\>setTemplate($template); }else { $shop-\>setTemplate($main-\>getTemplate()); } }else { $shop-\>setTemplate($main-\>getTemplate()); } } } } `

---

<div class="post-metadata">

**Author:** ![templatescout](https://avatars.discourse-cdn.com/v4/letter/t/ad7895/32.png) [@templatescout](https://forum.shopware.com/u/templatescout)\
**Post date:** [11. September 2012 um 14:03 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/3 "2012-09-11T14:03:02Z")

</div>

Hallo, Danke erstmal. Plugin kann installiert und aktiviert werden, aber scheinbar ist es doch nicht aktiv. Gibts noch Möglichkeiten? Gruß

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [11. September 2012 um 14:40 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/4 "2012-09-11T14:40:30Z")

</div>

Hey, das sollte so bereits korrekt funktionieren. Kannst du überprüfen, ob er überhaupt in die Methode onRouteStartup springt, wenn du den Shop aufrufst? Zum Testen kannst du einfach zu Anfang der Methode mal ein die(„TEST“); setzen. Wenn das korrekt funktioniert, kann es eigentlich nur noch sein, dass du ein Template ansprichst, was entweder nicht existiert, einen anderen Namen im Filesystem hat oder noch nicht in der Tabelle s\_core\_templates steht.

---

<div class="post-metadata">

**Author:** ![templatescout](https://avatars.discourse-cdn.com/v4/letter/t/ad7895/32.png) [@templatescout](https://forum.shopware.com/u/templatescout)\
**Post date:** [11. September 2012 um 15:53 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/5 "2012-09-11T15:53:32Z")

</div>

hhmmm Kannst du überprüfen, ob er überhaupt in die Methode onRouteStartup springt, wenn du den Shop aufrufst? Er springt nicht. Wenn das korrekt funktioniert, kann es eigentlich nur noch sein, dass du ein Template ansprichst, was entweder nicht existiert, einen anderen Namen im Filesystem hat alle da und mit richtigen Namen aufgerufen. oder noch nicht in der Tabelle s\_core\_templates steht. stehen in der Tabelle s\_core\_templates

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [11. September 2012 um 15:58 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/6 "2012-09-11T15:58:03Z")

</div>

Sorry, mein Fehler. Es fehlt ein return true; am Ende der install() Methode. Hier nochmal der korrekte Code - einfach ersetzen und dann erneut installieren / aktivieren. `<?php class Shopware_Plugins_Frontend_ThemeSwitcher_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
	/**
	 * Install plugin method
	 *
	 * @return bool
	 */
	public function install()
	{
		  $this->subscribeEvent( 'Enlight\_Controller\_Front\_RouteStartup', 'onRouteStartup', 99 ); return true; } public function onRouteStartup(Enlight\_Controller\_EventArgs $args) { $bootstrap = $this-\>Application()-\>Bootstrap(); if ($bootstrap-\>issetResource('Shop')) { $shop = $this-\>Application()-\>Shop(); $main = $shop-\>getMain(); if($main === null) { /\*\* @var $repository Shopware\Models\Shop\Repository \*/ $repository = Shopware()-\>Models()-\>getRepository('Shopware\Models\Shop\Shop'); $main = $repository-\>getActiveById($shop-\>getId()); } // Template Model übergeben if (!empty($\_REQUEST["sTpl"])){ Shopware()-\>Session()-\>sTpl = $\_REQUEST["sTpl"]; } if (!empty(Shopware()-\>Session()-\>sTpl)){ $repository = 'Shopware\Models\Shop\Template'; $repository = Shopware()-\>Models()-\>getRepository($repository); $template = Shopware()-\>Session()-\>sTpl; $template = $repository-\>findOneBy(array('template' =\> $template)); if ($template !== null){ $shop-\>setTemplate($template); }else { $shop-\>setTemplate($main-\>getTemplate()); } }else { $shop-\>setTemplate($main-\>getTemplate()); } } } } `

---

<div class="post-metadata">

**Author:** ![templatescout](https://avatars.discourse-cdn.com/v4/letter/t/ad7895/32.png) [@templatescout](https://forum.shopware.com/u/templatescout)\
**Post date:** [11. September 2012 um 16:47 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/7 "2012-09-11T16:47:16Z")

</div>

Perfekt Chef ! Klasse Support !!! Gruß Andreas

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [30. Oktober 2013 um 14:42 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/8 "2013-10-30T14:42:37Z")

</div>

Hallo, habe das gerade auch versucht als Plugin zu installieren, aber nach dem Hochladen und aktualisieren kommt bei den Plugins immer folgende Fehlermeldung: [code]You’re trying to decode an invalid JSON String: Parse error: syntax error, unexpected ’

---

<div class="post-metadata">

**Author:** ![Christian](https://avatars.discourse-cdn.com/v4/letter/c/b2d939/32.png) [@Christian](https://forum.shopware.com/u/Christian)\
**Post date:** [20. November 2013 um 21:59 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/9 "2013-11-20T21:59:34Z")

</div>

Hallo, auch bei mir kommt es zu einer Fehlermeldung. Könnte evtl. jemand das Plugin posten bei dem es funktioniert? Außer mir und taaucher würden sich bestimmt noch andere User darüber freuen… Danke!

---

<div class="post-metadata">

**Author:** ![Webgreat.de](https://avatars.discourse-cdn.com/v4/letter/w/ac91a4/32.png) [@Webgreat.de](https://forum.shopware.com/u/Webgreat.de)\
**Post date:** [20. November 2013 um 22:21 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/10 "2013-11-20T22:21:47Z")

</div>

Wird die Variable irgendwie validiert, oder sind daurch exploits möglich !?

---

<div class="post-metadata">

**Author:** ![mmmichael](https://avatars.discourse-cdn.com/v4/letter/m/ac91a4/32.png) [@mmmichael](https://forum.shopware.com/u/mmmichael)\
**Post date:** [9. Februar 2014 um 11:27 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/11 "2014-02-09T11:27:20Z")

</div>

Hallo Stefan, inwiefern besteht ein Konflikt mit den FrontendCache, wenn man so Templates verändert? Oder wird dabei das Template ausgewertet und fließt mit in den “Cache-Schlüssel” ein? Gruß, Michael

---

<div class="post-metadata">

**Author:** ![geniusgmbhtv](https://avatars.discourse-cdn.com/v4/letter/g/a698b9/32.png) [@geniusgmbhtv](https://forum.shopware.com/u/geniusgmbhtv)\
**Post date:** [25. August 2014 um 15:51 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/12 "2014-08-25T15:51:14Z")

</div>

Hallo, haben das Plugin installiert, auf der Startseite klappt es auch super. Sobald man jedoch einen Link aufruft, springt das ganze Design wieder zurück? Wie kann ich den z.B. die AGB mit einem anderen Template aufrufen?

---

<div class="post-metadata">

**Author:** ![marioford](https://avatars.discourse-cdn.com/v4/letter/m/4491bb/32.png) [@marioford](https://forum.shopware.com/u/marioford)\
**Post date:** [2. Februar 2015 um 10:17 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/13 "2015-02-02T10:17:21Z")

</div>

Hallo, Das Plugin funktioniert super - leider nur im Hauptshop. Was muss ich ändern, damit es auch im Subshop funktioniert. Danke

---

<div class="post-metadata">

**Author:** ![marioford](https://avatars.discourse-cdn.com/v4/letter/m/4491bb/32.png) [@marioford](https://forum.shopware.com/u/marioford)\
**Post date:** [2. Februar 2015 um 11:40 UTC](https://forum.shopware.com/t/templatewechsel-per-domainaufruf/8542/14 "2015-02-02T11:40:59Z")

</div>

Habs hinbekommen. Als Position einfach die 101 nehmen da das Multishop Plugin die 100 verwendet.
