Crear nuevos campos en los AJUSTES de un curso

Crear nuevos campos en los AJUSTES de un curso

de Lucas Ungaro -
Número de respuestas: 7

Hola estoy utilizando el MOODLE 2.8 y quisiera que en la parte de ajustes de curso se puede agregar una opción, para diferenciar entre si es a distancia o no. Y que ese cambio también se vea en la base de datos. Alguien me podría ayudar?, porque creo que hay que tocar código. 

Seria perfecto que me encaminen un poco o brinden documentación. 


Promedio de valoraciones: -
En respuesta a Lucas Ungaro

Re: Crear nuevos campos en los AJUSTES de un curso

de Franco Pantoja -
Imagen de Moodlers de gran ayuda

Hola

Como bien te comenta Roger, actualmente no hay una opción para incorporar campos personalizados en los cursos, como sí ocurre, por contra, en user (campos personalizados profile_user)


La mejor opción entonces es la que te indica, hacer un nuevo course format, de esa manera no afectaría al core Moodle.

En el nuevo formato de curso, el archivo que nos interesa es lib.php

donde procedemos al set y get de ese campo personalizado.

Saludos!!

En respuesta a Franco Pantoja

Re: Crear nuevos campos en los AJUSTES de un curso

de Lucas Ungaro -

Hola, muchas gracias por la pronta respuesta. Seguí los pasos que me recomendaron de esta pagina https://docs.moodle.org/dev/Course_formats y me cuesta ver como creando y editando un nuevo formato se pueden ver cambios en la opción "Editar ajustes" de un Curso. Debería crear un nuevo campo en la base de datos? y luego hacer un get/set del mismo? Debería hacer uso de las funciones listadas en la librería del link? 

También intenté recrear lo siguiente: https://github.com/frumbert/moodle-course_meta/tree/Moodle2.8.7 con "éxito" pero no logro que los campos se vean reflejados en las caracteristicas de los cursos existentes (tampoco los nuevos).

Mi intención sería en principio agregar un nuevo campo personalizado a los cursos ya existentes, así luego poder filtrarlos y usarlos estadísticamente. El campo en un principio sería un checkbox con la etiqueta "Distancia".

La imagen muestra donde quisiera que aparezca el campo personalizado. 

Quedo a la espera. Cualquier sugerencia es bienvenida. 

Gracias nuevamente.



Adjunto ejemplo.jpg
En respuesta a Lucas Ungaro

Re: Crear nuevos campos en los AJUSTES de un curso

de Franco Pantoja -
Imagen de Moodlers de gran ayuda

Hola Lucas

Es mucho más fácil, si seguimos la lógica Moodle, en el lib.php del course format debemos incorporar el nuevo campo. Por ejemplo, un campo fecha fin (enddate)

$courseformatoptionsedit = array(
                'enddate' => array(
                    'label' => 'Fecha fin',
                    'element_type' => 'date_time_selector',
                ),
}
public function course_format_options($foreditform = false) {
...
                'enddate' => array( // date of end in timestamp format integer value
                    'default' => 'Fecha fin',
                    'type' => PARAM_INT,
                ),
}

De esta forma debería aparecer el campo, recuperarse y guardarse en la base de datos

Espero que pueda serte útil


Saludos!!!

En respuesta a Franco Pantoja

Re: Crear nuevos campos en los AJUSTES de un curso

de Lucas Ungaro -

Perfecto! me sirvió, muchas gracias, es exactamente lo que yo quería. Me quedo asi (es para clasificar a los cursos en semipresencial o distacia):

function course_format_options($foreditform = false) {

...

      'tipoCurso' => array( 

                    'default' => 'Tipo de curso',

                    'type' => PARAM_INT,

                ),

$courseformatoptionsedit = array(

 'tipoCurso' => array(

                    'label' => 'Tipo de curso',

                    'element_type' => 'select',

                    'element_attributes' => array(

                        array(

                            0 => 'distancia',

                            1 => 'semipresencial'

                        )

                    ),

                ),

Tengo una ultima duda, si quisiera que (EN LA PAGINA DE MOODLE) en administración del sitio/ cursos / hacer una opción para que me muestre la cantidad de sitios semipresenciales por ejemplo, en que archivo de moodle tendría que hacer la consulta a la base de datos?, donde tendría que poner mi código?.

De nuevo muchas gracias por responder. 

En respuesta a Lucas Ungaro

Re: Crear nuevos campos en los AJUSTES de un curso

de Franco Pantoja -
Imagen de Moodlers de gran ayuda

A ver si podemos ayudarte Lucas

La tabla que nos interesa es

{course_format_options}

Ahí encontramos 

.courseid 

.name

.value


Recuerda hacer uso de la API Moodle para acceder a la base de datos


Saludos!!