Pregunta

Necesito hacer una solicitud de descanso cada vez que un nuevo usuario se registra.

La solicitud REST devuelve algunos datos que necesito almacenar para la cuenta de usuario de Drupal y poder presentar como contenido en algún lugar.

¿Cuál es la mejor/más limpia forma de hacerlo?

¿Fue útil?

Solución

Puedes hacerlo en un simple módulo personalizado, asegúrese de primero Comprender el sistema de ganchos de Drupal Como esta es la base para (casi) todo Drupal.

En su módulo, puede implementar hook_user_presave() a llamar antes de guardar una cuenta de usuario. Se solicitará tanto la creación como la actualización, por lo que deberá proteger su código con una condición para detectar un nuevo usuario. Después de la llamada al resto, hay varias opciones para almacenar los datos devueltos. El más fácil es utilizar el atributo de datos de la cuenta de usuario. Es una matriz PHP simple que se serializa en una columna de base de datos. No es muy bueno en cuanto a rendimiento y no es muy flexible (puede consultar los datos almacenados) pero es fácil.

function MODULE_user_presave(&$edit, $account, $category) {
  // Accoding to user_save's documentation, this is a new user if
  // $account->is_new is set to TRUE or if $account->uid is not set
  if ($category == 'account' && (!empty($account->is_new) || !isset($account->uid)))) {
    $edit['data']['MODULE'] = MODULE_get_data_from_rest($account);
  }
}

Otros consejos

Hay disponible una característica central en Drupal 7 que puede activar una acción específica si se crea un usuario, etc. No tiene que codificar para lograr esto:

  • Habilitar el módulo Desencadenantes
  • Ir Configuración >> Comportamiento y crear una acción disponible en la lista desplegable
  • Ir Estructura >> Desencadenantes, haga clic en el Usuario pestaña y asigne la acción que creó un tiempo de regreso Disparador: después de crear una nueva cuenta de usuario

los Normas o Flujo de trabajo Los módulos pueden ser lo que está buscando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top