Login en script externo usando Drupal

Hola,

Me está costando una enormidad entender cómo funciona Drupal, y eso que tengo experiencia en PHP. A veces me parece más sencillo tirar código desde cero que hacer algo con Drupal. No desisto porque he oído maravillas de Drupal y quiero llegar a hacerme con él.

(Lo siento, tenía que desahogarme con alguien)

Mi pregunta: Tengo Drupal y tengo un script en PHP. Ambos funcionan perfectamente por separado. Quiero hacer que el script de PHP funcione sólo cuando el usuario esté logueado en Drupal. ¿Cómo se puede hacer?

Invito a unas cañas a quien me de alguna pista.

Muchas gracias!

Un saludo
Francisco

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Hola Fran, Cañas aparte.

Hola Fran,

Cañas aparte. Entiendo tu desconcierto, todos hemos pasado por eso. Verás, Drupal sigue una estructura parecida a MVC. Por lo que tienes que hacer un controlador que ejecute una info, la muestre o lo que sea solo cuando cumpla X requisitos.

Normalmente harías una clase pero en Drupal tienes que crear tu propio módulo. Este módulo instalado en tu Drupal te permetirá añadir funciones como las que tienes en PHP. Puedes acceder a cualquier evento, funcion, información de tu web Drupal cuando quieras gracias a los HOOKS.

Los HOOKS son funciones que enganchan tus funciones con las funciones de Drupal. En tu caso tendrías que user el hook_user(). Mírate la API para saber más de los hooks.

Un ejemplo de llamar una función justo cuando hace login:

  function NOMBRE-DE-MI-MODULO_user($op, &$edit, &$account){
    switch($op){
      case 'login':
        my_php_function($account);
        drupal_set_message(t('Me logao'));
      break;
    }
  }

Si me concretas más te podré ser de más ayuda. ¿Has hecho algún módulo? Sino lo has hecho primero familiarizae haciendo un módulo que haga algo como lo anterior.

Además, para saber si un usuario esta logado en todo momento puedes acceder a la global $user;

Ya me dirás...!