Hola,
soy nueva en el foro y ando un poco desesperada con la función insert_record. He creado un block para que me devuelva el id de usuario, el id del curso y la hora actual en unix, para saber exactamente el momento que ha hecho click el usuario en cada parte de la plataforma, ya que cuando se logea el $COURSE->id==1.
El problema es el siguiente creo un objeto le paso los datos y los recibe correctamente, pues le hago eco y me da el valor. Cuando le paso el objeto a insert_record, sólo me guarda los datos de $COURSE, el id de usuario y el tiempo me lo dejan a 0 (valor predeterminado en la BD). Me devuelve el id de registro y no me da ningún error. Es decir, hace la inserción correctamente, pero sólo me guarda esos datos.
La versión de Moodle es la 2.5.2+
Pongo el código:
function miperfil() {
global $USER, $COURSE, $DB;
$record = new stdClass();
$record->id='';
$record->course = $COURSE->id;
$record->name = $COURSE->shortname;
$record->userid = $USER->id;
$record->time_now = time();
return $record->id = $DB->insert_record('block_miperfil', $record);
unset($record);
}
luego lo llamo dentro de la clase del block para que me lo muestre:
(lo que hay dentro del if se muestra cuando en la configuración ponemos en display SI)
if(!empty($this->config->display_iduser) && !empty($USER->id)) {
$this->content->text .= '<div class="myprofileitem iduser">';
$this->content->text .= 'id: ' . $USER->id;
$this->content->text .= '</div>';
$this->content->text .= '<div>';
$this->content->text .= 'Tiempo: ' . date("d/m/Y H:i:s");
$this->content->text .= '</div>';
$this->content->text .= '<div>';
$this->content->text .= 'Tiempo unix: ' . time();
$this->content->text .= '</div>';
$this->content->text .= '<div>';
$this->content->text .= 'ID curso: ' . $COURSE->id;
$this->content->text .= '</div>';
$id = $this->miperfil();
$this->content->text .= '<div>';
$this->content->text .= 'ID tabla: ' . $id;
$this->content->text .= '</div>';
}
Envío pantallazo de lo que me devuelve el block.
Por favor, si me pudieseis ayudar os estaría muy agradecida. Gracias.