Beim Speichern dieser Konfiguration ist ein Fehler aufgetreten: Bereich ist bereits eingestellt


25

Ich kann in einer Neuinstallation von 2.2.4 kein neues Thema anwenden. Ein Upgrade auf 2.2.5 behebt das Problem nicht.


könnten Sie mir bitte
— mitteilen

Hallo @SwapnilTatkondawar, gemäß Ihren Anweisungen habe ich D / L den Patch ... aber wo installiere ich ihn auf meiner IDE, bevor ich den besagten Befehl ausführe? Vielen Dank,
— Rav Narayan

Dies gibt keine Antwort auf die Frage. Sobald Sie über eine ausreichende Reputation verfügen, können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten an, die nicht vom Fragesteller geklärt werden müssen . - Aus der Bewertung
— Sukumar Gorai

Wenn ich eine vorhandene Frage nicht beantworten kann, soll ich ein Duplikat erstellen?
— Rav Narayan

Bitte geben Sie einen Kommentar ein, anstatt ihn als Antwort hinzuzufügen.
— Sukumar Gorai

Antworten:


53

Hinweis: Dies ist ein bekanntes Problem in Magento 2.2.4 ( siehe GitHub-Problem ). Sie sollten die Magento-Kerndatei nicht direkt ändern (überschreiben oder ein Plugin erstellen)

Ändern Sie in Magento\Email\Model\AbstractTemplate.phpdiesem:

public function setForcedArea($templateId)
{
    if ($this->area) {
        throw new \LogicException(__('Area is already set'));
    }
    $this->area = $this->emailConfig->getTemplateArea($templateId);
    return $this;
}

Dafür:

public function setForcedArea($templateId)
{
    if (!isset($this->area)) {
        $this->area = $this->emailConfig->getTemplateArea($templateId);
    }
    return $this;
}

Es sollte das Problem beheben

Update : Kann auch durch Anwenden dieses Patches behoben werden


3
Vielen Dank! Dies hat mein Problem gelöst. So reproduzieren Sie: In Inhalt> Design> Konfiguration> "Bearbeiten" Sie Ihr Thema auf der Ebene der Geschäftsansicht. Wenn Sie Änderungen vornehmen (unabhängig davon, ob Sie ein Thema anwenden oder ein Logo ändern), wird die folgende Meldung angezeigt: "Beim Speichern dieser Konfiguration ist ein Fehler aufgetreten: Bereich ist bereits auf [Halten] gesetzt".
— Eskaliert

3
Es hat so funktioniert, wie ich es in der Core-Datei bearbeitet habe. Wie überschreibe ich diese bestimmte Modelldatei, damit ich keine Kerndatei bearbeite? Welche Ordnerstruktur muss ich im App-Ordner verwenden?
— Alaksandar Jesus Gene

2
Magento 2 macht leider keine Hotfix-Releases. Allerdings haben sie hier einen offiziellen Patch veröffentlicht: magento.com/tech-resources/download (suchen Sie nach MAGETWO-93036). Wenden Sie diesen Patch mit dem folgenden Befehl an: patch -p1 <m2-hotfixes / EE-MAGETWO-93036-2018-07-02-07-07-16.patch. Nach dem Anwenden erwähnen Patch und es funktioniert einwandfrei.
— Swapnil Tatkondawar

2
Problem in Magento2.2.6 behoben
— Manish Maheshwari

1
Vielen Dank für die Aktualisierung Ihrer Antwort mit dem Link zur Patch-Datei :)
— Jonathan Marzullo

2

Behebung eines Fehlers Something went wrong while saving this configuration: Area is already setbeim Speichern der Themenkonfiguration. Sie möchten ein Plugin zum Überschreiben einer Magento\Email\Model\AbstractTemplate.phpDatei in einem benutzerdefinierten Modul erstellen . Und Update- setForcedArea()Funktion.

Dateipfad: magento / app / code / Vendor / AreaConfigFix / registration.php

<?php
use \Magento\Framework\Component\ComponentRegistrar;

ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Vendor_AreaConfigFix', __DIR__);

Dateipfad: magento / app / code / Vendor / AreaConfigFix / etc / module.xml

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Vendor_AreaConfigFix" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Email"/>
        </sequence>
    </module>
</config>

Dateipfad: magento / app / code / Vendor / AreaConfigFix / etc / di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Email\Model\AbstractTemplate">
        <plugin name="email_setforced_area" type="Vendor\AreaConfigFix\Plugin\Email\Model\AbstractTemplate" />
    </type>
</config>

Dateipfad: magento / app / code / Vendor / AreaConfigFix / Plugin / Email / Model / AbstractTemplate.php

<?php
namespace Vendor\AreaConfigFix\Plugin\Email\Model;

class AbstractTemplate
{
    private $emailConfig;

    public function __construct(\Magento\Email\Model\Template\Config $emailConfig)
    {
        $this->emailConfig = $emailConfig;
    }

    public function aroundSetForcedArea(\Magento\Email\Model\AbstractTemplate $subject, \Closure $proceed, $templateId)
    {
        if (!isset($this->area)) {
            $this->area = $this->emailConfig->getTemplateArea($templateId);
        }
        return $this;
    }
}

Ich arbeite nicht für mich
— Manjunath

0

Anstatt den von Magento bereitgestellten Patch zu installieren oder die Kerndateien direkt hier zu ändern, habe ich es so gemacht:

"Dateipfad: magento / app / code / Vendor / ThemeErrorFix / registration.php"

<?php
use \Magento\Framework\Component\ComponentRegistrar;

ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Vendor_ThemeErrorFix', __DIR__);

"Dateipfad: magento / app / code / Vendor / ThemeErrorFix / etc / module.xml"

    <?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Vendor_ThemeErrorFix" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Email"/>
        </sequence>
    </module>
</config>

"Dateipfad: magento / app / code / Vendor / ThemeErrorFix / etc / di.xml"

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Email\Model\Template">
        type="email_setforced_area" type="Vendor\ThemeErrorFix\Model\Template" />

</config>

"Dateipfad: magento / app / code / Vendor / ThemeErrorFix / Model / Template.php"

<?php

namespace Vendor\ThemeErrorFix\Model;

use Magento\Email\Model\Template as coreTemplate;

class Template extends coreTemplate

{
   public function setForcedArea($templateId)
{
    if (!isset($this->area)) {
        $this->area = $this->emailConfig->getTemplateArea($templateId);
    }
    return $this;
}
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.