如何更改socialengine4中的核心模块文件

问题描述 投票:0回答:2
我正在socialengine4中开发模块。现在我需要更改应用程序的核心功能。我需要通过添加一些核心功能(例如提供自动完成字段)来对用户注册过程进行一些更改。

我知道这是

User module of SocialEngine

的核心功能,但这不是一个好的做法,因为社交引擎的任何更新都会覆盖我的更改。

我知道如果您想更改 Magento 核心模块中的任何内容,它会指导我们实现这一目标的具体方法。同样我想知道流程,我该如何在SocialEngine中更改?

php zend-framework socialengine
2个回答
4
投票
这取决于您想要在 SocialEngine 核心上更改什么。

要更改注册流程(例如添加新步骤),您必须在此表 engine4_user_signup 中添加新行并实施新步骤。

如果您只想在用户注册成功后添加一些操作,您可以在自定义模块中添加 Hook。

要在 Socialengine 中实现挂钩,请执行以下步骤: 在清单文件中定义钩子,如下所示

'hooks' => array( array( 'event' => 'onUserCreateAfter', 'resource' => 'YourPluginName_Plugin_Signup', ), ),

在插件类YourPluginName_Plugin_Signup中,添加此方法onUserCreateAfter

public function onUserCreateAfter($payload) { $user = $payload->getPayload(); //Do whatever you want }

希望这可以帮助你。


0
投票
我对社交引擎一点也不熟悉,但看到它提供了插件:

http://www.socialengine.com/customize/se4/plugins

…我觉得相当有把握地建议,有某种 API 可以让您挂钩,甚至可能覆盖您不完全满意的任何核心功能。

如果是 Symfony、Drupal 或 WordPress 之类的东西,通常会在流程的关键步骤中存在某种事件、钩子、操作、过滤器等。它应该允许您捕获到此为止的任何核心,将其丢弃,并完全覆盖并“重做”它。这里的关键是要彻底了解所涉及的 API——无论问多少问题都无法让你免于阅读文档。

话虽这么说,“偶尔”会发生的是,唯一合理的候选事件是不合作的,因为它来得太晚了,只能让你在已经完成的事情上“添加”一些额外的东西。在这种情况下,您可以通过找到更早的事件来占据更高的位置并进行反击。在其上启动一个输出缓冲区,并在不合作事件中丢弃该缓冲区。现在,您可以按照

想要的方式重做事情,而不会在升级过程中丢失您的更改。 但请注意,执行后者并非没有风险。如果有的话,它会给您增加巨大的负担:如果核心更改您从头开始重做的该区域中的任何内容,您需要确保在升级应用程序时覆盖它不会破坏。

© www.soinside.com 2019 - 2024. All rights reserved.