# Auf installierte Plugins prüfen.

**URL:** https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088
**Category:** Programmierung
**Created:** [7. März 2016 um 11:21 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088 "2016-03-07T11:21:03Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![juergen-sfx](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/juergen-sfx/32/17270_2.png) [@juergen-sfx](https://forum.shopware.com/u/juergen-sfx)
#### Post date: [7. März 2016 um 11:21 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/1 "2016-03-07T11:21:03Z")

</div>

Hallo.

Ich möchte in meiner bootstrap-\>install() Funktion prüfen ob bestimmte andere Plugins vorhanden sind. Optimal wäre, auch prüfen zu können ob diese nicht nur installiert, sondern auch aktiviert sind.

Gibt es hierfür fertige Funktionen? Wie macht man sowas am besten?

&nbsp;

---

<div class="post-metadata">

### Author: ![Heiner\_Lohaus](https://avatars.discourse-cdn.com/v4/letter/h/b5a626/32.png) [@Heiner\_Lohaus](https://forum.shopware.com/u/Heiner_Lohaus)
#### Post date: [7. März 2016 um 11:35 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/2 "2016-03-07T11:35:45Z")

</div>

Hallo Jürgen,

ja dafür gibt es die Methode: assertRequiredPluginsPresent in der Boostrap.

> <https://github.com/shopware/shopware/blob/5.1/engine/Shopware/Components/Plugin/Bootstrap.php#L721>

Alternativ könntest du es also auch über ein SQL-Query oder Doctrine erfahren.

Gruß Heiner

---

<div class="post-metadata">

### Author: ![JensBrunken](https://avatars.discourse-cdn.com/v4/letter/j/90ced4/32.png) [@JensBrunken](https://forum.shopware.com/u/JensBrunken)
#### Post date: [7. März 2016 um 11:44 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/3 "2016-03-07T11:44:30Z")

</div>

du könntest per Doctrine das Repo, oder über den shopware\_plugininstaller nutzen.&nbsp;

```
/** @var Manager $pluginManager */
$pluginManager = $this->container->get('shopware_plugininstaller.plugin_manager');
/** name des Plugins */
$pluginName = "PluginName";
/** plugin suchen */
$plugin = $pluginManager->getPluginByName($pluginName);
/** abfragen ob plugin installiert ist */
if ($plugin->getInstalled()) {
    return 1;
}

/** @var ModelManager $em */
$pluginName = "pluginName";
$em = $this->container->get('models');
$repository = $em->getRepository('Shopware\Models\Plugin\Plugin');
$builder = $repository->createQueryBuilder('plugin');
$builder->andWhere('plugin.active = true');
$builder->andWhere('plugin.name :pl)');
$builder->setParameter('pl', $pluginName);
$plugins = $builder->getQuery()->execute();

```

Achtung nicht getest ,-)&nbsp;

---

<div class="post-metadata">

### Author: ![juergen-sfx](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/juergen-sfx/32/17270_2.png) [@juergen-sfx](https://forum.shopware.com/u/juergen-sfx)
#### Post date: [7. März 2016 um 11:47 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/4 "2016-03-07T11:47:20Z")

</div>

Danke an @JensBrunken‍ und [@Heiner Lohaus]([http://forum.shopware.com/profile/63/Heiner](http://forum.shopware.com/profile/63/Heiner) Lohaus “Heiner Lohaus”)‍. Ich denke die&nbsp;assertRequiredPluginsPresent() ist genau was ich gesucht habe.

---

<div class="post-metadata">

### Author: ![JensBrunken](https://avatars.discourse-cdn.com/v4/letter/j/90ced4/32.png) [@JensBrunken](https://forum.shopware.com/u/JensBrunken)
#### Post date: [7. März 2016 um 11:50 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/5 "2016-03-07T11:50:03Z")

</div>

aha&nbsp;assertRequiredPluginsPresent kannte ich noch nicht… Wieder was dazugelernt ;-)&nbsp;

---

<div class="post-metadata">

### Author: ![juergen-sfx](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/juergen-sfx/32/17270_2.png) [@juergen-sfx](https://forum.shopware.com/u/juergen-sfx)
#### Post date: [7. März 2016 um 15:24 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/6 "2016-03-07T15:24:20Z")

</div>

So jetzte habe ich doch noch eine Frage.

@JensBrunken‍ Dein Code funktioniert wenn man den PluginManager folgendermaßen lädt:

```
$pluginManager = Shopware()->Container()->get('shopware_plugininstaller.plugin_manager');

```

Nun stehe ich vor dem Problem, dass ich wissen möchte unter welchem Pfad das Plugin installiert ist. Ich hab mir die Objekte im Debugger angesehen aber finde da nichts.

Wie kann ich den Pfad herausfinden unter dem ein anderes Plugin installiert ist?

---

<div class="post-metadata">

### Author: ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)
#### Post date: [7. März 2016 um 16:18 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/7 "2016-03-07T16:18:03Z")

</div>

Hi,

es gibt auch eine Methode „\Shopware\Bundle\PluginInstallerBundle\Service\InstallerService::getPluginPath“ im selben Service - die hilft dir vermutlich schon.

Daniel

---

<div class="post-metadata">

### Author: ![JensBrunken](https://avatars.discourse-cdn.com/v4/letter/j/90ced4/32.png) [@JensBrunken](https://forum.shopware.com/u/JensBrunken)
#### Post date: [13. März 2016 um 12:35 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/8 "2016-03-13T12:35:38Z")

</div>

$plugin-\>getPluginPath(); sollte eigendlich gehen&nbsp;

&nbsp;

hier findest du die Methoden,

[shopware/InstallerService.php at 5.1 · shopware/shopware · GitHub](https://github.com/shopware/shopware/blob/5.1/engine/Shopware/Bundle/PluginInstallerBundle/Service/InstallerService.php)&nbsp;

---

<div class="post-metadata">

### Author: ![juergen-sfx](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/juergen-sfx/32/17270_2.png) [@juergen-sfx](https://forum.shopware.com/u/juergen-sfx)
#### Post date: [14. März 2016 um 07:40 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/9 "2016-03-14T07:40:57Z")

</div>

Hallo @JensBrunken‍. Genau, das hat Daniel Nögel ja auch schon geschrieben.

---

<div class="post-metadata">

### Author: ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)
#### Post date: [27. April 2016 um 15:00 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/10 "2016-04-27T15:00:28Z")

</div>

Hallo,

gibt es eine Möglichkeit für das **Frontend** mit Hilfe der Funktion **assertRequiredPluginsPresent** () jeweils nur eine bestimmte Templatedatei einbinden zu lassen? Oder muss ich da zwangsweise **$view-\>extendsTemplate()** nutzen (was man ja ansich im Shopware 5 nicht mehr nutzen sollte)?

Es geht darum, das man beim Vorhandensein eines entsprechenden Plugins einen anderen Block nutzen muss, als wenn das Plugin nicht vorhanden ist. Leider ist es auch schon der “oberste” Block, somit kann man es da auch nicht vorher über ein IF-THEN-ELSE und eine entsprechende Parameterübergabe lösen.

Hat jemand eine Idee, vlt. [@Daniel Nögel]([http://forum.shopware.com/profile/4010/Daniel](http://forum.shopware.com/profile/4010/Daniel) Nögel “Daniel Nögel”)‍ ?

Beste Grüße

Sebastian

---

<div class="post-metadata">

### Author: ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)
#### Post date: [27. April 2016 um 15:08 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/11 "2016-04-27T15:08:51Z")

</div>

Evtl. einen zweiten Template Ordner hinzufügen via addTemplateDir

---

<div class="post-metadata">

### Author: ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)
#### Post date: [27. April 2016 um 16:04 UTC](https://forum.shopware.com/t/auf-installierte-plugins-prufen/35088/12 "2016-04-27T16:04:29Z")

</div>

> [@Shyim schrieb:](https://forum.shopware.com/profile/20792/Shyim "Shyim")
> 
> Evtl. einen zweiten Template Ordner hinzufügen via addTemplateDir

Hallo,

auf die Idee bin ich noch gar nicht gekommen - verursacht zwar auch zwei Ordner, aber ist aus meiner Sicht wirklich auch die sauberste Lösung. Danke ![Grin](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/70033cde8e8ff79cfa538293ae71318d6f788423.png "Grin"). Also Problem gelöst .

Beste Grüße

Sebastian
