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.