# Plugin Bootstrap.php: Eigene LESS / JS Dateien hinzufügen

**URL:** https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092
**Category:** Programmierung
**Created:** [4. Oktober 2015 um 22:56 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092 "2015-10-04T22:56:00Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![RainerF](https://avatars.discourse-cdn.com/v4/letter/r/77aa72/32.png) [@RainerF](https://forum.shopware.com/u/RainerF)
#### Post date: [4. Oktober 2015 um 22:56 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/1 "2015-10-04T22:56:00Z")

</div>

Hallo! Ich füge mit Hilfe von ` $this-\>subscribeEvent( 'Theme\_Compiler\_Collect\_Plugin\_Less', 'addLessFiles' ); $this-\>subscribeEvent( 'Theme\_Compiler\_Collect\_Plugin\_Javascript', 'addJsFiles' ); public function addLessFiles(Enlight\_Event\_EventArgs $args) { $less = new \Shopware\Components\Theme\LessDefinition( array(), array( \_\_DIR\_\_ . '/Views/frontend/plugins/plugin\_name/\_public/src/less/all.less' ), \_\_DIR\_\_ ); return new Doctrine\Common\Collections\ArrayCollection(array($less)); } public function addJsFiles(Enlight\_Event\_EventArgs $args) { $jsFiles = array(\_\_DIR\_\_ . '/Views/frontend/plugins/plugin\_name/\_public/src/js/script.js'); return new Doctrine\Common\Collections\ArrayCollection($jsFiles); } ` erfolgreich LESS/JS-Dateien innerhalb meines Plugins hinzu. Nun möchte ich jedoch \_nur\_ auf bestimmten Shopseiten (beispielsweise auf Shopseiten mit einer bestimmten ID oder Template-Variablen) die LESS/JS-Dateien hinzufügen. Wie erledige ich das am besten? Eine View o.Ä. kann man ja über die $args (mit Hilfe von $view = $args-\>getSubject()-\>view()😉 nicht bekommen. Vielen Dank! R

---

<div class="post-metadata">

### Author: ![EikeBrandtWarneke](https://avatars.discourse-cdn.com/v4/letter/e/cdc98d/32.png) [@EikeBrandtWarneke](https://forum.shopware.com/u/EikeBrandtWarneke)
#### Post date: [5. Oktober 2015 um 00:28 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/2 "2015-10-05T00:28:13Z")

</div>

Es wird pro Shop jeweils -eine- .css und eine .js generiert. Hier wirst du mit Selektoren arbeiten müssen. Viele Grüße

---

<div class="post-metadata">

### Author: ![RainerF](https://avatars.discourse-cdn.com/v4/letter/r/77aa72/32.png) [@RainerF](https://forum.shopware.com/u/RainerF)
#### Post date: [5. Oktober 2015 um 09:03 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/3 "2015-10-05T09:03:14Z")

</div>

Das ist eine klare Antwort. Danke, das hat mir sehr weitergeholfen!

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [6. Oktober 2015 um 21:24 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/4 "2015-10-06T21:24:31Z")

</div>

Hallo `\_\_DIR\_\_ . '/Views/frontend/plugins/plugin\_name/\_public/src/less/all.less'` wo genau muss man die all.less reinpacken? erstelle ich diese Ordnerstruktur in meinem plugin\_name/Views-Ornder?

---

<div class="post-metadata">

### Author: ![RainerF](https://avatars.discourse-cdn.com/v4/letter/r/77aa72/32.png) [@RainerF](https://forum.shopware.com/u/RainerF)
#### Post date: [6. Oktober 2015 um 21:32 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/5 "2015-10-06T21:32:14Z")

</div>

Ganz genau!

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [6. Oktober 2015 um 21:38 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/6 "2015-10-06T21:38:51Z")

</div>

Also ich habe folgende Ordnerstruktur shopware\engine\Shopware\Plugins\Community\Backend\MEINPLUGIN\Views\frontend\plugins\MEINPLUGIN\_public\src\less\all.less aber die in der all.less definierten Styles sind einfach nicht da? ☹

---

<div class="post-metadata">

### Author: ![RainerF](https://avatars.discourse-cdn.com/v4/letter/r/77aa72/32.png) [@RainerF](https://forum.shopware.com/u/RainerF)
#### Post date: [6. Oktober 2015 um 22:22 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/7 "2015-10-06T22:22:46Z")

</div>

Die less sieht z.B. so aus: `@import "\_modules/style";` Dann legst Du im Ordner “less” einen Unterordner “\_modules” an, in der Du die Datei “style.less” packst: `body { ... }`

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [6. Oktober 2015 um 22:30 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/8 "2015-10-06T22:30:31Z")

</div>

Habe ich gemacht, leider ohne Auswirkung 😕

---

<div class="post-metadata">

### Author: ![RainerF](https://avatars.discourse-cdn.com/v4/letter/r/77aa72/32.png) [@RainerF](https://forum.shopware.com/u/RainerF)
#### Post date: [6. Oktober 2015 um 22:34 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/9 "2015-10-06T22:34:49Z")

</div>

Mein Pfad sieht so aus: \engine\Shopware\Plugins\Local\Frontend\plugin\_name\Views\frontend\plugins\plugin\_name\_public\src\less\all.less Eventuell hat es was mit Local\Frontend zu tun?

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [6. Oktober 2015 um 22:40 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/10 "2015-10-06T22:40:47Z")

</div>

also wenn ich der Beispiel-Bootstrap folge, landet mein Plugin automatisch in [i]engine\Shopware\Plugins\Community[/i] wie bewerkstellige ich es, daß es im [i]engine\Shopware\Plugins\Local[/i] landet?

---

<div class="post-metadata">

### Author: ![RainerF](https://avatars.discourse-cdn.com/v4/letter/r/77aa72/32.png) [@RainerF](https://forum.shopware.com/u/RainerF)
#### Post date: [6. Oktober 2015 um 22:54 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/11 "2015-10-06T22:54:14Z")

</div>

Hmm, ich lege das Plugin einfach hinein und installiere es danach über das Backend.

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [7. Oktober 2015 um 13:20 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/12 "2015-10-07T13:20:27Z")

</div>

So, meine less-Datei wurde zwar eingebunden, jedoch muss das genze noch kompiliert werden. Wie triggert man denn den Compiler an?

---

<div class="post-metadata">

### Author: ![RainerF](https://avatars.discourse-cdn.com/v4/letter/r/77aa72/32.png) [@RainerF](https://forum.shopware.com/u/RainerF)
#### Post date: [7. Oktober 2015 um 13:47 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/13 "2015-10-07T13:47:20Z")

</div>

Im Backend: Einstellungen \> Caches / Performance \> Cache \> Alle auswählen \> Leeren \> Themes kompilieren.

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [7. Oktober 2015 um 15:44 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/14 "2015-10-07T15:44:07Z")

</div>

das müsste ja über das Plugin irgendwie angetriggert werden, d.h. wenn ich das Plugin installiere, collected der meine less-datei und triggert das kompilieren an, damit das auch im frontend sichtbar ist.

---

<div class="post-metadata">

### Author: ![RainerF](https://avatars.discourse-cdn.com/v4/letter/r/77aa72/32.png) [@RainerF](https://forum.shopware.com/u/RainerF)
#### Post date: [7. Oktober 2015 um 16:01 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/15 "2015-10-07T16:01:22Z")

</div>

```auto
 public function install() { $this-\>registerEvents(); return array('success' =\> true, 'invalidateCache' =\> array('frontend')); } 
```

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [7. Oktober 2015 um 16:27 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/16 "2015-10-07T16:27:31Z")

</div>

Danke für die fixe Antwort, jedoch löscht er dabei nur den Cache.

---

<div class="post-metadata">

### Author: ![EikeBrandtWarneke](https://avatars.discourse-cdn.com/v4/letter/e/cdc98d/32.png) [@EikeBrandtWarneke](https://forum.shopware.com/u/EikeBrandtWarneke)
#### Post date: [7. Oktober 2015 um 16:41 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/17 "2015-10-07T16:41:00Z")

</div>

Du suchst ‘invalidateCache’ =\> array(‘theme’) Viele Grüße

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [8. Oktober 2015 um 08:50 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/18 "2015-10-08T08:50:08Z")

</div>

Sauber 🙂 genau das habe ich gesucht :thumbup:

---

<div class="post-metadata">

### Author: ![Flaki](https://avatars.discourse-cdn.com/v4/letter/f/3e96dc/32.png) [@Flaki](https://forum.shopware.com/u/Flaki)
#### Post date: [8. Oktober 2015 um 14:37 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/19 "2015-10-08T14:37:27Z")

</div>

Habe noch ein mir sehr rätselhaftes Verhalten in SW. Der Tip mit `'invalidateCache' =\> array('theme')` ist richtig, denn jetzt fragt der PluginManager beim installieren des Plugins, ob er das Theme kompilieren soll und leert auch den Cache. Doch weiterhin ohne Auswirkung auf das Frontend 😢 Wenn ich im ThemeManager-\>Einstellungen das Compiler-Caching deaktiviere, werden die Styles korrekt übernommen bzw. dargestellt. Woran kann das liegen? Habe ich hier etwas gundlegendes übersehen?

---

<div class="post-metadata">

### Author: ![KMUdo](https://avatars.discourse-cdn.com/v4/letter/k/f4b2a3/32.png) [@KMUdo](https://forum.shopware.com/u/KMUdo)
#### Post date: [6. April 2016 um 09:56 UTC](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092/20 "2016-04-06T09:56:15Z")

</div>

> [@Flaki schrieb:](https://forum.shopware.com/profile/22007/Flaki "Flaki")
> 
> Habe noch ein mir sehr rätselhaftes Verhalten in SW.  
> Der Tip mit
> 
> ‚invalidateCache‘ =\> array(‚theme‘)
> 
> ist richtig, denn jetzt fragt der PluginManager beim installieren des Plugins, ob er das Theme kompilieren soll und leert auch den Cache. Doch weiterhin ohne Auswirkung auf das Frontend ![:cry:](https://dub1.discourse-cdn.com/flex013/resources/emoji/cry.png ":cry:")
> 
> Wenn ich im ThemeManager-\>Einstellungen das Compiler-Caching deaktiviere, werden die Styles korrekt übernommen bzw. dargestellt. Woran kann das liegen? Habe ich hier etwas gundlegendes übersehen?

Ich stehe momentan gerade beim selben Problem. Hat jeman eine Lösung dazu?

Als Info, falls jemand fragt.  
Zusätzlich habe ich bei der Less-Angabe meine Konfigurationen mitgegeben, welches hier im ersten array ist.

```
public function addLessFiles(Enlight_Event_EventArgs $args) {
   $less = new \Shopware\Components\Theme\LessDefinition(
      array('meinLessElement' => $this->Config()->get('meinFormElement')),
      array(
         __DIR__. '/Views/frontend/plugins/plugin_name/_public/src/less/all.less'
      ),
      __DIR__
   );
   return new Doctrine\Common\Collections\ArrayCollection(array($less));
}

```

Diese kann in meiner Less-Datei via @meinLessElement abrufen.

[Nächste Seite](https://forum.shopware.com/t/plugin-bootstrap-php-eigene-less-js-dateien-hinzufugen/31092.md?page=2)
