Получение ошибки «Область уже установлена» при смене темы для Magento 2.2.4 - PullRequest
0 голосов
/ 01 июня 2018

Я скопировал тему magento-frontend-luma и изменил поставщика \ имя темы и вставил в папку дизайна magento2 \ app \ design \ frontend \ Webmyne \ pruthvi

В registration.php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/Webmyne/pruthvi',
    __DIR__
);

В theme.xml

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Webmyne Pruthvi</title>
    <parent>Magento/blank</parent>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

В composer.json

{
    "name": "webmyne/pruthvi",
    "description": "N/A",
    "require": {
        "php": "7.0.2|7.0.4|~7.0.6|~7.1.0",
        "magento/theme-frontend-blank": "100.2.*",
        "magento/framework": "101.0.*"
    },
    "type": "magento2-theme",
    "version": "100.2.3",
    "license": [
        "OSL-3.0",
        "AFL-3.0"
    ],
    "autoload": {
        "files": [
            "registration.php"
        ]
    }
}

Но когда я пытаюсь изменить тему из КОНТЕНТ> Дизайн> Конфигурация

Яполучаю ошибку 'Область уже установлена'

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Это принадлежащая Magento 2.2.4 CE проблема

. Magento была исправлена ​​Даниэлем Руфом в https://github.com/magento/magento2/commit/7019a0a1392095185505ff3ca7b97dd3e9cb4ef2 в PR # 15137 и уже объединена в ветви 2.2-Develop * 1005.*

Вам необходимо изменить код метода setForcedArea и заменить этот код метода следующим кодом.

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

Ссылка:

0 голосов
/ 01 июня 2018

Я думаю, что проблема в вашем registration.php файле

, попробуйте изменить его таким образом

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'Webmyne_pruthvi',
    __DIR__
);

, поэтому удалите часть frontend в объявлении.Нет необходимости указывать область, если вы наследуете от уже объявленной темы, для области внешнего интерфейса.

...