# Sitemap - Startseite

**URL:** <https://forum.shopware.com/t/sitemap-startseite/1116>\
**Category:** Shopware 3.5\
**Tags:** administration\
**Created:** [20. Dezember 2010 um 11:26 UTC](https://forum.shopware.com/t/sitemap-startseite/1116 "2010-12-20T11:26:01Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [20. Dezember 2010 um 11:26 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/1 "2010-12-20T11:26:01Z")

</div>

Hallo, kann ich über das Backend steuern, dass die Startseite auch in der Sitemap auftaucht? Ist ja eig. auch eine Kategorie. Oder muss ich dazu im Template rumpfuschen 😉 Danke

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [20. Dezember 2010 um 15:35 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/2 "2010-12-20T15:35:54Z")

</div>

Niemand eine Idee? Muss ich das jetzt wirklich hardcoded in das Template schreiben?

---

<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:** [21. Dezember 2010 um 07:15 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/3 "2010-12-21T07:15:29Z")

</div>

Du könntest im Controller Sitemap.php das Array $result modifizieren - also bevor dort die Unterkategorien eingefügt werden, einen Datensatz mit den Werten der Startseite eintragen. Also einfach einen Post-Dispatch Event auf den Sitemap Controller setzen, dort mit $args-\>getSubject()-\>View(); den view holen und diesen dann wie folgt modifizieren. ` $view = $args-\>getSubject()-\>View(); $link = $args-\>getSubject()-\>Front()-\>Router()-\>assemble(array( 'sViewport'=\>'listing', 'sCategory'=\>3 )); $view-\>sCategoryTree = array("link"=\>$link,"name"=\>"Startseite","sub"=\>$view-\>sCategoryTree); ` Kannst du einfach in deinem bestehenden Plugin mit integrieren (Danach einmal de- und neu installieren!)

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [21. Dezember 2010 um 08:39 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/4 "2010-12-21T08:39:03Z")

</div>

Hört sich soweit gut an. Habe aber noch etwas Verständisprobleme. \> Also einfach einen Post-Dispatch Event auf den Sitemap Controller setzen Wie mache ich das? Enlight\_Controller\_SITEMAP\_PostDispatch ? [code]\<?php class Shopware\_Plugins\_Frontend\_Test\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap

{

```
public function install()

{		

	$event = $this->createEvent( 'Enlight\_Controller\_Sitemap\_PostDispatch', 'onPostDispatch' ); $this-\>subscribeEvent($event); return true; } public static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $view = $args-\>getSubject()-\>View(); $link = $args-\>getSubject()-\>Front()-\>Router()-\>assemble(array( 'sViewport'=\>'listing', 'sCategory'=\>3 )); $view-\>sCategoryTree = array("link"=\>$link,"name"=\>"Startseite","sub"=\>$view-\>sCategoryTre } }[/code]
```

---

<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:** [21. Dezember 2010 um 08:41 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/5 "2010-12-21T08:41:06Z")

</div>

Enlight\_Controller\_Action\_PostDispatch\_Sitemap

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [21. Dezember 2010 um 08:43 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/6 "2010-12-21T08:43:22Z")

</div>

[quote=„Stefan Hamann“]Enlight\_Controller\_Action\_PostDispatch\_Sitemap[/quote] danke. und der rest meines Codes würde dann stimmen? Woher kommt der Link?

---

<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:** [21. Dezember 2010 um 08:49 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/7 "2010-12-21T08:49:45Z")

</div>

Welcher Link? Der Link wird doch oben mit assemble generiert? Das ist ungetestet, sollte aber funktionieren!

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [21. Dezember 2010 um 09:40 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/8 "2010-12-21T09:40:52Z")

</div>

mhhh, irgendwas passt da nicht. Sobald sich das Plugin unter /Community/Frontend/SitemapStartseite/Bootstrap.php befindet funktioniert das Pluginmodul in den Einstellungen nicht mehr und ich sehe Links im Fenstern keine Auflistung/Ordnerstruktur. Lösche ich das Plugin wieder vom FTP, so sehe ich die Struktur wieder. Kann das sein? Bootstrap.php Inhalt: `<?php class Shopware_Plugins_Frontend_SitemapStartseite_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
	public function install()
	{		
		$event = $this->createEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Sitemap', 'onPostDispatch' ); $this-\>subscribeEvent($event); return true; } public static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $view = $args-\>getSubject()-\>View(); $link = $args-\>getSubject()-\>Front()-\>Router()-\>assemble(array( 'sViewport'=\>'listing', 'sCategory'=\>3 )); $view-\>sCategoryTree = array("link"=\>$link,"name"=\>"Startseite","sub"=\>$view-\>sCategoryTre } } `

---

<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:** [21. Dezember 2010 um 09:45 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/9 "2010-12-21T09:45:23Z")

</div>

Syntax-Fehler: $view-\>sCategoryTree = array(“link”=\>$link,“name”=\>“Startseite”,“sub”=\>$view-\>sCategoryTre Da hast du nicht vollständig kopiert 😉 Richtig wäre: $view-\>sCategoryTree = array(“link”=\>$link,“name”=\>“Startseite”,“sub”=\>$view-\>sCategoryTree);

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [21. Dezember 2010 um 10:10 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/10 "2010-12-21T10:10:04Z")

</div>

okay danke. Jetzt spinnt das Plugin-Modul nicht mehr 😉 Leider funktioniert das Plugin aber nicht. Ich habe nun “Startseite” mal in “Über mich” umbenannt, da die erste Seite so heißt. Aber auch ohne Erfolg. Hast du noch eine Idee? [code]\<?php class Shopware\_Plugins\_Frontend\_SitemapStartseite\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap

{

```
public function install()

{		

	$event = $this->createEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Sitemap', 'onPostDispatch' ); $this-\>subscribeEvent($event); return true; } public static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $view = $args-\>getSubject()-\>View(); $link = $args-\>getSubject()-\>Front()-\>Router()-\>assemble(array( 'sViewport'=\>'listing', 'sCategory'=\>3 )); $view-\>sCategoryTree = array("link"=\>$link,"name"=\>"Über mich","sub"=\>$view-\>sCategoryTree); } } [/code]
```

---

<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:** [21. Dezember 2010 um 10:59 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/11 "2010-12-21T10:59:08Z")

</div>

Okay, so funktioniert es - `<?php class Shopware_Plugins_Frontend_SitemapStartseite_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
   public function install()
   {      
      $event = $this->createEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Sitemap', 'onPostDispatch' ); $this-\>subscribeEvent($event); return true; } public static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); if(!$request-\>isDispatched()||$response-\>isException()||$request-\>getModuleName()!='frontend'){ return; } $link = $args-\>getSubject()-\>Front()-\>Router()-\>assemble(array( 'sViewport'=\>'index' )); $sub = $view-\>sCategoryTree; $category = array\_merge(array(array("link"=\>$link,"name"=\>"Startseite","sub"=\>array())),$sub); $view-\>sCategoryTree = $category; } } `

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [21. Dezember 2010 um 11:10 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/12 "2010-12-21T11:10:10Z")

</div>

Danke, nun funktioniert es wunderbar. Nun noch ein theoretischer Wunsch. Jetzt wird die Startseite verlinkt mit dem Wort, welches im Code hinterlegt ist. Okay… Ich könnte bei den Plugin-Einstellungen ein Feld machen, wo man den Namen eingibt. Das wäre auch okay… Aber am optimalsten sollte der Name aus der Start-Kategorie geholt werden. Das sollte doch auch möglich sein, oder?

---

<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:** [21. Dezember 2010 um 13:35 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/13 "2010-12-21T13:35:22Z")

</div>

```auto
 $name = Shopware()-\>Db()-\>fetchOne("SELECT description FROM s\_categories WHERE id = 3"); $category = array\_merge(array(array("link"=\>$link,"name"=\>$name,"sub"=\>array())),$sub); 
```

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [21. Dezember 2010 um 14:00 UTC](https://forum.shopware.com/t/sitemap-startseite/1116/14 "2010-12-21T14:00:14Z")

</div>

Super, funktioniert Bestens. Falls jmd das Plugin benötigt =\> [SitemapStartseite V1](http://www.ottscho-it-service.de/downloads/shopware-plugin-sitemapstartseite-v1.html?c=2170)
