我知道这是
User module of SocialEngine
的核心功能,但这不是一个好的做法,因为社交引擎的任何更新都会覆盖我的更改。我知道如果您想更改 Magento 核心模块中的任何内容,它会指导我们实现这一目标的具体方法。同样我想知道流程,我该如何在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
}
希望这可以帮助你。
http://www.socialengine.com/customize/se4/plugins
…我觉得相当有把握地建议,有某种 API 可以让您挂钩,甚至可能覆盖您不完全满意的任何核心功能。如果是 Symfony、Drupal 或 WordPress 之类的东西,通常会在流程的关键步骤中存在某种事件、钩子、操作、过滤器等。它应该允许您捕获到此为止的任何核心,将其丢弃,并完全覆盖并“重做”它。这里的关键是要彻底了解所涉及的 API——无论问多少问题都无法让你免于阅读文档。
话虽这么说,“偶尔”会发生的是,唯一合理的候选事件是不合作的,因为它来得太晚了,只能让你在已经完成的事情上“添加”一些额外的东西。在这种情况下,您可以通过找到更早的事件来占据更高的位置并进行反击。在其上启动一个输出缓冲区,并在不合作事件中丢弃该缓冲区。现在,您可以按照
您想要的方式重做事情,而不会在升级过程中丢失您的更改。 但请注意,执行后者并非没有风险。如果有的话,它会给您增加巨大的负担:如果核心更改您从头开始重做的该区域中的任何内容,您需要确保在升级应用程序时覆盖它不会破坏。