Installationshinweise, beispielsweise läst sich ein Theme nicht kopieren

Hallo,

welche Dinge gibt es auf einem Ubuntu 16.04 LTS Server mit LAMP so zu beachten, so dass Shopware 5 einwandfrei funktioniert?

Die Systeminformation zeigt mir zur Server-Konfiguration, Shopware-Dateien und Shopware-Verzeichnissen schon mal überall grüne Häckchen zu den Stati an.

Nur beispielsweise lässt sich ein Theme mit dem Theme-Manager nicht kopieren und bricht dann ab mit folgender Fehlermeldung:

Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. An exception occurred while executing ‚INSERT INTO s_core_templates_config_elements (type, name, position, default_value, selection, field_label, support_text, allow_blank, less_compatible, attributes, container_id, template_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)‘ with params [„theme-media-selection“, „mobileLogo“, 0, „s:47:„frontend/_public/src/img/logos/logo–mobile.png“;“, „N;“, „__smartphone__“, null, 1, 0, „a:1:{s:14:„lessCompatible“;b:0;}“, 127, 29]: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‚29-mobileLogo‘ for key ‚template_id_name‘ in vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php on line 119 Stack trace: #0 vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(174): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(PDOException), ‚INSERT INTO s_c…‘, Array) #1 engine/Library/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(281): Doctrine\DBAL\Statement->execute() #2 vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1018): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->executeInserts() #3 vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(378): Doctrine\ORM\UnitOfWork->executeInserts(Object(Doctrine\ORM\Mapping\ClassMetadata)) #4 vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(356): Doctrine\ORM\UnitOfWork->commit(NULL) #5 engine/Shopware/Components/Form/Persister/Theme.php(61): Doctrine\ORM\EntityManager->flush() #6 engine/Shopware/Components/Theme/Configurator.php(133): Shopware\Components\Form\Persister\Theme->save(Object(Shopware\Components\Form\Container\TabContainer), Object(Shopware\Models\Shop\Template)) #7 engine/Shopware/Components/Theme/Installer.php(153): Shopware\Components\Theme\Configurator->synchronize(Object(Shopware\Themes\Syndicationa\Theme)) #8 engine/Shopware/Components/Theme/Installer.php(116): Shopware\Components\Theme\Installer->synchronizeThemes() #9 engine/Shopware/Controllers/Backend/Theme.php(195): Shopware\Components\Theme\Installer->synchronize() #10 engine/Library/Enlight/Controller/Action.php(159): Shopware_Controllers_Backend_Theme->listAction() #11 engine/Library/Enlight/Controller/Dispatcher/Default.php(530): Enlight_Controller_Action->dispatch(‚listAction‘) #12 engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #13 engine/Shopware/Kernel.php(191): Enlight_Controller_Front->dispatch() #14 vendor/symfony/http-kernel/HttpCache/HttpCache.php(484): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #15 engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #16 vendor/symfony/http-kernel/HttpCache/HttpCache.php(251): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #17 engine/Shopware/Components/HttpCache/AppCache.php(105): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #18 shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #19 {main}  

Also der Server ist offensichtlich bisher noch nicht richtig konfiguriert, dass Shopware 100%ig einwandfrei läuft.

Vielen Dank vorab

DL

„Ein Theme kopieren“? Wie gehst du hier genau vor? Ein Theme-Name muss eindeutig sein, daher kann man Themes nicht einfach so „kopieren“.

Edit: Nachtrag: Wenn du ein eigenes Design erstellen möchtest, welches vom Standard-Theme ableitet, solltest du dich hier mal einlesen ;) Shopware 5 Theme Startup Guide

Hier gibt es auch ein deutsches Video Tutorial: https://www.udemy.com/shopware-template-training-basic/

Viele Grüße

Duplicate entry

Der Eintrag in der DB ist schon vorhanden :slight_smile: Also NEUES Theme anlegen :-) 

 

Ich habe ein Theme im Theme-Manager neu erstellt und dabei wurde ein vorhandenes Theme zum Ableiten ausgewählt (uns zwar “Responsive”).

Sorry, mit “Kopieren” hatte ich mich missverständlich bzw. faktisch falsch ausgedrückt.

Trotzdem die Fehlermeldung.

Bekommt man die auch wieder über den Theme-Manager entfernt, oder Ordner bzw. Verzeichnisse löschen (bei Bedarf)?

Da hast du wohl etwas zuviel geklickt, denn „mobileLogo“ ist laut Fehlermeldung schon angelegt. Doppelt geht nicht :slight_smile:

Hast du beim Ableiten zufällig einen Namen benutzt, der schon exisitiert („Responsive“ oder „Bare“) ? 

Irgendwas scheint da in deiner Datenbank nicht mehr zu stimmen :confused:

Viele Grüße

Als Name für Quellcode und Verzeichnisse muss man wohl einen komplett Neuen wählen und nicht “nur” den vorhandenen (von dem man ableitet), nur um ein paar Zeichen erweitern?!

Ich bin mir da nicht 100%ig sicher, da ich bisher immer andere Namen verwendet habe. Vom Gefühl würde ich sagen, dass es reichen sollte, an den Namen etwas anzuhängen.

Wie heißt der Name denn? Da dieser auch als PHP-Klasse angelegt wird, musst du dich an bestimmte Vorgaben halten. Empfehlung: Nur Buchstaben in CamelCase.

Viele Grüße

Wo bei ich vorhin von „Responsive“ habe ableiten lassen und als Namen „Responsivesyndication“ eingetragen hatte. Nun klappt es, wenn ich den Theme-Manager beim Neuerstellen eines Themes von „Bare“ auf den neuen Namen für Quellcode und Verzeichniss „Syndication“ oder den neuen Namen für Quellcode und Verzeichniss „Responsive“ auf „Respons“ zum ableiten einstelle.