Как изменить файлы ядра модуля в socialengine4

Я занимаюсь разработкой модулей в socialengine4. Теперь мне нужно изменить основной функционал приложения. Мне нужно внести некоторые изменения в процесс регистрации пользователей, добавив некоторые основные функции, такие как проверка полей автозаполнения.

Я знаю, что это основная особенность User module of SocialEngine, Но This is not a good practice because any update of socialengine will override my changes,

Я искал решение, но не смог найти ничего. Я знаю, если вы хотите изменить что-либо в основных модулях magento, он направляет нас конкретным способом сделать это. Точно так же я хочу знать процесс, как я могу изменить в соц.

С уважением

2 ответа

Это зависит от того, что вы хотите изменить в ядре SocialEngine.

Чтобы изменить процесс регистрации (например, добавить новый шаг), вы должны добавить новую строку в эту таблицу engine4_user_signup и реализовать ваш новый шаг.

Если вы просто хотите добавить некоторые действия после успешной регистрации пользователя, вы можете добавить хук в свой пользовательский модуль.

Чтобы реализовать хук в 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
}

Надеюсь, это поможет вам.

Я не совсем знаком с Social Engine, но вижу, что он предлагает плагины:

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

… Я чувствую себя довольно безопасно, предполагая, что есть какой-то API, который позволяет вам подключаться и, возможно, переопределять любую базовую функциональность, которой вы не совсем довольны.

Если это что-то вроде Symfony, Drupal или WordPress, то чаще всего происходит какое-то событие, ловушка, действие, фильтр, что угодно, на ключевом этапе процесса. Это должно позволить вам поймать любое ядро, которое пришло к этому моменту, уничтожить его, и полностью переопределить и "повторить" его. Ключевым моментом здесь является полное понимание задействованных API-интерфейсов - никакие вопросы SO не избавят вас от прочтения документации.

То, что иногда случается, это, как говорится, то, что единственное правдоподобное событие-кандидат не сотрудничает, в том смысле, что оно приходит слишком поздно и позволяет вам только "добавить" что-то дополнительное к тому, что уже сделано. В этом случае вы можете занять более высокую позицию и дать отпор, найдя более раннее событие. Запустите на нем выходной буфер и удалите этот буфер из неработоспособного события. Теперь вы переделываете вещи так, как вы хотите, не теряя изменений во время обновлений.

Обратите внимание, что выполнение последнего не без риска, однако. Во всяком случае, это накладывает на вас огромную нагрузку: если ядро изменит что-то в этой области, что вы переделали с нуля, вам нужно убедиться, что ваше переопределение не сломается при обновлении приложения.

Другие вопросы по тегам