Salve a tutti,
ho creato una nuova pagina/file per l'errore 404 e ho chiamato il file page--404.tpl.php e nel file template.php ho inserito il seguente codice:
function miotema_preprocess_page(&$vars) {
$header = drupal_get_http_header("status");
if ($header == "404 Not Found") {
$vars['theme_hook_suggestions'][] = 'page__404';
}
elseif ($header == "403 Forbidden") {
$vars['theme_hook_suggestions'][] = 'page__403';
}
}
il problema è che quando viene visualizzata la pagina, mi riporta prima e dopo il codice che ho nel file page--404.tpl.php il contenuto del file html.tpl.php
Ciò non va bene in quanto mi riporta file js e css che non mi servono rovinando poi anche il template.
Potete aiutarmi?
Anche perchè vorrei creare un layout adhoc per alcuni node.
Ciao Gianfranco, in effetti non dovrebbe succedere, perciò dovresti fare un piccolo debug:
<?php
// mostra l'array vars
drupal_set_message('<pre> ' . print_r($vars['theme_hook_suggestions'], TRUE) . '</pre>');
// eventualmente usa unset per togliere il template precedente
unset($vars['theme_hook_suggestions']);
?>
Ciao ;)
E' tutto molto strano dell'array non mi mostra nulla e con unset non succede nulla!
Eppure mi riporta tutto il codice di html.tpl.php rovinandomi il template.
Ho svuotato la cache, eliminato i cookie e file temporanei dal browser...
Cosa restituisce vars?
function THEME_preprocess_page(&$vars) {
drupal_set_message('<pre> ' . print_r($vars, TRUE) . '</pre>');
}
Ps. forse hai gia fatto, ma visto che il forum è miracolosamente tornato....
Ciao,
dunque se inserisco il debug nel file template.php mi restituisce:
Fatal error: Cannot redeclare monooment_responsive_preprocess_page() (previously declared in /home/sites/all/themes/monooment_responsive/template.php:8) in home/sites/all/themes/monooment_responsive/template.php on line 20
mettendo drupal_set_message(' ' . print_r($vars, TRUE) . ''); nella pagina page--404.tpl.php non mi torna alcun errore o messaggio...
Molto strano...perchè si riporta il codice di html.tpl.php?
Altri consigli, suggerimenti o file da passarmi per testare?