Utente: Anonymous

Visualizzazione del contenuto

Gli argomenti trattati fanno riferimento alla versione 5.x di Drupal

In questa fase Drupal visualizza la pagina richiesta utilizzando gli stili del tema impostato e il file page.tpl.php come guida per la costruzione dinamica della pagina.
Per fare questo Drupal chiama la funzione theme('page',$return) a cui passa, come argomenti, il parametro 'page' e il codice HTML del contenuto della pagina preparato nella precedente fase.

La funzione theme()
La funzione theme() individua la funzione corretta da eseguire. In questo caso, in base al parametro passato 'page' , chiamerà:

  • miotema_page() se esiste questa funzione in /miotema/template.php
  • phptemplate_page()se esiste questa funzione in phptemplate.engine >
  • theme_page() altrimenti (questa funzione è sempre presentte in includes/theme.inc )

Generalmente, e consideriamo questo caso, Drupal trova e chiama la funzione phptemplate_page()

La funzione phptemplate_page()
Al suo interno la funzione avvia le seguenti operazioni:

  • Legge e definisce la variabile $mission (missione del sito)
  • Inserisce il path di favicon.ico nel tag <HEAD>
  • Se richieste, riempie le barre laterali (sidebar-left e sidebar-right)

Le barre laterli
Per le barre laterali Drupal definisce la variabile $layout che pone uguale a:left, right, both, none a seconda che sia stata definita la barra laterale sinistra, la destra, entrambe o nessuna. In fase di definizione dello stile del tema, questa variabile può essere usata per definire le dimensioni delle regioni dei contenuti in funzione della presenza o meno delle barre laterali.

Poichè la barre laterali sono costituite da blocchi, Drupal legge tutti i blocchi da visualizzare nella pagina richiesta e genera il corrisondente codice HTML che pone nelle variabili $sidebar_left e $sidebar_right.
Il loop sui blocchi viene eseguito dalla funzione theme_blocks($region), essendo $region la regione da caricare: left o right.
Ogni singolo blocco è formattato con la funzione phptemplate_block() che a sua volta si avvale delle funzioni:

  • _phptemplate_callback() per caricare, nell'array $variables, tutte le variabili da usare nei template
  • phptemplate_default() per individuare il file di template da usare per il rendering
  • _phptemplate_render()a cui viene passato il nome del file (generalmente block.tpl.php) di template e l'array $variables per eseguire la definitiva preparazione del codice HTML del blocco.

Il processo si ripete per il blocco successivo, fino a completare il codice di tutta la barra laterale.

E' possibile generare la funzione miotema_page($return) in template.php per decidere il valore della variabile $show_blocks che consente di nascondere(=false) o mostrare (=true) le barre laterali.

function miotema_page($return) {
	$show_blocks = false
	return phptemplate_page ($return,$show_blocks)
}