# Eigenes Plugin - Datenbank Parameter in die Bootstrap

**URL:** <https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416>\
**Category:** Shopware 3.5\
**Tags:** installation--gettin\
**Created:** [5. September 2012 um 10:41 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416 "2012-09-05T10:41:55Z")\
**Posts on this page:** 16\
**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:** [5. September 2012 um 10:41 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/1 "2012-09-05T10:41:55Z")

</div>

Hallo, wie bekomme ich in die Bootstrap meines Plugins die Datenbank Connection? Früher konnte man die Datei include("…/…/…/backend/php/check.php"); einbinden. Diese gibt es nun aber nicht mehr. Ich benötige in einer externen PHP Datei, welche ich per Iframe einbinde die Zugangsdaten. Wie mache ich das?

---

<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:** [5. September 2012 um 10:47 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/2 "2012-09-05T10:47:25Z")

</div>

Hey, das solltest du so am besten garnicht mehr machen. Also statt einer externen Datei, besser eine Controller-Action die du in das iFrame lädst. Alternativ kannst du in einer Controller-Action auch eine Datei includen: Beispiel: [code]\<?php class Shopware\_Controllers\_Frontend\_IncludeTest extends Enlight\_Controller\_Action  
{

```
public function includeFileTestAction()
{
   $this->View()-\>setTemplate(); // Disable output define("\_auth",true); include(dirname(\_\_PATH\_\_)."/test.php"); } } // test.php if (!defined("\_auth")) exit; $a = Shopware()-\>Db()-\>fetchOne("SELECT 1"); die($a); [/code]
```

---

<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:** [5. September 2012 um 10:55 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/3 "2012-09-05T10:55:26Z")

</div>

Ja, ich weiß. Das st nur verübergehend. Mir fehlt im Moment die Zeit. Ich will eig. das komplette Plugin mit ExtJS Elementen machen. Aber vorest muss ich die bestehende alte Datei includen. Gibt es nicht noch eine andere Möglichkeit?

---

<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:** [5. September 2012 um 10:58 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/4 "2012-09-05T10:58:14Z")

</div>

Über den o.g. Weg kannst du ja die Datei direkt includen ? Du musst nur das !defined("\_auth")) exit; am Anfang der Datei hinzufügen. Das verhindert, dass die Datei direkt aufrufbar ist. Statt dem Datei-Pfad inkludierst du dann die Controller-Action als iFrame-Source. Also

---

<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:** [5. September 2012 um 12:32 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/5 "2012-09-05T12:32:39Z")

</div>

Hallo Stefan, soweit würde es klappen. Aber ich habe in meiner PHP ja HTML Text, welcher ausgeben werden soll: [code]

&transfer=1"\> " /\> Hinweis Hier können Sie Materialien und die dazugehörigen m² Staffelung mit Preisen definieren. 

```
<fieldset>
	<legend>

```

Material hinzufügen

|   
Pos:" /\> |   
Name:" /\> |   
Beschreibung:" /\> |   
min. Länge:" /\> |   
min. Breite:" /\> |   
max. Länge:" /\> |   
max. Breite:" /\> | 
Hinzufügen/ändern
 |

  
[/code] Mit dem kann ich ja in dem Controller nichs anfangen. Sprich ich müsste alles komplett neu Aufbauen mit Template Dateien etc. Da spare ich mir ja keine Zeit ;) Dann kann ich es gleich "richtig" mit reinen ExtJS Komponeten machen. Hast du noch eine Idee? Kann ich den Die DB Daten irgendwie aus einer vorhanden Datei rausziehen?

---

<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:** [5. September 2012 um 22:50 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/6 "2012-09-05T22:50:15Z")

</div>

Gibts noch einen anderen Weg?

---

<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:** [11. September 2012 um 08:23 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/7 "2012-09-11T08:23:54Z")

</div>

Stefan, ich muss dich hier noch mal nerven. Kann ich die DB Daten nicht einfach noch aus irgendeiner Datei ziehen? Ich brauch dies nur vorübergehend, bis dass Plugin komplett mit ExtJS umgesetzt wurde.

---

<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 08:27 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/8 "2012-09-11T08:27:02Z")

</div>

[quote]Ich habe in meiner PHP ja HTML Text, welcher ausgeben werden soll: Mit dem kann ich ja in dem Controller nichs anfangen. Sprich ich müsste alles komplett neu Aufbauen mit Template Dateien etc.[/quote] Nein, das ist nicht richtig. Dadurch, das du in der Controller-Action „$this-\>View()-\>setTemplate();“ ausführst, wird die Shopware-Template-Engine deaktiviert und der Inhalt der inkludierten Dateien wird direkt ausgegeben. Also im Prinzip müsste das so funktionieren und das ist in jedem Fall besser, als irgendetwas separat an Shopware vorbei zu scripten.

---

<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:** [11. September 2012 um 08:30 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/9 "2012-09-11T08:30:07Z")

</div>

Ok, dann werde ich das nachher noch mal versuchen. Es super wenn es so klappt. Danke Dir.

---

<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:** [11. September 2012 um 09:12 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/10 "2012-09-11T09:12:15Z")

</div>

Hi Stefan, ich habe es nun noch mal mit dem Controller versucht: [code]\<?php class Shopware\_Controllers\_Frontend\_OttAreaCalc extends Enlight\_Controller\_Action  
{

```
public function materialAction()
{
   $this->View()-\>setTemplate(); // Disable output define("\_auth",true); include("/engine/Shopware/Plugins/Community/Frontend/OttAreaCalculator/Views/backend/article/view/detail/Material.php"); echo 'material'; } public function verarbeitungAction() { $this-\>View()-\>setTemplate(); // Disable output define("\_auth",true); include(dirname(\_\_PATH\_\_)."/Views/backend/article/view/detail/Verarbeitung.php"); echo 'verarbeitung'; } } if (!defined("\_auth")) exit; [/code] Leider wird keinerlei HTML Code aus der Material.php angezeigt. Ich bekomme im Iframe nur die echo Ausgabe. In der PHP Datei ist reiner HTML Code ohne Echo mit PHP Teilen. z.B. So: [code]

```

 \<?php while ($Mat=mysql\_fetch\_array($getMat)) { ?\>

```
<tr style="background: url(../../../backend/img/default/window/fieldset_table_bg.gif) repeat-x; height:22px;border-bottom: 1px solid #a0a0a0;">
 <td width="5%" style="padding-left:5px"><?php echo $Mat["position"] ?></td>
 <td width="10%" nowrap style="padding-left:5px"><?php echo $Mat["name"] ?></td>
 <td width="55%" style="padding-left:5px"><?php echo $Mat["description"] ?></td>
 <td width="10%" style="padding-left:5px">

```

\<?php echo $Mat["minlength"] ?\>x\<?php echo $Mat["minwidth"] ?\> \<?php } 

?\>

| Position | Name | Beschreibung | min Größe | max Größe | Aktionen |
| \<?php echo $Mat["maxlength"] ?\>x\<?php echo $Mat["maxwidth"] ?\> | " action="\<?php echo $\_SERVER["PHP\_SELF"]."?editID=".$Mat["id"]."&editPosition=".$Mat["position"]."&editName=".$Mat["name"]."&editDescription=".$Mat["description"]."&editMinL=".$Mat["minlength"]."&editMinW=".$Mat["minwidth"]."&editMaxL=".$Mat["maxlength"]."&editMaxW=".$Mat["maxwidth"]."&getArticleID=".$\_GET['getArticleID']?\>"\> ').submit();"\>

```
 <form method="POST" id="Matdel&lt;?php echo $Mat[">" action="<?php echo $_SERVER["PHP_SELF"]."?getArticleID=".$_GET['getArticleID']."&material2=".$Mat["name"]?>&amp;transfer=4"&gt;
 <a class="ico delete" style="cursor:pointer" onclick="document.getElementById('Matdel&lt;?php echo $Mat[" id>').submit();"&gt;</a>
 </form>
 </td>

```

 |

\<?php } 

?\>[/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:** [11. September 2012 um 09:28 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/11 "2012-09-11T09:28:40Z")

</div>

Also das code exit;[/code] muss ja an den Anfang der einzubindenen Datei und nicht an das Ende des Controllers. Also z.B zu Anfang der “Material.php”:\<?php (!defined("\_auth")) exit;  
?\>Ansonsten kann es sein, dass das Output-Buffering dir dazwischen funkt. Du kannst mal probieren nach dem Include ` ob\_end\_flush(); ` auszuführen.

---

<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:** [11. September 2012 um 09:42 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/12 "2012-09-11T09:42:27Z")

</div>

ich habe ob\_end\_flush(); nun eingebunden. ` public function materialAction() { $this-\>View()-\>setTemplate(); // Disable output define("\_auth",true); include(dirname(\_\_PATH\_\_)."/Views/backend/article/view/detail/Material.php"); ob\_end\_flush(); echo 'material'; } ` Ausgabe =\> material Fatal error: Uncaught exception ‘Zend\_Controller\_Response\_Exception’ with message ‘Cannot send headers; headers already sent in /kunden/117539\_78141/webseiten/shopwareV4/engine/Shopware/Plugins/Community/Frontend/OttAreaCalculator/OttAreaCalcBackend.php, line 10’ in /kunden/117539\_78141/webseiten/shopwareV4/engine/Library/Zend/Controller/Response/Abstract.php:323 Stack trace: #0 /kunden/117539\_78141/webseiten/shopwareV4/engine/Library/Zend/Controller/Response/Abstract.php(341): Zend\_Controller\_Response\_Abstract-\>canSendHeaders(true) #1 /kunden/117539\_78141/webseiten/shopwareV4/engine/Library/Enlight/Controller/Response/ResponseHttp.php(110): Zend\_Controller\_Response\_Abstract-\>sendHeaders() #2 /kunden/117539\_78141/webseiten/shopwareV4/engine/Library/Zend/Controller/Response/Abstract.php(768): Enlight\_Controller\_Response\_ResponseHttp-\>sendHeaders() #3 /kunden/117539\_78141/webseiten/shopwareV4/engine/Library/Enlight/Controller/Front.php(268): Zend\_Controller\_Response\_Abstract-\>sendResponse() #4 /kunden/117539\_78141/webseiten in /kunden/117539\_78141/webseiten/shopwareV4/engine/Library/Zend/Controller/Response/Abstract.php on line 323

---

<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 09:45 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/13 "2012-09-11T09:45:26Z")

</div>

Was ist denn Line 10 in deinem Controller? Ggf. funktioniert die Ausgabe der Datei nun auch direkt - du solltest das ob\_end\_flush ja nur einbauen, wenn es nicht klappt 😉

---

<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:** [11. September 2012 um 09:57 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/14 "2012-09-11T09:57:30Z")

</div>

Also Line 10 ist der Code: ob\_end\_flush(); Mache ich diese Zeile raus, so erscheint nur wieder die ECHO Ausgabe ‚Material‘ welche ich im Controller definiert habe. Aber es erscheint keinerlei Code aus der Material.php. Edit. Ich habe nun mal [http://www.google.de](http://www.google.de) eingebunden, das geht. Evtl. habe ich Probleme mit dem Pfad zur Datei.

---

<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:** [11. September 2012 um 10:08 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/15 "2012-09-11T10:08:26Z")

</div>

mhhh, ich verstehe es nicht. Wenn ich [google.de](http://google.de) einbinde, dann wird diese Seite eingebunden. Wenn ich den Controller manuell aufrufe und auch im Iframe vom extJS. Binde ich aber wieder meine PHP ein (egal ob absoluter oder relativer Pfad, oder auch direket über http und voller Domain) so klappt es nicht. Ich habe zum Test dies (!defined("\_auth")) exit; noch mal raus genommen. Ruf ich die PHP Datei nun direkt auf, so erscheint de Code, aber einige Fehlermeldungen, da ich ja keine DB Auhtentifizierung habe. Rufe ich den Conrtoller auf oder über das Backend das Iframe so habe ich wiederum nur die Echo Ausgabe ‚material‘

---

<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:** [11. September 2012 um 10:24 UTC](https://forum.shopware.com/t/eigenes-plugin-datenbank-parameter-in-die-bootstrap/8416/16 "2012-09-11T10:24:59Z")

</div>

okay, habe es gelöst. vielen vielen dank.
