¿Y si necesitaras entregar una página sin los CSS ni JS ni el HTML (cabeceras, footer, sidebars) que viene por defecto?
Solo hay que hacer dos cosas:
1. Añadir la propiedad ‘delivery callback’ a tu menu callback
<?php
$items['factura/%node'] = array(
'title' => 'Entrega una factura',
'page callback' => 'generar_factura',
'delivery callback' => 'mi_delivery_page',
'access callback' => TRUE,
);
2. Añadir esta función.
No hace falta modificarla. Si querés cambiarle el nombre no te olvides de modificar también el nombre en el delivery callback del menú.
<?php
/**
* Delivery callback.
*
* Entrega el contenido así como viene sin pasar ni
* por page.tpl.php ni por html.tpl.php
*
*/
function mi_delivery_page($page_callback_result) {
if (isset($page_callback_result) && is_null(drupal_get_http_header('Content-Type'))) {
drupal_add_http_header('Content-Type', 'text/html; charset=utf-8');
}
global $language;
drupal_add_http_header('Content-Language', $language->language);
print $page_callback_result;
drupal_page_footer();
}
Borra cache y listo.
Chau!