Acceso rápido:
Nivel de contexto de Moodle
A nivel de módulo, sólo tiene que preocuparse de CONTEXT_MODULE. Normalmente, para cada página accesible en tu módulo necesitarías cargar el módulo usando context_module::instance(). La forma de usarlo para los módulos es $context = context_module::instance($cm->id); donde $cm es el objeto del módulo del curso que normalmente tendría de todos modos. El contextid es necesario para cada comprobación de permisos más adelante en todas sus páginas.
Esta función busca una capacidad para un contexto dado y los padres asociados recursivamente. Dependemos en gran medida de esta función para resolver todos los problemas de capacidad. Las funciones heredadas isteacher(), isadmin(), isstudent(), etc. deben ser modificadas en consecuencia.
La carga de capacidades se realiza cuando un usuario se conecta por primera vez. Debido a que es una llamada bastante costosa, sólo la cargamos una vez y almacenamos todo en la sesión. Así que cuando se llama a has_capability(), busca los valores almacenados en la variable de sesión.
Algunos módulos podrían requerir algunas pequeñas reescrituras porque el permiso sólo se comprueba una vez en la parte superior, por ejemplo algunos scripts sólo comprueban isstudent() en la parte superior. Ahora podemos refinar esas capacidades, así que necesitamos poner los cambios de código requeridos (añadir has_capability()) donde se necesita la capacidad específica. Por ejemplo, en un foro comprobamos si el usuario es un estudiante antes de mostrar una página de discusión, ahora necesitamos comprobar los permisos individuales para forum_read y forum_reply.
Salida de Moodle
Los datos se obtuvieron de los 226 participantes mediante un cuestionario estructurado en línea. Se utilizó el enfoque basado en la covarianza del modelo de ecuaciones estructurales para examinar el modelo propuesto. El modelo estructural se probó mediante el método de máxima verosimilitud del análisis de un momento de estructuras para analizar las hipótesis del estudio.
Los resultados sugieren que las expectativas de rendimiento tienen una influencia sustancial en la intención de comportamiento. La expectativa de esfuerzo, el efecto social y los factores facilitadores no tienen efectos sobre la intención de comportamiento. Las condiciones facilitadoras afectan directa y significativamente al uso real de Moodle. Los resultados también revelan que las demandas de aprendizaje, que es un predictor destacado de la presión de tiempo percibida, a su vez afecta directa y significativamente al uso real de Moodle. Por último, la intención conductual tiene una fuerte influencia en el uso real de Moodle.
Aunque el modelo UTAUT 2 se considera una versión nueva y actualizada de UTAUT, no se ha utilizado porque las nuevas variables añadidas, a saber, el precio, el hábito y las motivaciones hedónicas, están menos relacionadas con el contexto y para evitar la paradoja de los encuestados. Además, el uso de la plataforma Moodle en el contexto investigado es obligatorio tanto para los estudiantes como para los instructores. Se sugiere una discusión, ideas, limitaciones y recomendaciones para futuros estudios.
Acceso a Moodle
En esta entrada del blog, me gustaría repasar algunos conceptos básicos de la arquitectura de Moodle. Veremos partes muy comunes pero a veces confusas de Moodle: IDs de instancia, contextos y módulos de curso.
Al crear este curso se realizan una serie de entradas en la base de datos. A continuación resumo lo que se ha creado en las tablas mdl_course y mdl_course_sections (sólo muestro algunas columnas y pocas filas):
Nuestro id de curso es 6 y se han creado varias secciones – una fila en mdl_course_sections para cada sección. Usando el Moodle UI, estoy añadiendo la nueva actividad «Asignación» (nueva en M2.3). La he llamado «Nueva actividad de asignación» y se ha añadido a la primera sección (semana 0) de mi curso.
Una vez que tenemos el identificador del módulo del curso, normalmente queremos obtener el «Objeto del módulo del curso» que contiene toda la información sobre el «coursemodule». Esto se puede hacer con la función de la API de Moodle get_coursemodule_from_id($modulename, $cmid);
Existe una función de la API muy similar get_coursemodule_from_instance($modulename, $instance) que también puede utilizarse para recuperar $cm. Esto puede ser un poco confuso, ya que el nombre de la función de la API termina con _instance, pero el segundo argumento es realmente un id también. Sólo que en este caso, el segundo parámetro es un id de un módulo en su propia tabla. La tabla que almacena información sobre las instancias del módulo «assign» se llama mdl_assign. Si miro dentro de esa tabla, sólo hay una fila – para la actividad que acabo de crear:
Funciones de Moodle
Un curso puede contener, dentro de su propio contexto, una actividad, o una categoría de preguntas del banco de preguntas, que también son contextos. Un contexto puede contener otros contextos y a cada uno de ellos se le pueden asignar roles.
Existe una jerarquía de contextos que ayuda a localizar y definir un espacio específico. Un curso puede tener muchos contextos en su espacio. Estos pueden incluir módulos y bloques de lecciones, asignaciones, foros y concursos.
En general, esta jerarquía permite que un contexto inferior reciba información de un contexto superior. Así, un estudiante en el contexto del Curso A, será considerado inicialmente como un estudiante en un contexto de Cuestionario que se encuentra en el Curso A. O cuando se ha establecido un tema para las categorías del curso de Biología, éste se transmite a Biología 101.
Es posible asignar a un usuario diferentes permisos basados en un contexto específico. Por ejemplo, a un usuario se le puede dar el rol de «estudiante» para un curso, pero se le puede dar el rol de profesor en el contexto de un foro específico. O un usuario puede ser profesor de un curso y alumno en otro.