इस कॉन्फ़िगरेशन को सहेजते समय कुछ गलत हुआ: क्षेत्र पहले से ही सेट है


25

मैं 2.2.4 की साफ स्थापना में एक नया विषय लागू करने में असमर्थ हूं। 2.2.5 तक की समस्या को ठीक नहीं करता है।


कृपया मेरे साथ साझा करें कि आपने वास्तव में क्या किया है
hweb87

नमस्कार @SwapnilTatkondawar, आपके निर्देशों के अनुसार मेरे पास D / L पैच है ... लेकिन मैं उक्त कमांड को चलाने से पहले अपनी IDE में इसे कहां स्थापित करूं? धन्यवाद,
राव नारायण

यह प्रश्न का उत्तर प्रदान नहीं करता है। एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी करने में सक्षम होंगे ; इसके बजाय, ऐसे उत्तर प्रदान करें जिन्हें पूछने वाले से स्पष्टीकरण की आवश्यकता न हो । - समीक्षा से
सुकुमार गोराई

अगर मैं एक मौजूदा प्रश्न पर नहीं पूछ सकता, तो क्या आप मुझे एक डुप्लिकेट बनाना चाहेंगे?
राव नारायण

कृपया उत्तर के रूप में जोड़ने के बजाय टिप्पणी जोड़ें।
सुकुमार गोराई

जवाबों:


53

नोट: यह Magento 2.2.4 में एक ज्ञात मुद्दा है ( GitHub मुद्दा देखें ) और नीचे तय केवल एक अस्थायी सुधार है। आपको सीधे Magento कोर फ़ाइल नहीं बदलनी चाहिए (ओवरराइड या एक प्लगइन बनाना)

इसमें बदलाव Magento\Email\Model\AbstractTemplate.phpकरें:

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

इसके लिए:

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

यह समस्या को ठीक करना चाहिए

अद्यतन : इस पैच को लागू करके भी तय किया जा सकता है


3
धन्यवाद! इससे मेरी समस्या हल हो गई है। पुन: पेश करने के लिए: सामग्री> डिज़ाइन> कॉन्फ़िगरेशन> स्टोर थीम स्तर पर अपनी थीम को "संपादित करें"। यदि आप कोई परिवर्तन करते हैं (कोई फर्क नहीं पड़ता है, तो कोई थीम लागू करने या लोगो बदलने पर) निम्न संदेश पॉप अप होता है: "इस कॉन्फ़िगरेशन को सहेजते समय कुछ गलत हुआ: क्षेत्र पहले से ही [होल्ड पर] सेट है"।
13:30 बजे eskaliert

3
यह काम के रूप में मैं कोर फ़ाइल में संपादित किया। इस विशिष्ट मॉडल फ़ाइल को ओवरराइड कैसे करें ताकि मैं किसी भी कोर फ़ाइल को संपादित न करूँ। फ़ोल्डर संरचना क्या है मुझे ऐप फ़ोल्डर में उपयोग करने की आवश्यकता है।
अलकसंदर जीसस जीन

2
Magento 2 हॉटफिक्स रिलीज़ नहीं करता है, दुर्भाग्य से। हालाँकि, उन्होंने यहाँ पर एक आधिकारिक पैच जारी किया है: magento.com/tech-resources/download (MAGETWO-91136 के लिए खोज)। इस पैच को कमांड पैच -p1 <m2-हॉटफिक्सेस / EE-MAGETWO-93036-2018-07-02-07-07-16.patch द्वारा नीचे लागू करें। उल्लेख पैच लागू करने के बाद और यह पूरी तरह से काम करता है।
स्वप्निल त्तकोंडावर

2
Magento2.2.6 में सुलझाया गया मुद्दा
मनीष माहेश्वरी

1
पैच फ़ाइल के लिंक के साथ अपना उत्तर अपडेट करने के लिए धन्यवाद :)
जोनाथन मार्ज़ुलो

2

Something went wrong while saving this configuration: Area is already setथीम कॉन्फ़िगरेशन को सहेजते समय निश्चित त्रुटि के लिए । आप Magento\Email\Model\AbstractTemplate.phpकस्टम मॉड्यूल में ओवरराइड फ़ाइल के लिए प्लगइन बनाना चाहते हैं । और setForcedArea()फ़ंक्शन को अपडेट करें।

फ़ाइल पथ: Magento / ऐप / कोड / विक्रेता / AreaConfigFix / registration.php

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

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

फ़ाइल पथ: Magento / ऐप / कोड / विक्रेता / AreaConfigFix / etc / मॉड्यूल.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>

फ़ाइल पथ: Magento / ऐप / कोड / विक्रेता / 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>

फ़ाइल पथ: Magento / एप्लिकेशन / कोड / विक्रेता / AreaConfigFix / प्लगइन / ईमेल / मॉडल / 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;
    }
}

मेरे लिए काम नहीं
मंजूनाथ

0

Magento द्वारा दिए गए पैच को स्थापित करने या सीधे कोर फ़ाइलों को बदलने के बजाय यहां बताया गया है कि मैंने यह कैसे किया:

"फ़ाइल पथ: Magento / ऐप / कोड / विक्रेता / ThemeErrorFix / registration.php"

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

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

"फ़ाइल पथ: Magento / ऐप / कोड / विक्रेता / ThemeErrorFix / etc / मॉड्यूल.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>

"फ़ाइल पथ: Magento / ऐप / कोड / विक्रेता / 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>

"फ़ाइल पथ: Magento / ऐप / कोड / विक्रेता / ThemeErrorFix / मॉडल / 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;
}
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.