Como tengo que usar la clase \core_course\customfield\course_handler

Como tengo que usar la clase \core_course\customfield\course_handler

de Jose A Valle -
Número de respuestas: 0

Buenos dias

Estoy desarrollando un plugin en Moodle 3.8.9 (Build: 20210510)

El estado del entorno es :

Campo personalizado para curso tipo "select" creado desde la administracion de la plataforma con su lista de valores.

Lo que me sucede:

Dentro del codigo de mi plugin lo he intentado de dos maneras distintas:

-- Codigo Uno

//$field tiene el id de campo de curso que quiero mostrar en mi plugin

$handler = \core_course\customfield\course_handler::create();
$data = $handler->get_instance_data($course->id, true);
$value = $data[$field]->get('value');

// valor del $value = int, que es el id de la cadena del select seleccionada para el id del curso en el que me encuetro.

-- Codigo Dos

 $handler = \core_course\customfield\course_handler::create();
 $data = $handler->get_instance_data($course->id, true);
 if (!empty($data[$field])) {
     $field_controller = $data[$field]->get_field();
     if($field_controller->get('type')== 'select'){
       $valores = $field_controller->get('configdata');
       $value = $valores['options'];
     }else{
       $value = $data[$field]->get('value');
     }
// a pesar de que se en la bbdd  hay informacion en configdata, en $valores es devuelto vacio, se genera una excepcion al recuperar el dato de la clase que hace que no se recupere el valor de la clase.

Mi consulta es.
¿Cual de las dos formas seria la correcta para recuperar el valor de un campo personalizado de  curso tipo select( el valor correspondiente a la cadena, no al id?¿ Donde esta el error para que en un caso me devuelva el id y no el valor y en el otro se lance una excepcion y me devuelva un valor vacio del array de valore? En la pagina de gestion de los cursos ( hay mas de 1000) no ha ocurrido ni un error gestinando ese campo.
Muchas gracias



Promedio de valoraciones: -