Buenos días!
Estoy realizando mi proyecto de fin de carrera para Moodle, y para ello he creado un bloque en Moodle 1.9. Mi problema es a la hora de asignar permisos "para que sea visible", puesto que es un bloque que solo profesores y administradores deberían ver.
Mi bloque, llamemosle hola, esta situado en moodle/blocks/hola. Dentro de aquí tengo block_hola.php con el siguiente codigo:
<?php
class block_hola extends block_base {
function init() {
$this->title =get_string('hola','block_hola');
$this->version = 2011041316;
}
function get_content() {
if($this->content !== NULL) {
return $this->content;
}
$context = get_context_instance(CONTEXT_SYSTEM);
if(has_capability('block/hola:view', $context)) {
$this->content = new stdClass;
$this->content->text = 'Bloque de prueba';
return $this->content;
}
}
}
?>
Mi problema es que siempre muestra el bloque a profesores y administrador, y NO a estudiantes (así está establecido por defecto en usuarios/permisos/definir roles. En verdad es lo que quería, pero yo quiero manejar esos permisos a código, por tanto me creé mi carpeta db y ahi dentro access.php con el siguiente codigo:
<?php
$block_hola_capabilities = array(
'block/hola:view' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'legacy' => array(
'guest' => CAP_PROHIBIT,
'student' => CAP_PROHIBIT,
'teacher' => CAP_PROHIBIT,
'editingteacher' => CAP_PROHIBIT,
'coursecreator' => CAP_PROHIBIT,
'admin' => CAP_ALLOW
)
)
);
?>
Lo de CAP_PROHIBIT es un ejemplo "crítico" para que no se me muestre excepto a admin. El caso es que no me hace caso, siempre mantiene los permisos por defecto, le ponga lo que le ponga en access.php.
Nota: No se me olvida actualizar la version a traves de notificaciones.
¿Podríais ayudarme?
Un saludo y gracias!