phpDocumentor VFront
Function-Libraries
[ class tree: VFront ] [ index: VFront ] [ all elements ]

Source for file layouts.php

Documentation is available at layouts.php

  1. <?php
  2. /**
  3. * Libreria di funzioni per la creazione del layout di pagina dell'applicazione.
  4. @package VFront
  5. @subpackage Function-Libraries
  6. @author Mario Marcello Verona <marcelloverona@gmail.com>
  7. @copyright 2007 Mario Marcello Verona
  8. @version 0.90
  9. @license http://www.gnu.org/licenses/gpl.html GNU Public License
  10. */
  11.  
  12.  
  13. /**
  14.  * Scrive l'HTML di apertura di una pagina
  15.  *
  16.  * @param string $title Il titolo della pagina mostrato nel tag TITLE
  17.  * @param array $files Un array di files da includere. Possono essere javascript o css, la funzione li smisterà automaticamente
  18.  * @param string $tipo Può essere ad esempio "sottomaschera". In tal caso il layout apparirà differente.
  19.  * @return string HTML
  20.  */
  21. function openLayout1($title,$files=array(),$tipo=''){
  22.  
  23.     global $pagina,$tipo_nav,$link;
  24.  
  25.     $GLOBALS['layout_APERTO']=1;
  26.     
  27.     $css array();
  28.     $js  array();
  29.     
  30. // SMISTA I FILES CSS E JS MANDATI ALLA FUNZIONE    
  31.     foreach($files as $file){
  32.  
  33.         if(substr($file,-4,4)==".css"){
  34.             $css[]=$file;
  35.         }
  36.         elseif(substr($file,-3,3)==".js" || ereg("\.js\??",$file)){
  37.             $js[]=$file;
  38.         }
  39.     
  40.     }
  41.     
  42. $CODIFICA='iso-8859-1';
  43.     
  44. $OUT"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
  45. <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"it\">
  46. <head>
  47. <title>$title</title>
  48. <meta http-equiv=\"Content-Type\" content=\"text/htmlcharset=$CODIFICA\" />
  49. <style type=\"text/css\" media=\"all\">
  50. ";
  51.  
  52.     # DEFAULT CSS
  53.         $OUT.= "@import \"".FRONT_DOCROOT."/sty/base.css\";\n";
  54.         
  55.         if($tipo=="sottomaschera"){
  56.             
  57.             $OUT.= "@import \"".FRONT_DOCROOT."/sty/sottomaschera.css\";\n";
  58.         }
  59.     
  60.  
  61.     # CSS
  62.     foreach($css as $css){
  63.         $OUT.= "@import \"".FRONT_DOCROOT."/$css\";\n";
  64.     }
  65.     
  66. $OUT.= "</style>\n";
  67.  
  68.  
  69.     # JS
  70.     if(count($js)>0){
  71.     
  72.         foreach($js as $js){
  73.         $OUT.= "<script language=\"Javascript\" type=\"text/javascript\" src=\"".FRONT_DOCROOT."/$js\" ></script>\n";
  74.         }
  75.     }
  76.  
  77. # INSERISCE IL JS PER I POPUP IN TUTTE LE PAGINE (SERVONO se non altro PER L'HELP)...
  78. //echo "<script language=\"Javascript\" type=\"text/javascript\" src=\"".path("js/open_win.js")."\"></script>";
  79.  
  80.  
  81. $OUT.= "
  82. </head>";
  83.  
  84.  
  85.  
  86.  
  87.         
  88.         
  89. // LAYOUT 
  90.     $OUT.= "<body>";
  91.     
  92.     
  93.     if($tipo!="sottomaschera" && $tipo!='popup'){
  94.  
  95.         $OUTMENU =(isset($_SESSION['user']['livello'])) ?  menu($_SESSION['user']['livello']"";
  96.         
  97.         $OUT.="<div id=\"header\">".$OUTMENU."</div>\n";
  98.     
  99.     }
  100.  
  101.     if($tipo=="" || $tipo=='popup'){
  102.         
  103.         $OUT.="
  104.         <img class=\"clear\" src=\""._IMG_LOGO."\" alt=\""._NOME_PROJ."\" />";
  105.     }
  106.     
  107.     
  108.     
  109.     
  110.     
  111. $OUT.= "<div id=\"contenuto\">
  112.     <!--CONTENUTO-->
  113.     ";
  114.  
  115.     
  116.  
  117.     return $OUT;
  118. }
  119.  
  120.  
  121.  
  122.  
  123.  
  124. /**
  125.  * Scrive l'HTML di chiusura di una pagina
  126.  *
  127.  * @param mixed $back 
  128.  * @return string HTML
  129.  */
  130. function closeLayout1($back=""){
  131.     
  132.     $OUTPUT_CLOSE="<!-- Fine contenuto-->
  133.     </div>";
  134.     
  135.  
  136.     if(isset($_SESSION['user'])){
  137.         
  138.         if(!function_exists('gid2nome_gruppo')){
  139.             require(FRONT_REALPATH."/inc/func.comuni.php");
  140.         }
  141.         
  142.         $nome_visualizzato($_SESSION['user']['nome']." ".$_SESSION['user']['cognome']!=' '$_SESSION['user']['nome']." ".$_SESSION['user']['cognome'$_SESSION['user']['email'];
  143.         
  144.         $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";
  145.     }
  146.     
  147.     if($back!=""){
  148.         $OUTPUT_CLOSE.="<div id=\"back-dx\">&nbsp;</div>\n";
  149.     
  150.     }
  151.     
  152.     
  153.     $OUTPUT_CLOSE.="\n</body>\n</html>";
  154.     
  155.     return $OUTPUT_CLOSE;
  156. }
  157.  
  158. /**
  159.  * Scrive l'HTML di chiusura di una pagina
  160.  *
  161.  * @return string HTML
  162.  */
  163. function closeLayout2(){
  164.     
  165.     return "\n</div>\n</body>\n</html>";
  166.     
  167. }
  168.  
  169.  
  170. /**
  171.  * Scrive l'HTML di chiusura di una pagina
  172.  *
  173.  * @param int $livello Livello di amministrazione dell'utente che ha fatto login
  174.  * @return string HTML
  175.  */
  176. function menu($livello=0){
  177.     
  178.     $MENU=array();
  179.     
  180. /*    
  181.     if($livello>0){
  182.         $MENU[]="<a href=\"statistiche.php\">Statistiche</a>";
  183.         
  184.     }
  185. */    
  186.     if($livello>&& ereg('/admin',$_SERVER['PHP_SELF'])){
  187.         $MENU[]="<a href=\"".FRONT_DOCROOT."/\">Home</a>";    
  188.     }    
  189.  
  190.  
  191.     if($livello>1){
  192.         $MENU[]="<a href=\"".FRONT_DOCROOT."/admin/\">Amministrazione</a>";    
  193.     }
  194.     
  195.     
  196.     $MENU[]="<a href=\"".FRONT_DOCROOT."/index.php?logout\">Esci</a>";
  197.     
  198.     return "<ul><li>".implode("</li><li>"$MENU)."</li></ul>";
  199.     
  200. }
  201.  
  202.  
  203.  
  204. /**
  205.  * Funzione di gestione a video degli errori.
  206.  * Se lo script in azione va in errore è possibile interrompere lo script e generare l'apertura
  207.  * di un errore visibile su pagina.
  208.  * La funzione mostra un errore generico a video e manda un'email all'amministratore ed
  209.  * allo sviluppatore con il dettaglio dell'errore.
  210.  *
  211.  * @param string $tipo_query 
  212.  * @param string $messaggio_completo 
  213.  */
  214. function openError($tipo_query$messaggio_completo){
  215.     
  216.     
  217.     // Elimina l'output generato nel contenuto di pagina e vai oltre...
  218.     if(isset($GLOBALS['layout_APERTO']&& $GLOBALS['layout_APERTO']==1)
  219.     ob_clean();    
  220.     
  221.     // manda una email per il debug
  222.     mail(_SYS_ADMIN_MAIL.","._DEV_MAIL,"["._NOME_PROJ." DB] Errore DB in $tipo_query",$messaggio_completo);
  223.     
  224.     echo openLayout1("Problemi di interrogazione al database");
  225.     echo "<h1 class=\"var\">Problemi di interrogazione al database</h1>\n";
  226.     
  227.     echo "<p>L'operazione ha generato un'anomalia.<br />
  228.     Se l'evento si verificasse sistematicamente contattare 
  229.     <a href=\"mailto:"._SYS_ADMIN_MAIL."\">l'amministratore di sistema</a>.<br />
  230.     Ci scusiamo per il disagio.</p>
  231.     <p><a href=\"index.php\">Torna alla home</a></p>\n";
  232.     
  233.     echo closeLayout1();
  234.     
  235.     exit;
  236.     
  237. }
  238.  
  239.  
  240.  
  241. /**
  242.  * Funzione che richiama un errore esplicitamante
  243.  * Può essere richiamata nel codice dove si voglia.
  244.  * In caso di condizioni critiche si può scegliere di mandare una email all'amministratore di sistema (di default=true)
  245.  * E' possibile inoltre impostare un testo specifico, in caso contrario verrà stampato il messaggio di default
  246.  *
  247.  * @param string $messaggio 
  248.  * @param bool $email 
  249.  * @param string $testo_custom 
  250.  */
  251. function openErrorGenerico($messaggio,$email=true$testo_custom=""){
  252.     
  253.     
  254.     // Elimina l'output generato nel contenuto di pagina e vai oltre...
  255.     if(isset($GLOBALS['layout_APERTO']&& $GLOBALS['layout_APERTO']==1)
  256.     ob_clean();    
  257.     
  258.     if($email){
  259.         $testo="Il ".date("d/m/Y \a\l\l\e H:i:s")." \nsi è verificato il problema$messaggio\n".
  260.                "sul server ".$_SERVER['HTTP_HOST']." (".$_SERVER['REMOTE_ADDR'].")\n";
  261.         
  262.         // manda una email per il debug
  263.         mail(_SYS_ADMIN_MAIL.","._DEV_MAIL,"["._NOME_PROJ." Error] $messaggio",$testo);
  264.     }
  265.     
  266.     echo openLayout1($messaggioarray("sty/base.css"));
  267.     echo "<h1 class=\"var\">$messaggio</h1>\n";
  268.     
  269.     if($testo_custom==""){
  270.         echo "<p>L'operazione ha generato un'anomalia.<br />
  271.         Se l'evento si verificasse sistematicamente contattare 
  272.         <a href=\"mailto:"._SYS_ADMIN_MAIL."\">l'amministratore di sistema</a>.<br />
  273.         Ci scusiamo per il disagio.</p>
  274.         <p><a href=\"index.php\">Torna alla home</a></p>\n";
  275.     }
  276.     else{
  277.         
  278.         echo "<p>".$testo_custom."</p>
  279.         <p><a href=\"".FRONT_DOCROOT."/index.php\">Torna alla home</a></p>\n";
  280.     }
  281.     
  282.     
  283.     
  284.     echo closeLayout1();
  285.     
  286.     exit;
  287.     
  288. }
  289. ?>

Documentation generated on Sat, 22 Sep 2007 11:50:55 +0200 by phpDocumentor 1.4.0a2