function print_head($_header = NULL)
 {
     trace('Enter');
     /* Plugin hook: on_header_print_before
      *   Called before the HTML header is sent.
      *   Args: $html: A reference to the HTML header.
      */
     $this->eventbus->emit('on_header_print_before', $this->api);
     if ($_header) {
         echo $_header;
     } elseif (!headers_sent()) {
         header('Content-Type: text/html; charset=utf-8');
         header('Pragma: no-cache');
         header('Cache-control: no-cache');
         trace('rendering header');
         include 'controllers/header_controller.class.php';
         $header = new HeaderController($this->api);
         $header->show($this->get_title());
         trace('rendered header');
     }
     trace('printed header');
     /* Plugin hook: on_header_print_after
      *   Called after the HTML header was sent.
      *   Args: none
      */
     $this->eventbus->emit('on_header_print_after', $this->api);
     trace('Leave');
 }