shopnoob85shopnoob85 MemberComments: 7 Received thanks: 0 Member since: August 2019

Aktuell versuche ich in der Install-Funktion meines Plugins eine config.xml generieren zu lassen, allerdings scheitere ich an der Schreibberechtigung im Resource Ordner. 

Sobald ich via chmod dem Resource Ordner alle Berechtigungen zukommen lassen, kann ich die config.xml schreiben. 

Allerdings wäre dies für unsere Kunden unvorteilhaft, habt Ihr eine Idee wie ich die config.xml per PHP im richtigen Ordner schreiben kann.

public function install()
{
    $this->generateCustomConfig();
}

public function generateCustomConfig()
{
    $xmlConfigWriter = new \XMLWriter();

    chmod(__DIR__ . '/Resources/', 0777);

    $xmlString = '<?xml version="1.0" encoding="utf-8"?>
                    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
                            xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/shopware/5.3/engine/Shopware/Components/Plugin/schema/config.xsd">;
                            <elements>
                                <element type="mediaselection">
                                    <name>pathToEmos</name>
                                    <label>Analytics JS Library</label>
                                    <description>Hier können Sie die Analytics JS Library hinzufügen.</description>
                                </element>';

    $xmlString .= '         </elements>
                    </config>';

    $dom = new DOMDocument;
    $dom->preserveWhiteSpace = FALSE;
    $dom->loadXML($xmlString);
    
    $dom->save(__DIR__ . '/Resources/config.xml');

}

 

1 Answer

  • experthingexperthing MemberComments: 3 Received thanks: 1 Member since: July 2019

    @shopnoob85‍ Falls du noch auf der Suche bist, hier ist die passende Lösung für dich.

    Lege zunächst deine XML File über den Shopware eigenen File Service an. Du findest deine Datei dann im Root/files/your_dir

    Das geht mit: 

    $fileService = $this->container->get("shopware.filesystem.private");

    Erstelle dann einen ordner im im Shopware Shop/files Verzeichnis:

    $fileSystem->createDir("dir_name");

    Erstelle dann deinen XML in dem Ordner:

    $fileSystem->write("dir_name/config.xml", $yourXmlFileContent);

    Das wars! 

    VG, dein Experthing Team

    Quote
    Accepted Answer
    Thanked by 1shopnoob85
  • Accepted Answer

Answers

  • R4MR4M MemberComments: 2544 Received thanks: 401 Member since: April 2014

    Hm, die Frage habe ich noch nie hier im Forum gelesen. Die config.xml wird eigentlich manuell angelegt.

  • shopnoob85shopnoob85 MemberComments: 7 Received thanks: 0 Member since: August 2019

    Ich habe das Problem, dass ich n-mal Select Felder mit den Produkteigenschaften benötige. Da ich allerdings nicht wissen kann, wieviele Produkteigenschaften ein Shop bestizt kann ich diese allerdings nicht manuell anlegen. Im Plugin, sollte eigentlich nur die Reihenfolge der Produkteigenschaften bestimmt werden können. 

  • R4MR4M MemberComments: 2544 Received thanks: 401 edited September 2019 Member since: April 2014

    Ah verstehe. Da gibt es bestimmt eine Lösung (unter Umständen kann man auch dynamische Bereiche einbinden). Aber ob das mit den Eigenschaften auch geht bin ich mir zur Stunde nicht ganz sicher.

  • shopnoob85shopnoob85 MemberComments: 7 Received thanks: 0 Member since: August 2019

    Hat mir den niemand eine Idee, wie ich den Fall umsetzten kann?

  • experthingexperthing MemberComments: 3 Received thanks: 1 Member since: July 2019

    @shopnoob85‍ Falls du noch auf der Suche bist, hier ist die passende Lösung für dich.

    Lege zunächst deine XML File über den Shopware eigenen File Service an. Du findest deine Datei dann im Root/files/your_dir

    Das geht mit: 

    $fileService = $this->container->get("shopware.filesystem.private");

    Erstelle dann einen ordner im im Shopware Shop/files Verzeichnis:

    $fileSystem->createDir("dir_name");

    Erstelle dann deinen XML in dem Ordner:

    $fileSystem->write("dir_name/config.xml", $yourXmlFileContent);

    Das wars! 

    VG, dein Experthing Team

    Quote
    Accepted Answer
    Thanked by 1shopnoob85
  • shopnoob85shopnoob85 MemberComments: 7 Received thanks: 0 Member since: August 2019

    Ehy, vielen Dank für die Antwort. 

  • experthingexperthing MemberComments: 3 Received thanks: 1 Member since: July 2019

    Ehy, vielen Dank für die Antwort. 

    Jederzeit gerne.  

    VG, dein Experthing Team

Sign In or Register to comment.