Problema Theme moodle

Problema Theme moodle

de Angel Jimenez -
Número de respuestas: 3

Hola, he creado un nuevo modulo para moodle, que contiene un enlace a una pagina con un formulario, ahora bien, al abrir la nueva ventana con el formulario, no se me propaga el theme elegido, ¿sabe alguien porque puede ser?

Adjunto el código del bloque -->

class block_conec extends block_list
{
    function init()   
    {
  $this->title = 'Configurar clase virtual';;
        $this->version = 2008080802;
    }
   
    function get_content()
    {
     global $CFG, $USER, $course;
     
  if($this->content !== NULL)
  {
      return $this->content;
     }
     $this->content = new stdClass;
     $this->content->items = array();
     $this->content->icons = '';
     $this->content->footer = '';


     $this->content->items[] = '<a style="margin-top:4px;margin-bottom:-10px;text-align:center;" href="'.$CFG->wwwroot.'/blocks/conec/configurar.php" target="_blank">Configurar</a>';
  
     return $this->content;
    }
  
    function applicable_formats()
    {
     return array('course-view' => true);
 }
}

Promedio de valoraciones: -
En respuesta a Angel Jimenez

Re: Problema Theme moodle

de Xavier Paz -
Al ser una página nueva, debe tener la misma estructura que el resto para que pueda adoptar el tema de apariencia que tenga Moodle en ese contexto. Es decir, que no se propaga automáticamente, sino que tienes "provocarlo" tú.

Veo que el enlace es a una página de configuración ¿es para configurar el bloque? En ese caso, basta con un simple documento html donde no tienes que especificar más que las opciones en una tabla (o cualquier otra estructura) y Moodle incluirá el documento html en el script php de configuración de bloques, por tanto no tendrás que preocuparte por la apariencia, se añade de forma automática.

Si es un script php, tienes que usar el método habitual de Moodle, esto es..

      // Compone y muestra la cabecera

  $strcourses = get_string('courses');
    $strcategories = get_string('categories');

//Composicion de las breadcrumbs
$navlinks = array();
//enlace al curso
$navlinks[] = array('name'=>$course->fullname, 'link' => "$CFG->wwwroot/course/view.php?id=$course->id", 'type' => 'misc');
//informe
$navlinks[] = array('name'=>'Informe','link'=>'','type'=>'misc');
//creamos las breadcrumbs (migas de pan)
$navigation = build_navigation($navlinks);
//mostramos la cabecera
$enlace_css = '<link rel="stylesheet" type="text/css" href="';
$enlace_css .= $CFG->wwwroot.'/blocks/ot_ceim/otceim_inf/styles.css" />';
    echo $enlace_css;
    print_header_simple("$site->shortname: $strcourses", "", $navigation, "", $enlace_css, false,'', '');

//
//Aquí va el contenido
//

//Compone y muestra el pie de pagina
  print_footer();
        exit;

Algunos parámetros tendrás que cambiarlos según tus necesidades, pero más o menos el tema va así. Recuerda de incluir los scripts pertinentes mediante include_once y require_once al principio del todo. Tampoco olvides hacer comprobaciones de seguridad (permisos de usuario, bloquear accesos externos a Moodle, etc..) No son obligatorias pero si recomendables
En respuesta a Xavier Paz

Re: Problema Theme moodle

de Angel Jimenez -

Muchas gracias por la ayuda, me sigue saliendo un problemilla, es que en lugar del theme del curso en el que se encuentra el bloque ya que la configuración es un script php, no la edición del bloque.

$enlace_css = '<link rel="stylesheet" type="text/css" href="';
$enlace_css .= $CFG->wwwroot.'/blocks/ot_ceim/otceim_inf/styles.css" />';

Si esta linea la cambio por la ruta de mi theme a usar, lo que hace es ponerme los dos a la vez, se pisan el standar y el mio.

$enlace_css = '<link rel="stylesheet" type="text/css" href="';
$enlace_css .= $CFG->wwwroot.'/theme/mitema/styles.php" />';

Por lo demás me funciona todo correctamente.

Un saludo.

En respuesta a Angel Jimenez

Re: Problema Theme moodle

de Xavier Paz -
Ups, me culpa... ese extracto de código referente a los estilos CSS fuerza a que se cargue una hoja de estilos CSS externa en vez de la hoja de estilo del tema actual.

Creo que si estableces el valor de la variable $enlace_css como cadena vacía (""), Moodle enlazará por defecto con el tema actual en uso.