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

时间:2013-11-15 13:15:17

标签: php zend-framework core socialengine

我正在开发socialengine4中的模块。现在我需要更改应用程序的核心功能。我需要通过添加一些核心功能(如证明自动完成字段)来对用户注册过程进行一些更改。

我知道这是User module of SocialEngine的核心功能。但是This is not a good practice because any update of socialengine will override my changes

我搜索了解决方案但无法找到任何内容。我知道如果你想改变magento的核心模块中的任何东西,它会指导我们这样做的具体方式。同样地,我想知道这个过程,我怎样才能改变socialengine?

此致

2 个答案:

答案 0 :(得分: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
}

希望这可以帮到你。

答案 1 :(得分:0)

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

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

...我觉得相当安全,可以建议使用某种API来吸引并可能覆盖任何您不满意的核心功能。

如果它像Symfony,Drupal或WordPress一样,那么在这个过程的关键步骤中,通常会有某种事件,钩子,动作,过滤器等等。它应该允许你抓住任何核心到那一点,废弃它,并完全覆盖和“重做”它。这里的关键是要对所涉及的API有一个透彻的了解 - 没有任何问题可以让你免于阅读文档。

偶尔会发生偶然发生的事实是,唯一合理的候选事件是不合作的,因为它来得太晚,只允许你“添加”一些额外的东西。完成了。在这种情况下,您可以通过找到更早的事件来占据更高的地位并进行反击。在其上启动输出缓冲区,并在不合作事件中删除此缓冲区。现在,您按照 希望的方式重做事物,而不会在升级期间丢失您的更改。

请注意,执行后者并非无风险。如果有的话,它会给你带来巨大的负担:如果核心改变这个领域的任何你从头开始重做的东西,你需要确保你的覆盖它不会破坏你升级应用程序。