Come riportato in Suggerimenti modello Drupal 7 , il suggerimento modello utilizzato di default da Drupal 7 per le pagine è page - [front | internal / path] .tpl.php.
Per una pagina visibile su http://www.example.com/node/1/edit , Drupal cercherà i seguenti file modello:
- Pagina - nodo - edit.tpl.php
- Pagina - nodo - 1.tpl.php
- Pagina - node.tpl.php
- page.tpl.php
Per aggiungere ulteriori suggerimenti, il tema dovrebbe implementare template_preprocess_page () e aggiungere nuovi suggerimenti in $variables['theme_hook_suggestions']
( $variables
è la variabile passata per riferimento alla funzione).
Se lo hai fatto, l'unico motivo per cui il file modello suggerito non viene utilizzato è perché il file non ha un nome corretto: nel caso in cui la pagina mostri una pagina del libro, ad esempio, il file modello dovrebbe essere page - book.tpl .php. Puoi cambiare il codice per il tuo tema e lasciarlo usare il modello page - node-type.tpl.php, se non trova un modello come page - book.tpl.php.
Da notare anche che, in theme_get_suggestions () (che è la funzione chiamata da template_preprocess_page () ) i trattini sono sostituiti da _
, e non viceversa. Il motivo è spiegato in un commento riportato nel codice funzione.
// When we discover templates in drupal_find_theme_templates(),
// hyphens (-) are converted to underscores (_) before the theme hook
// is registered. We do this because the hyphens used for delimiters
// in hook suggestions cannot be used in the function names of the
// associated preprocess functions. Any page templates designed to be used
// on paths that contain a hyphen are also registered with these hyphens
// converted to underscores so here we must convert any hyphens in path
// arguments to underscores here before fetching theme hook suggestions
// to ensure the templates are appropriately recognized.
$arg = str_replace(array("/", "\\", "\0", '-'), array('', '', '', '_'), $arg);