Código API

Código API

de Sergio Alfaro -
Número de respuestas: 35
Amigos agradeceré su ayuda: 
 
Estoy usando Moodle hace ya tiempo y se me presento un problema tengo que comunicar la asistencia mediante un API despues que ingresan al curso y no logro resolver el problema.
 
 

Hoy:

  1. Para ingresar al curso, el alumno se autentica (ingresa username y password)
  2. Moodle  valida los datos y otorga acceso al curso.

Como debería ser comunicando asistencia con el API:

  1. Para ingresar al curso, el alumno se autentica (ingresa username y password).
  2. Moodle valida los datos y otorga acceso al curso.
  3. Moodle comunica a SENCE el inicio o el fin de una sesión.
Variable requerida
 
idnumber
 
Por ejemplo si el idnumber es 1774761-4, las comunicaciones serían de esta forma:

Para informar que el alumno 1774761-4 ingresó al curso es la siguiente:

http://notificaciones.sence.cl/inicio_sesion?rut=idnumber&passwd=3046&curso=1234666943

donde 3046 y 1234666943 son una clave y codigo de curso respectivamente  otorgada por sence que es una institución de gobierno de mi pais (Servicio Nacional de Capacitación y Empleo de Chile)

Agradeceré su ayuda u orientación para resolver mi problema.

Atte,

Sergio Alfaro

 

 

Promedio de valoraciones: -
En respuesta a Sergio Alfaro

Re: Código API

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
El idnumber es el mismo para todos los usuarios o varía para cada uno? Es también el login o no tiene nada que ver ?

Y el password y el curso, son siempre los mismos o varían para cada curso?

Y SIEMPRE habría que llamar a esa URL cuando un usuario entra a un curso ?

Y hay que esperar alguna respuesta de esa dirección o símplemente invocarla y ya está ?

Ciao. sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Sergio Alfaro -

El idnumber es diferente para cada usuario estoy ocupando ese que era el numero de matricula que ingresan los usuarios en la ficha moodle.

la password  (clave que da el SENCE no password Moodle) es la misma para todos los cursos 

Siempre hay que llamar a la misma URL solo cambiaria el idnumber y el curso.

Intente asociar el nombre corto del curso al numero

Por Ejemplo si tenia dos CURSOS:

1.- con Nombre corto DAE

2.- con nombre corto RRHH

condicione si es el nombre corto DAE entoces curso=123666643

si nombre corto es RRHH entonces curso=123555546

Al realizar una comunicación de inicio o fin de sesión, el Webservice o API retorna un código que puede ser 400 cuando encuentra un error o 200 en el caso de tener éxito.

Atte,

Y muchas Gracias.

Sergio

 

En respuesta a Sergio Alfaro

Re: Código API

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers

Al realizar una comunicación de inicio o fin de sesión, el Webservice o API retorna un código que puede ser 400 cuando encuentra un error o 200 en el caso de tener éxito

Y te interesa chequear ese código (200 o 400) para algo o te basta con enviar la URL sin esperar a resultados ?

Se me van ocurriendo 2 o 3 formas de hacerlo, pero antes necesito saber la respuesta a la pregunta anterior...

sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Sergio Alfaro -

Eloy

La verdad es que no importa el chequeo.

Atte,

Sergio

En respuesta a Sergio Alfaro

Re: Código API

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Sergio. Ahí van lo pasos de lo que he hecho:
  1. En el campo "userid" de la tabla "mdl_user" tienes que tener el código del usuario que tienes que enviar a sence.

  2. Para establecer las equivalencias entre los id de los cursos en moodle y los id de los cursos en sence, he creado una tabla con la siguiente sentencia sql:

    create table mdl_course_sence (
    moodle int(10),
    sence int(10))

  3. En esa tabla insertarás las equivalencias de moodle a sence por ejemplo, si el curso 2 de moodle corresponde con el 778899 de sence deberás hacer un:

    insert into mdl_course_sence (moodle,sence)
    values (2,778899)

  4. En la tabla mdl_config vamos a insertar una variable nueva que es el password de sence. De esta forma, si por lo que sea cambia el password, solo tienes que actualizar la tabla. Para ello harás:

    insert into mdl_config (name,value)
    values ('sence_pass','55555')

    donde 55555 es el password que tienes que enviar a sence.

  5. Adjunto al mensaje un archivo php que deberá poner en el directorio moodle/lib.

  6. Ahora debes modificar el fichero moodle/lib/moodlelib.php. Para ello, en la línea 1714, verás que hay un:

    return; // user is a member of this course

    Pues bien, justo delante de esa línea, inserta estas 2:

    include_once ("$CFG->libdir/sence.lib.php");
    $kk = registerSence($courseid,$USER->id,$CFG->sence_pass);

    De tal forma que te queden las tres líneas, las dos nuevas y la del return.

  7. A partir de ahora, cada vez que un alumno entre en uno de los cursos que hayas dado de alta en "mdl_course_sence", se enviará la petición correspondiente a "notificaciones.sence.cl" con el password que hay en la tabla "mdl_config" y el identificador de usuario que hay en el campo "userid" de la tabla "mdl_user".

  8. Dicho envío se realiza una vez por curso y por sesión, de tal forma que si el alumno se desconecta y vuelve a conectarse, se enviará otra vez. Y si en la misma sesión entra en 3 cursos, se enviarán tres peticiones, una por curso.

  9. Por último, para comprobar que las peticiones se hacen como es debido, puedes activar el debug en la página de admin/variables. De esa forma, cada vez que se envíe una petición a sence, verás al comienzo de la página lo que se ha enviado.

Y esto es todo. Para terminar, tres observaciones:

  • Cada vez que actualices moodle, tendrás que volver a modificar lo dicho en el punto 6.

  • Cada vez que instales moodle en una nueva máquina y quieras que funcione con sence, tendrás que seguir todos los pasos.

  • Yo todas mis tablas las tengo con el prefijo "mdl". Si el tuyo es otro, úsalo en los pasos anteriores en vez del mío.


A mi me ha funcionado, aunque ahora mismo "notificaciones.sense.cl" parecía estar caído...

Ya me contarás. Un saludo, Eloy. sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Sergio Alfaro -

Eloy,

Funciono sin problemas, eres genial, tenias toda la razón respecto al bug del 1.1 (debug).

Muchas gracias de nuevo, estoy en deuda, biggrin.gif, pero muy contento.

Saludos,

Sergio

 

En respuesta a Sergio Alfaro

Re: Código API

de David Delgado -
Vaya, Eloy, un trabajo muy bueno de desarrollo para Moodle. Es un paso hacia la integración de Moodle con otros sistemas externos que se quiere trabajar para la 1.2. sonrisa Martin debería contratarte en moodle.com guiño En serio, buen trabajo.
En respuesta a David Delgado

Re: Código API

de Diego Andrades -
Hola Eloy sabes realmente tu respuesta es muy clara y me ayudado bastante ..
Pero  necesito  si puedes guiarme con esto. Resulta que ahora  al momento de terminar la session se debe avisar al organismo Sence a otra URL (que solo se diferencia de la Url de inicio de session por la palabra  "fin_sesion"
esta es:

http://notificaciones.sence.cl/fin_sesion?rut=1-9&passwd=3046&curso=12345666

un Ayuda mientras  reviso el script....
En respuesta a Diego Andrades

Re: Código API

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Diego,

he estado echando un vistazo al asunto (que ya no me acordaba).

En la variable $SESSION->sence se almacenan todos los cursos en los que se ha estado durante la sesión de Moodle.

Supongo que lo que habrá que hacer es crear una nueva función en el fichero sence.lib.php que se llame unregisterSence ($moodle_user_id,$sence_pass) o algo parecido. Esa función deberá iterar por todos los cursos presentes en $SESSION->sence e ir enviando la url de desconexión que comentas.

Y, finalmente, tendrás que poner la llamada a la misma en el punto en que se efectua el logout de Moodle (justo despues de la línea "require_once..." en login/logout.php).

Ya me dirá si con esto te apañas...espero que te sirva, ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Diego Andrades -
Hola Eloy mira hice la funcion que me dijiste...

cual es ...
unregisterSence ($moodle_user_id,$sence_pass)
claro que fue una copia de la que hiciste
function registerSence ($moodle_course_id,$moodle_user_id,$sence_pass)

le agregue la variable que no colocaste, y dentro de esta funcion solo cambie la parte del path que colocas:

$path = "/inicio_sesion";

por $path = "/fin_sesion"; que es lo unico que cambia para mandar despues la URL.
mi duda va referente a hacer la llamada de la funcion en el archivo login/logout.php
despues como dices del require_once. Esto seria similar a lo que se pone en el archivo "moodle/lib/moodlelib.php" donde dices que coloque estas 2 lineas antes del return para hacer la llamada cuando inicia session:

include_once ("$CFG->libdir/sence.lib.php");
$kk = registerSence($courseid,$USER->id,$CFG->sence_pass);

Mi duda al no saber especificvamente el manejo de las asignaciones de moodle, es el directorio que se encuentra el logout.php que es distinto al directorio de sence.lib.php
es el libdir que me tare duda -->include_once ("$CFG->libdir/sence.lib.php");

de antemano gracias por la Ayuda


En respuesta a Diego Andrades

Re: Código API

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Bueeeeno,

ahí va el fichero sence.lib.php modificado. Para hacer que envíe el registro a la salida, hacer lo siguiente (todo lo dicho en esta misma discusión para que envíe el registro a la entrada sigue siendo valido).

1. Copiar el fichero sence.lib.php a lib

2. Editar login/logout.php. Justo despues de la línea

require_once("../config.php");

añadir estas dos:

include_once ("$CFG->libdir/sence.lib.php");
$kk = unregisterSence($USER->id,$CFG->sence_pass);

Con esto, el alumno, al hacer el logout, enviará a sence todas las fines de sesion de los cursos en los que haya estado (de los que haya hecho registro en sence anteriormente).

3. Para comprobar que está enviando las altas y las bajas correctamente se puede activar el debug (Administración/Configurar Variables), y así, cada vez que se envie cualquier cosa a sence, saldrá en pantalla el envío u lo que el servidor responde.

Y eso es todo. No lo he comprobado demasiado, pero debería funcionar.

Ciao sonrisa

En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Rodrigo Miranda Gutierrez -
Eloy se te agradece la gran ayuda yo con solo mirar sus preguntas y respuesta he entendido bastante...
Si es que puedo hacer una pregunta me encantaria que me orientaras
de como hacer esto mas automatico ya que al parecer siempre abra que ingresar el id del usuario a mano a la base de datos lo cual no es muy optimo..
el id del usuario es un rut del carnet de identidad de mi pais que se debe mandar al sence , por lo visto ocupan en su conversacion el campo "idnumber" de la tabla mdl_user. Ahora ya que moodle en su formulario de inscripcion de usuarios no pide un Rut , deberia ingresarlo manualmente en la base de datos una vez inscrito el usuario nuevo lo cual es muy complicado de hacer sobre todo si hay gente inscribiendo que no esta muy capacitada para ingresar a la base de datos..
Me puedes orientar mientras investigo aca que archivos debiera modificar para que en el formulario de inscripcion saliera una caja texto pidiendo el ingreso del rut y este se guardara en la tabla mdl_user (campo idnumber que es el campo que veo que usan para sacar el rut posteriormente para mandarlo al Sence).
De antemano agradesco toda la conversacion ya que me ha orientado y a la vez pido ayuda sobre es tema...

Saludos byeeeee....
En respuesta a Rodrigo Miranda Gutierrez

Re: Código API

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Rodrigo, básicamente lo que tienes que hacer es, en el fichero login/signup_form.html, añadir un nuevo campo que para que te pida el idnumber al hacer el alta.

En la línea 17, introduce:

...
if (empty($user->lastname)) {
$user->lastname = "";
}

if (empty($user->idnumber)) {
$user->idnumber = "";
}

if (empty($user->city)) {
$user->city = "";
}


(solo lo que está en negrita, el resto es para que veas dónde ponerlo!!)

Y luego, en el lugar del formulario que quieras que aparezca la casilla para pedir el id number, tienes que incluir las siguientes líneas:

<tr valign="top">
<td align=right><p><?php print_string("idnumber") ?>:</p></td>
<td><input type="text" name="idnumber" size="25" value="<?php p($user->idnumber) ?>" />
<?php if (!empty($err->idnumber)) { formerr($err->idnumber);} ?>
</td>
</tr>



Y eso es todo, así te pedirá el idnumber (llámalo rut si quieres) y se quedará almacenado en la BD al hacer el alta.

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Diego Andrades -
saludos Eloy y gracias por todas tus ayudas pero sabes al momento de "salir"
para que mande el aviso a la url de salida o "fin" me sale un error..
en la linea...
foreach($SESSION->sence as $key => $value)
de la funcion unregisterSence
especificamente este:
Warning: Invalid argument supplied for foreach() in /var/www/html/moodle/lib/sence.lib.php on line 36

Te pido Ayuda...



Saludos y gracias de antemano
En respuesta a Diego Andrades

Re: Código API

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Adjunto nueva versioncilla que evita el Warning (aunque era solo un aviso...).

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Rodrigo Miranda Gutierrez -
Hola Eloy, yo ya me hecho parte de la conversacion que han mantenido con Diego, aunque espero un consejo con respecto a lo de poder agregar el rut(id_number) en el formulario de ingreso de un usuario ya que probe lo que me dijiste pero no sale nada...
Aprovecho tambien de preguntarte, ya que he realizado los pasos que le has detallado a Diego. Resulta que me envia un warning por el archivo sence.lib.php no el que sale al momento de salir el usuario (parece que eso esta bien con el ultimo script que entregaste con eso solucionado) si no que tengo unos documentos subidos al sistema (un curso especificamente) y cuando quiero revisarlos me tira el warning y no los puedo ver, por lo tanto voy al archivo moodle.lib.php
y comento las 2 lineas que habia que agregar antes del return..
y ahi anda bien.. que sera Eloy..
Te Pido sugerencias...

Byeee saludos
En respuesta a Rodrigo Miranda Gutierrez

Re: Código API

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Envíame (por correo) tus archivos:

lib/moodlelib.php
login/signup_form.html

así podré ver si tienes todo bien o no (a mí me funciona con las instrucciones que hay en los mensajes anteriores). Seguro que has puesto el código en su sitio ?

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Carlos Aguirre -

Hola Eloy,

Me han salvado la vida con esta charla, pero tengo algunas preuntas, espero que no sea demaciado tarde.

Cuando activo la variable para debuger, no me aparece nada, ya sea que entre como alumno o como administrador. ¿dónde exactamente debe aparecer el texto con lo que s eenvía a Sence?

Por otro lado, ¿las variables que mensionas han cambiado en la versión actual de moodle?  (v1.5.3)

Gracias.

En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Jose A. Ruiz -

Eloy

muy bueno tus post, pero tengo una duda, tenemos instalado moodle 1.7.1 y la línea que mencionaes del archivo moodle/lib/moodlelib.php "return; // user is a member of this course" no la puedo encontrar, ya que me imagino que las librerías van cambiando deacuerdo a las actualizaciones de versiones de Moodle.

Si me pudieras orientar un poco referente a este tema sería ideal. Muchas gracias.

Nota: Adjunto mi moodlelib para que le pegues un vistazo.

En respuesta a Jose A. Ruiz

Re: Código API

de Ricardo Barrientos Burgué -
En la linea 1804 del archivo moodlelelib.php, versión 1.8+ debes insertar el código que señala Eloy.


En respuesta a Ricardo Barrientos Burgué

Re: Código API

de Miguel Guevara -
Hola buscando una solución para el mismo tema, este es mi aporte. He hecho unas variaciones para no usar una tabla adicional y trabajar con clave y rut ingresándolos en los mismos formularios visuales.

Todo está realizado en base a lo creado por Eloy, he hecho modificaciones necesarias para que funcione con Moodle 1.8, lo he probado y me funciona. Espero les sea útil. La mayor parte del texto es una sutil variación del buen aporte de Eloy. Saludos... Miguel.


1. El código o Rut del usuario que se enviará a SENCE se debe almacenar en el campo IDNUMBER de la tabla USER. Esto se puede hacer desde el formulario de registro de usuarios, en [mostrar avanzadas] NUMERO DE ID.

2. Los ID del curso se deben guardar en la descripción del curs en el campo cuarto NUMERO ID DEL CURSO. Que corresponde al campo idnumber de la tabla COURSE


4. En la CONTRASEÑA DE ACCESO al curso, en el formulario del curso se debe colocar la clave de la OTEC para enviar a Sence, por ej. 55555 que corresponde al campo PASSWORD de la tabla COURSE. No entregar esta clave a los alumnos. Solo se informarán los cursos cuya contraseña sea de 4 dígitos.



5. Adjunto al mensaje un archivo php que deberá poner en el directorio moodle/lib.

6. Ahora debes modificar el fichero moodle/lib/moodlelib.php. Para ello, en la línea 1803, verás que hay un:

return; // User is allowed to see this course

Pues bien, justo delante de esa línea, inserta estas 2:

include_once ("$CFG->libdir/sence.lib.php");
$kk = registerSence($COURSE->id,$USER->id);

De tal forma que te queden las tres líneas, las dos nuevas y la del return.

7. A partir de ahora, cada vez que un alumno entre en uno de los cursos (cuya clave de acceso sea de cuatro dígitos), se enviará la petición correspondiente a "notificaciones.sence.cl" con el password que tiene el curso para el acceso y el identificador de usuario que hay en el campo "userid" de la tabla "mdl_user" (que se puede llenar desde el formulario de registro).

8. Dicho envío se realiza una vez por curso y por sesión, de tal forma que si el alumno se desconecta y vuelve a conectarse, se enviará otra vez. Y si en la misma sesión entra en 3 cursos, se enviarán tres peticiones, una por curso.

9. Por último, para comprobar que las peticiones se hacen como es debido, puedes activar el debug en la página de admin/variables. De esa forma, cada vez que se envíe una petición a sence, verás al comienzo de la página lo que se ha enviado.

10. Además he incluido un mensaje al inicio de la página que indica que se ha notificado al Sence y el estado de la notificación. Aparece sin necesidad de haber activado el Debug.



PARA LOGOUT*****************************************
1. Haber copiado el fichero sence.lib.php a lib

2. Editar login/logout.php. Justo despues de la línea

require_once("../config.php");

añadir estas dos:

include_once ("$CFG->libdir/sence.lib.php");
$kk = unregisterSence($USER->id);


pd. adjunto va sence.lib.php

En respuesta a Miguel Guevara

Re: Código API

de Mariano Garces -
estimado miguel como te puedo contactar?

saludos
En respuesta a Mariano Garces

Re: Código API

de Eduardo Cerda -
eloy, muy buen trabajo, una consulta, tengo que hacer lo mismo pero yo guardo el rut en el campo username, como lo hago para que funcione con esto y no con idnumber, de antemano muchas gracias.
En respuesta a Eduardo Cerda

Re: Código API

de Matias Hernández -
Hola.. excelente trabajo me ha guiado bastante... pero a pesar de eso tengo una pregunta a ver si alguno me puede dar una guia o idea.

Para esto es posible crearlo como modulo? (como? una guia o idea)

y lo otro.. si no es posible como modulo, es posible agregar un panel de administracion para esto, osea para modificar la password del sence y editar/agregar los id de los cursos del sence?

Muchas gracias de antemano
En respuesta a Matias Hernández

Re: Código API

de José Luis Carcamo -

Hola

Si se puede hacer un bloque que maneje todo con Sence, mira esto para saber como crearlo.

http://docs.moodle.org/es/Desarrollo_de_bloques

Existen variables que están disponibles para que las puedas utilizar en un bloque

Ej:

$user_rec->idnumber; // Id donde puedes almacenar el rut

$user_rec->firstname; /

$user_rec->lastname

$COURSE->id; // id del curso

$course_rec->password; //donde puedes cargar la clave de la OTEc

ETC

Con esto puedes construir tu bloque colgándote de lo desarrollado por Eloy y perfeccionado por Miguel Guevara así puedes sacar por pantalla (en el bloque) la respuesta de Sence.

Si eres informático te recomiendo partir por aquí

http://docs.moodle.org/es/Documentaci%C3%B3n_para_Desarrolladores#Gu.C3.ADas_para_desarrolladores

Así conocer la arquitectura y la forma en que esta programado Moodle



Suerte



Jose Luis Carcamo

En respuesta a José Luis Carcamo

Re: Código API

de Matias Hernández -
Gracias por tu respuesta.

Entonces como bloque no como modulo...

La unica duda que me queda, es:

Al construir esto como bloque como hago para que un alumno al logearse en el curso se "active" el aviso a SENCE?, es decir, Eloy lo hacia modificando una linea en un archivo del directorio lib/, agregando un require a sence.lib.php y declarando registerSence(), como bloque como seria?


Gracias
En respuesta a Matias Hernández

Re: Código API

de José Luis Carcamo -
Hola

De la misma forma, ahora solo tienes que hacer el require() desde el codigo del bloque asi solo se realizara la conexion a Sence cuando tengas activado el bloque, el sence.lib.php incluso lo puedes dejar en la carpeta del bloque y no en lib.

if ($role->name == "Estudiante") {
// Variables para sence
include_once ("$CFG->libdir/sence.lib.php");
$senceok = registerSence($COURSE->id,$USER->id,$USER->sesskey);

}

Aqui la sentencia que toma el rol y solo en es caso ejecuta registerSence()

Jose Luis Carcamo
En respuesta a Matias Hernández

Re: Código API

de Sergio Alfaro -
En la Universidad de Chile se ocupa un Módulo sence para la 1.9.4 y en el panel de administración de Moodle tu pones la contraseña sence.

Ese modulo lo armó la empresa Sistemas educacionales Ltda. si quieres mas informacón puedes comunicarte con elsa.herrera@se.cl o directamente a la Universidad con Francisco Herrera fherrera@uchile.cl





En respuesta a Sergio Alfaro

Re: Código API

de Matias Hernández -
Ahora me asalto un nuevo problema... para notificar el logout del alumnos modifique el archivo logout.php para agregar la notificacion...

Además yo modifique la tabla mdl_config (desde el archivo configvars.php) para que apareciera como variable de configuracion la password de sence y la tabla mdl_courses para que contuvieran un nuevo campo... el sence_id.

El problema es que desde el archivo logout.php no puedo acceder al valor de sence_id del curso en el que se estaba antes de presionar el boton logout... (se entiende xD)...
pero si puedo rescatar $USER->username y $CFG->sence_pass .. pero $COURSE->sence_id (o $COURSE->id) no devuelve nada...

Que puedo hacer? alguna idea?

Gracias
En respuesta a Matias Hernández

Re: Código API

de Matias Hernández -
Existe otro modo de hacer esto?, es decir, no hacerlo como bloque, si no que como módulo? alguna documentación...

Muchas gracias de antemano....

PD: Es de mucha importancia, si alguno puede ayudarme con una guia o algo se lo agradeciria muchisimo... es para un ramo en mis estudios xD
En respuesta a Eloy Lafuente (stronk7)

Re: Código API

de Raul Urzua de la Sotta -
Eloy:

Me encuentro implementando un Aula Virtual en Moodle v1.9.8 en una empresa de capacitación que requiere comunicar al Sence, los ingresos y salidas que los alumnos realicen al aula.

Es en ese sentido que la información que aquí aparece, resuelve a esta problemática y me estoy apoyando en ella para también resolverlo.

El problema es que el código que mencionas en el archivo moodle/lib/moodlelib.php (línea 1714, donde debe haber un return;) no corresponde a la versión actual de Moodle, pues en esas líneas aparece otro código.

Puedes, por favor, decirme entonces a que función corresponde ese return;? para así buscarlo en el nuevo código de moodlelib.php.

Busqué la función que permite el logueo o la función que identifica el acceso a un curso, pero no las encontré.

Espero haber sido claro en mi explicación y así puedas ayduarme.

Gracias y saludos.
En respuesta a Raul Urzua de la Sotta

Re: Código API

de dante becerra lagos -

Eetimados,


Me encuentro haciendo pruebas para la integración Moodle Sence. Mi version de Moodle es 3.4 (Build: 20171116) Tal como a Raul tengo el problema de donde editar el archivo moodle/lib/moodlelib.php ya que la linea mencionada no aparece. Pueden dan mayor informacion de donde poner las 2 lineas que hay que añadir?


Gracias desde ya,


Dante Becerra