In der 3.5.4 soll man ja die meisten Konfigurationsparameter auch in der Apllication.php definieren können. Ich habe es bisher noch nicht geschafft, z.B. das zu verwendende Template in der Application.php zu definieren… Gibt es eine Doku, welche Config-Parameter man wie definieren kann? Oder weiß jemand, wie das geht?
Hi, hier ein paar Beispiele, die ggf. schon weiterhelfen. Danach muss auf jeden Fall der komplette Cache einmal geleert werden, damit das System diese neuen Werte an nimmt. 'config'=\>array( 'data' =\> array( 'host' =\> 'localhost', 'basePath' =\> 'localhost/verzeichnis', ) ), 'license'=\>array( 'data'=\>array( 'sCORE' =\> 'C950C-17D8E-EAEA9-43177-6FAAB-770B0-#sCORE#', 'sLANGUAGEPACK' =\> '4664B-7A956-85955-5999E-C3811-BBAFD-#sLANGUAGEPACK10#', ... ) )
, 'shop'=\>array( 'options' =\> array( //'host' =\> '' ), 'config' =\> array( 'Shopname' =\> 'Halllo' ), 'options1' =\> array( //'host' =\> '' ), 'config1' =\> array('data'=\>array( 'Shopname' =\> 'Halllo2' )) ), 'license'=\>array( 'data'=\>array( 'sCORE' =\> 'sdfghkjkl' ) )
'mail' =\> array( 'type' =\> 'file', 'path' =\> $this-\>DocPath().'\_tests/Shopware/TempFiles/', ), 'mail' =\> array( 'type' =\> 'smtp', 'host' =\> 'mail.shopware.ag', 'from' =\> array( 'email' =\> 'info@shopware.de', 'name' =\> 'Shopware' ), 'replyTo' =\> array( 'email' =\> 'test@shopware.de', 'name' =\> 'Mein Name' ), 'username' =\> 'catchall@shopware.de', 'password' =\> 'PASSWORD' ),
[quote=“Sebastian Klöpper”]Hi, hier ein paar Beispiele, die ggf. schon weiterhelfen. Danach muss auf jeden Fall der komplette Cache einmal geleert werden, damit das System diese neuen Werte an nimmt. 'config'=\>array( 'data' =\> array( 'host' =\> 'localhost', 'basePath' =\> 'localhost/verzeichnis', ) ), 'license'=\>array( 'data'=\>array( 'sCORE' =\> 'C950C-17D8E-EAEA9-43177-6FAAB-770B0-#sCORE#', 'sLANGUAGEPACK' =\> '4664B-7A956-85955-5999E-C3811-BBAFD-#sLANGUAGEPACK10#', ... ) )
, 'shop'=\>array( 'options' =\> array( //'host' =\> '' ), 'config' =\> array( 'Shopname' =\> 'Halllo' ), 'options1' =\> array( //'host' =\> '' ), 'config1' =\> array('data'=\>array( 'Shopname' =\> 'Halllo2' )) ), 'license'=\>array( 'data'=\>array( 'sCORE' =\> 'sdfghkjkl' ) )
'mail' =\> array( 'type' =\> 'file', 'path' =\> $this-\>DocPath().'\_tests/Shopware/TempFiles/', ), 'mail' =\> array( 'type' =\> 'smtp', 'host' =\> 'mail.shopware.ag', 'from' =\> array( 'email' =\> 'info@shopware.de', 'name' =\> 'Shopware' ), 'replyTo' =\> array( 'email' =\> 'test@shopware.de', 'name' =\> 'Mein Name' ), 'username' =\> 'catchall@shopware.de', 'password' =\> 'PASSWORD' ),
[/quote] Hallo, Sebastian… danke für die Antwort. mein Hauptproblem, die Template-Definition, wird damit leider auch nicht klarer… Kann man darüber auch z.B. das Verzeichnis der Artikelbilder definieren?
Hi, das Ticket ging ja generell um die Infos aus der s_core_config, s_core_licences und s_core_multilanguage http://trac.shopware.de/trac/ticket/4877 Also alle relevanten Daten aus diesen Tabellen solltest du einfach in den Applikation.php verschieben/überschreiben können.
[quote=“Sebastian Klöpper”]Hi, das Ticket ging ja generell um die Infos aus der s_core_config, s_core_licences und s_core_multilanguage http://trac.shopware.de/trac/ticket/4877 Also alle relevanten Daten aus diesen Tabellen solltest du einfach in den Applikation.php verschieben/überschreiben können.[/quote] Die Frage ist: wie genau? Hast Du ein Beispiel, wie ich den Template-Namen (der z.B. als “templates/powertemplate” in der “s_core_multilanguage” steht), in der Application.top anders definieren kann? Habe mal versucht, das zu Debuggen, bin damit aber auch nicht weiter gekommen…
[quote=“avenger”]In der 3.5.4 soll man ja die meisten Konfigurationsparameter auch in der Apllication.php definieren können. Ich habe es bisher noch nicht geschafft, z.B. das zu verwendende Template in der Application.php zu definieren… Gibt es eine Doku, welche Config-Parameter man wie definieren kann? Oder weiß jemand, wie das geht?[/quote] [color=red]Ich behaupte jetzt mal, dass das noch nicht durchgängig richtig funktioniert![/color] Habe das mal debugged, mit folgendem Ergebnis: teilweise geth es, teilweise noch nicht. Das sind die Parameter, die ich in der “Application.php” definiere: (Ich will für meine Entwicklungsumgebung eine templatebasierte Kontext-Umschaltung erreichen, damit ich mit einer Shopware-Installation alle von uns betreuten Shops verwenden kann.) $template='shop\_name'; ........ $images\_dir='/images/'.$template.'/'; ..... 'config'=\>array( 'ArticleImages'=\>$images\_dir.'articles', 'TemplatePath'=\>$template, 'host' =\> 'localhost', 'hostOriginal' =\> 'localhost', 'basePath' =\> 'localhost/shopware\_powertemplate/shopware', 'Banner'=\>$images\_dir.'ayww', 'SupplierImages'=\>$images\_dir.'supplier', 'CmsImages'=\>$images\_dir.'cms', ), .......
In “engine\Shopware\Plugins\Default\Core\Shop\Bootstrap.php” Ergibt der Aufruf von $config = Shopware()->getOption(‘config’); (Zeile 46, public static function onInitResourceShop) folgenden Inhalt (also das Werte, die ich in der “Application.php” definiert habe): ArticleImages: string = /images/shop\_name/articles TemplatePath: string = shop\_name host: string = localhost hostOriginal: string = localhost basePath: string = localhost/shopware\_powertemplate/shopware Banner: string = /images/shop\_name/ayww SupplierImages: string = /images/shop\_name/supplier CmsImages: string = /images/shop\_name/cms
D.h., hier sind die Werte aus “Application.php” in der config gelandet. Im weiteren Verlauf wird dann in “engine\Shopware\Plugins\Default\Core\Shop\Bootstrap.php” $config = Shopware()->Config();; (Zeile 106, public static function onPreDispatch) die config geladen, um z.B. “host” und “hostOriginal” auf Gleichheit zu prüfen (was im Fehlerfall die beliebte “Fehlende Subshop-Lizenz”-Meldung erzeugt…) Diese config hat folgenden Inhalt (Auszug der Werte): \_data: array = host: &string = www.shop\_name.de hostoriginal: string = localhost templatepath: string = ./orange basefile: string = shopware.php basepath: string = www.shop\_name.de/shopware\_powertemplate/shopware articleimages: string = /images/shop\_name/articles supplierimages: string = /images/shop\_name/supplier banner: string = /images/shop\_name/ayww cmsimages: string = /images/shop\_name/cms
D.h., “host” und “templatepath” sind nicht übernommen, hostoriginal und die definierten Bildverzeichnisse aber schon…
Hi, die Config sollte so bearbeitet werden können: [quote] ‘config’=>array( ‘data’ => array( ‘host’ => ‘localhost’, ‘basePath’ => ‘localhost/trunk’, ) ), [/quote] Einige Config-Einträge können aber so nicht bearbeitet werden, da diese nicht aus der Config kommen. Zum Beispiel die Einträge Template oder Host kommen aus der Shop-Config. Diese Einträge können dann z.B. so bearbeitet werden: 'shop'=\>array( 'options' =\> array( 'host' =\> 'shop.de' 'tenplate' =\> 'blue', ), // shopabhänge Config-Einträge 'config' =\> array( 'data' =\> array( 'shopName' =\> 'Testshop', 'basePath' =\> 'localhost/trunk', 'host' =\> 'localhost', 'hostOriginal' =\> 'localhost', )), ),
Heiner
[quote=“rocky”]Hi, die Config sollte so bearbeitet werden können: [quote] ‘config’=>array( ‘data’ => array( ‘host’ => ‘localhost’, ‘basePath’ => ‘localhost/trunk’, ) ), [/quote] Einige Config-Einträge können aber so nicht bearbeitet werden, da diese nicht aus der Config kommen. Zum Beispiel die Einträge Template oder Host kommen aus der Shop-Config. Diese Einträge können dann z.B. so bearbeitet werden: 'shop'=\>array( 'options' =\> array( 'host' =\> 'shop.de' 'tenplate' =\> 'blue', ), // shopabhänge Config-Einträge 'config' =\> array( 'data' =\> array( 'shopName' =\> 'Testshop', 'basePath' =\> 'localhost/trunk', 'host' =\> 'localhost', 'hostOriginal' =\> 'localhost', )), ),
Heiner[/quote] Danke, werde ich mal ausprobieren.
[quote=“avenger”]Danke, werde ich mal ausprobieren.[/quote] Scheint zu funktionieren, cool… Habe jetzt noch ein Problem… Um auch die Caches für die verschiedenen Shops zu trennen,habe ich in der Application.php in ‘cache’=>‘cache_dir’ => $this->DocPath().‘cache/’.$template, das Cache-Verzeichnis geändert. Leider wird diese aber später wieder hart gesetzt, ohne den Config-Wert zu verwenden: engine\Shopware\Bootstrap.php(45): $template-\>setCompileDir(Shopware()-\>DocPath().'cache/templates/'); $template-\>setCacheDir(Shopware()-\>DocPath().'cache/templates/'); engine\Shopware\Plugins\Default\Core\Template\Bootstrap.php(23): $template-\>setCompileDir(Shopware()-\>DocPath().'cache/templates/'); $template-\>setCacheDir(Shopware()-\>DocPath().'cache/templates/');
Ich habe mir das geändert, aber ist halt 'ne Core-Änderung… Ähnliche Probleme gibt es im Backend, weil dort die diversen Bild-Verzeichnisse, im Gegensatz zum Frontend, auch hart codiert werden, statt die Config-Werte zu verwenden (habe schon einen TRAC-Eintrag deswegen erstellt). D.h., der Admin schreibt immer nur in das “images”-Verzeichnis (+ Unterverzeichnisse).
Ja, das stimmt. Im Backend werden die Config-Einträge wohl nicht immer beachtet. Da du die Änderung wahrscheinlich aber fürs Frontend gemacht hast, kannst du da auch einfach tricksen. Fürs Backend machst du einfach ein “SoftLink” vom originalen Verzeichnis zum neuem Verzeichnis. Dann werden die Dateien automatische dort abgelegt. Beim Template-Cache-Verzeichnis kann ich dir leider nicht recht geben. Das sollte so weiterhin möglich sein, da die eigenen Einträge später gesetzt werden und damit die org. Einträge überschrieben werden. 'template' =\> array( ... 'cacheDir' =\> Shopware()-\>DocPath() . 'cache/templates/', 'compileDir' =\> Shopware()-\>DocPath() . 'cache/templates/' ),
[quote=“rocky”]Ja, das stimmt. Im Backend werden die Config-Einträge wohl nicht immer beachtet. Da du die Änderung wahrscheinlich aber fürs Frontend gemacht hast, kannst du da auch einfach tricksen. Fürs Backend machst du einfach ein “SoftLink” vom originalen Verzeichnis zum neuem Verzeichnis. Dann werden die Dateien automatische dort abgelegt.[/quote] Ich habe ja x Shops aber nur einen Soflink… [quote=“rocky”]Beim Template-Cache-Verzeichnis kann ich dir leider nicht recht geben. Das sollte so weiterhin möglich sein, da die eigenen Einträge später gesetzt werden und damit die org. Einträge überschrieben werden. 'template' =\> array( ... 'cacheDir' =\> Shopware()-\>DocPath() . 'cache/templates/', 'compileDir' =\> Shopware()-\>DocPath() . 'cache/templates/' ),
[/quote] Kann ich nicht bestätigen, weil er mir ohne meine Änderungen die kompilierten im ‘cache/templates/’-Verzeichnis abgelegt hat…
Also bei mit funktionierst. Vielleicht ist da noch ein Fehler in deiner Apllication.php? Meine Template-Config: 'template' =\> array( 'compileCheck' =\> true, 'compileLocking' =\> true, 'useSubDirs' =\> false, 'forceCompile' =\> false, 'ignoreNamespace' =\> false, 'cacheDir' =\> Shopware()-\>DocPath() . 'cache/templates2/', 'compileDir' =\> Shopware()-\>DocPath() . 'cache/templates2/' ), 'cache' =\> array( ...
[quote=“rocky”]Also bei mit funktionierst. Vielleicht ist da noch ein Fehler in deiner Apllication.php? Meine Template-Config: 'template' =\> array( 'compileCheck' =\> true, 'compileLocking' =\> true, 'useSubDirs' =\> false, 'forceCompile' =\> false, 'ignoreNamespace' =\> false, 'cacheDir' =\> Shopware()-\>DocPath() . 'cache/templates2/', 'compileDir' =\> Shopware()-\>DocPath() . 'cache/templates2/' ), 'cache' =\> array( ...
[/quote] Ja, funktioniert, danke… Habe wohl was falsches getestet… :wtf: