You are here

Drupal8.2 升级8.3, layout plugin问题解决

作者: 老葛 亚艾元软件

Panels     3.0-beta ---> 4.1

Page_manager  1.0-alpha24 ---> beta2

Layout_plugin   删除,卸载

Bootstrap layouts   3.1 -> 4.1 -> 5.x

Ctools 8.x-3.0-alpha27  --8.x-3.0

 

先将Drupal8.2.4升级到Drupal8.2.8,没有任何问题。

Bootstrap layouts   3.1 -> 4.1

结果多个页面访问不了,使用了这个布局的,

 

Fatal error: Call to a member function getIconPath() on a non-object in D:\xampp\htdocs\d8eg\modules\panels\panels.module on line 51

 

Fatal error: Call to a member function setIconPath() on a non-object in

 

 

通过多次不断的尝试,目前唯一的解决办法,就是将相关的模块全部卸载掉,

然后升级到Drupal8.3,最后再启用相关的模块,重新构建相关的页面。

 

卸载Bootstrap layouts 模块,Layout_plugin, 其余模块升级到最新。

 

 

关在在于Bootstrap layouts 模块,出了问题。从3.1升级到4.1的时候,就存在问题。

 

重新升级:

 

先将相关模块升级到最新版本,删除依赖关系,对于

Panels     3.0-beta ---> 4.1

Page_manager  1.0-alpha24 ---> beta2

Bootstrap layouts   3.1 -> 5.x

Ctools 8.x-3.0-alpha27  --8.x-3.0

 

2,卸载laylout_plugin模块,中间会报错,刷新继续,可以删除。

3,将Drupal核心升级到8.3.2,注意,core,venders目录,删除, 将最新Drupal8.3.2拷贝过来。

4,回到modules目录,启用layout discovery模块。

此时会报错,

arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@theme_handler', '@theme.manager', '@plugin.manager.core.layout', '@plugin.manager.bootstrap_layouts.update']

改为:

arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@theme_handler', '@theme.manager', '@plugin.manager.bootstrap_layouts.update']

 

启用: Layout Discovery

还是不行。

 

应用补丁:

https://www.drupal.org/node/2872751

https://www.drupal.org/files/issues/the_service-2872751-19.patch

 

经过测试,还是不行。最终需要卸载:

Bootstrap layouts模块,在8.2

 

5,启用Layout Discovery

6,运行update.php,

7,Bootstrap layouts 升级到5.x,启用,

8,启用mycustom,运行升级mycustom/test

 

升级成功。

 

 

卸载panelizer, icls layout

 

Fatal error: Class Drupal\plugin\PluginDefinition\ArrayPluginDefinitionDecorator contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Drupal\Component\Plugin\Definition\PluginDefinitionInterface::id) in D:\xampp\htdocs\liuyin\modules\plugin\src\PluginDefinition\ArrayPluginDefinitionDecorator.php on line 367

 

plugin 需要升级到-8.x-2.5

 

 

Fatal error:  Class Drupal\rules\Ui\RulesUiDefinition contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (Drupal\Component\Plugin\Definition\PluginDefinitionInterface::id, Drupal\Component\Plugin\Definition\PluginDefinitionInterface::getProvider) in D:\xampp\htdocs\liuyin\modules\rules\src\Ui\RulesUiDefinition.php on line 146

 

 

Rules 升级到dev版本。

 


论坛:

Drupal版本: