Source for file layouts.php
Documentation is available at layouts.php
* Libreria di funzioni per la creazione del layout di pagina dell'applicazione.
* @subpackage Function-Libraries
* @author Mario Marcello Verona <marcelloverona@gmail.com>
* @copyright 2007 Mario Marcello Verona
* @license http://www.gnu.org/licenses/gpl.html GNU Public License
* Scrive l'HTML di apertura di una pagina
* @param string $title Il titolo della pagina mostrato nel tag TITLE
* @param array $files Un array di files da includere. Possono essere javascript o css, la funzione li smisterà automaticamente
* @param string $tipo Può essere ad esempio "sottomaschera". In tal caso il layout apparirà differente.
global $pagina,$tipo_nav,$link;
$GLOBALS['layout_APERTO']= 1;
// SMISTA I FILES CSS E JS MANDATI ALLA FUNZIONE
foreach($files as $file){
if(substr($file,- 4,4)== ".css"){
elseif(substr($file,- 3,3)== ".js" || ereg("\.js\??",$file)){
$OUT= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"it\">
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=$CODIFICA\" />
<style type=\"text/css\" media=\"all\">
if($tipo== "sottomaschera"){
$OUT.= "<script language=\"Javascript\" type=\"text/javascript\" src=\"". FRONT_DOCROOT. "/$js\" ></script>\n";
# INSERISCE IL JS PER I POPUP IN TUTTE LE PAGINE (SERVONO se non altro PER L'HELP)...
//echo "<script language=\"Javascript\" type=\"text/javascript\" src=\"".path("js/open_win.js")."\"></script>";
if($tipo!= "sottomaschera" && $tipo!= 'popup'){
$OUTMENU = (isset ($_SESSION['user']['livello'])) ? menu($_SESSION['user']['livello']) : "";
$OUT.= "<div id=\"header\">". $OUTMENU. "</div>\n";
if($tipo== "" || $tipo== 'popup'){
$OUT.= "<div id=\"contenuto\">
* Scrive l'HTML di chiusura di una pagina
$OUTPUT_CLOSE= "<!-- Fine contenuto-->
if(isset ($_SESSION['user'])){
$nome_visualizzato= ($_SESSION['user']['nome']. " ". $_SESSION['user']['cognome']!= ' ') ? $_SESSION['user']['nome']. " ". $_SESSION['user']['cognome'] : $_SESSION['user']['email'];
$OUTPUT_CLOSE.= "<div id=\"identita\">Hai fatto l'accesso come <br /><a href=\"". FRONT_DOCROOT. "/dati_personali.php\">". $nome_visualizzato. "</a> (gruppo:". gid2nome_gruppo($_SESSION['gid']). ")</div>\n";
$OUTPUT_CLOSE.= "<div id=\"back-dx\"> </div>\n";
$OUTPUT_CLOSE.= "\n</body>\n</html>";
* Scrive l'HTML di chiusura di una pagina
return "\n</div>\n</body>\n</html>";
* Scrive l'HTML di chiusura di una pagina
* @param int $livello Livello di amministrazione dell'utente che ha fatto login
function menu($livello= 0){
$MENU[]="<a href=\"statistiche.php\">Statistiche</a>";
if($livello> 1 && ereg('/admin',$_SERVER['PHP_SELF'])){
$MENU[]= "<a href=\"". FRONT_DOCROOT. "/admin/\">Amministrazione</a>";
$MENU[]= "<a href=\"". FRONT_DOCROOT. "/index.php?logout\">Esci</a>";
return "<ul><li>". implode("</li><li>", $MENU). "</li></ul>";
* Funzione di gestione a video degli errori.
* Se lo script in azione va in errore è possibile interrompere lo script e generare l'apertura
* di un errore visibile su pagina.
* La funzione mostra un errore generico a video e manda un'email all'amministratore ed
* allo sviluppatore con il dettaglio dell'errore.
* @param string $tipo_query
* @param string $messaggio_completo
function openError($tipo_query, $messaggio_completo){
// Elimina l'output generato nel contenuto di pagina e vai oltre...
if(isset ($GLOBALS['layout_APERTO']) && $GLOBALS['layout_APERTO']== 1)
// manda una email per il debug
echo openLayout1("Problemi di interrogazione al database");
echo "<h1 class=\"var\">Problemi di interrogazione al database</h1>\n";
echo "<p>L'operazione ha generato un'anomalia.<br />
Se l'evento si verificasse sistematicamente contattare
<a href=\"mailto:". _SYS_ADMIN_MAIL. "\">l'amministratore di sistema</a>.<br />
Ci scusiamo per il disagio.</p>
<p><a href=\"index.php\">Torna alla home</a></p>\n";
* Funzione che richiama un errore esplicitamante
* Può essere richiamata nel codice dove si voglia.
* In caso di condizioni critiche si può scegliere di mandare una email all'amministratore di sistema (di default=true)
* E' possibile inoltre impostare un testo specifico, in caso contrario verrà stampato il messaggio di default
* @param string $messaggio
* @param string $testo_custom
// Elimina l'output generato nel contenuto di pagina e vai oltre...
if(isset ($GLOBALS['layout_APERTO']) && $GLOBALS['layout_APERTO']== 1)
$testo= "Il ". date("d/m/Y \a\l\l\e H:i:s"). " \nsi è verificato il problema: $messaggio\n".
"sul server ". $_SERVER['HTTP_HOST']. " (". $_SERVER['REMOTE_ADDR']. ")\n";
// manda una email per il debug
echo "<h1 class=\"var\">$messaggio</h1>\n";
echo "<p>L'operazione ha generato un'anomalia.<br />
Se l'evento si verificasse sistematicamente contattare
<a href=\"mailto:". _SYS_ADMIN_MAIL. "\">l'amministratore di sistema</a>.<br />
Ci scusiamo per il disagio.</p>
<p><a href=\"index.php\">Torna alla home</a></p>\n";
echo "<p>". $testo_custom. "</p>
<p><a href=\"". FRONT_DOCROOT. "/index.php\">Torna alla home</a></p>\n";
|