phpDocumentor VFront
Administration
[ class tree: VFront ] [ index: VFront ] [ all elements ]

Source for file add.docs.php

Documentation is available at add.docs.php

  1. <?php
  2. /**
  3.  * @desc File per il caricamento dei file di guida per gli amministratori
  4.  * @package VFront
  5.  * @subpackage Administration
  6.  * @author M.Marcello Verona
  7.  * @copyright 2007 M.Marcello Verona
  8.  * @version 0.90
  9.  * @license http://www.gnu.org/licenses/gpl.html GNU Public License
  10.  */
  11.  
  12. // Imposto l'esecuzione massima in 10 minuti
  13. ini_set('max_execution_time',600);
  14.  
  15. include("./inc/conn.php");
  16. include("./inc/layouts.php");
  17. include("./inc/func.comuni.php");
  18. include("./inc/func.frontend.php");
  19.  
  20.  
  21.  
  22. /**
  23.  * @desc Funzione che cerca e sostituisce caratteri accentati ed altri caratteri non-standard
  24.  * @param string $nomefile Il nome del file
  25.  * @return string Il nome del file ripulito
  26.  */
  27. function rinomina_file($nomefile){
  28.     
  29.     $nomefile=str_replace(array('à','è','é','ò','ì','ù'),
  30.                           array('a','e','e','o','i','u'),
  31.                           $nomefile);
  32.     
  33.     $nomefile=preg_replace("'[^\w-.]+'","_",trim($nomefile));
  34.     
  35.     return $nomefile;
  36.  
  37. }
  38.  
  39. /**
  40.  * @desc Funzione per la verifica del MIME del file
  41.  * @param string $nomefile Il nome del file
  42.  * @param string $header_file Header del file
  43.  * @todo Funzione da scrivere ancora.
  44.  * @return bool 
  45.  */
  46. function verifica_tipo_file($nomefile,$header_file){
  47.     
  48.     
  49.     return true;
  50.     
  51. }
  52.  
  53.  
  54.  
  55.  
  56.  
  57. /**
  58.  * @desc Mostra un'immagine a seconda dell'estensione del file
  59.  * @param string $nomefile Il nome del file
  60.  * @return string HTML IMG
  61.  */
  62. function img_filetype($nomefile){
  63.     
  64.     switch (substr($nomefile,-4,4)){
  65.         
  66.         case '.pdf'$mime='pdf.gif'$alt='pdf'break;
  67.         case '.doc'$mime='doc.gif'$alt='documento Word'break;
  68.         case '.xls'$mime='xls.gif'$alt='foglio di calcolo Excel'break;
  69.         case '.zip'$mime='zip.gif'$alt='file compresso zip'break;
  70.         default   $mime='generic.gif'$alt='file'break;
  71.         
  72.         
  73.     }
  74.     
  75.     
  76.     return "<img src=\"img/mime/$mime\" alt=\"$alt\" />";
  77.     
  78. }
  79.  
  80.  
  81.  
  82. /**
  83.  * Funzione che determina la dimensione di un file allegato
  84.  *
  85.  * @param int $id_file 
  86.  * @return string 
  87.  */
  88. function allegato_filesize($id_file){
  89.     
  90.     $file _PATH_ATTACHMENT."/$id_file.dat";
  91.     
  92.     if(file_exists($file)){
  93.         
  94.         $size filesize($file);
  95.         
  96.         if($size>1024){
  97.         
  98.             return round($size/1024)." Kb";
  99.         }
  100.         else{
  101.             return $size." bytes";
  102.         }
  103.     }
  104.     else return 'Dimensione non disponibile, il file sembra inesistente';
  105. }
  106.  
  107.  
  108. ######################################################################
  109. #
  110. #    CASO ELIMINA ALLEGATO
  111. #
  112.  
  113.  
  114. if(isset($_GET['del'])){
  115.     
  116.     $id_da_eliminare=str_replace(_BASE64_PASSFRASE,'',base64_decode($_GET['del']));
  117.     
  118.     $id_da_eliminare=intval($id_da_eliminare);
  119.     
  120.     // elimino dal DB
  121.     $q_del=vmsql_query("DELETE FROM "._TABELLA_ALLEGATO." WHERE codiceallegato=$id_da_eliminare",$link);
  122.     
  123.     $test_del_db(vmsql_affected_rows($link,$q_del)==1true:false;
  124.  
  125.     
  126.     // elimino dal filesystem
  127.     $test_del_fs=unlink(_PATH_ATTACHMENT."/$id_da_eliminare.dat");
  128.     
  129.     if($test_del_db && $test_del_fs){
  130.         header("Location: ".$_SERVER['PHP_SELF']."?t=".$_GET['t']."&id=".$_GET['id']."&az=del&feed=ok");
  131.         
  132.     }
  133.     else{
  134.         header("Location: ".$_SERVER['PHP_SELF']."?t=".$_GET['t']."&id=".$_GET['id']."&az=del&feed=ko");
  135.     }
  136.     
  137.     exit;
  138. }
  139.  
  140.  
  141. #
  142. #
  143. ######################################################################
  144.  
  145.  
  146.  
  147.  
  148.  
  149. #######################################################################
  150. #
  151. #    CASO UPLOAD ESEGUITO
  152. #
  153.  
  154. if(count($_FILES)>0){
  155.     
  156.     
  157.     // variabile per il test finale
  158.     $success=0;
  159.     $tipo_errori_uparray();
  160.     
  161.     // CICLO SUI FILES
  162.     for($i=0;$i<count($_FILES['gfile']['tmp_name']);$i++){
  163.         
  164.         // test sulla correttezza dell'upload
  165.         if(is_file($_FILES['gfile']['tmp_name'][$i]&& $_FILES['gfile']['error'][$i]==0){
  166.             
  167.             $nome_pulito rinomina_file($_FILES['gfile']['name'][$i]);
  168.         }
  169.         else{
  170.             $tipo_errori_up[$i]='generico di upload';
  171.             continue;
  172.         }
  173.         
  174.         
  175.         // Test sul tipo di file
  176.         if(!verifica_tipo_file($nome_pulito,$_FILES['gfile']['type'][$i])){
  177.             $tipo_errori_up[$i]='tipo di file non accettato (vedi estensioni possibili)';
  178.             continue;
  179.         }
  180.         
  181.         
  182.         // INSERISCE IN DATABASE
  183.         
  184.         $sql_ins=sprintf("INSERT INTO "._TABELLA_ALLEGATO."
  185.                  (tipoentita,codiceentita,nomefileall,descroggall,autoreall,lastdata)
  186.                  VALUES ('%s','%s','%s','%s','%s','%s')",
  187.                  $_POST['t'],
  188.                  $_POST['id'],
  189.                  $nome_pulito,
  190.                  '',
  191.                  ucfirst($_SESSION['user']['nome'])." ".ucfirst($_SESSION['user']['cognome']),
  192.                  date('Y-m-d H:i:s')
  193.                  );
  194.  
  195.         
  196.         $q_ins=vmsql_query($sql_ins,$link);
  197.         
  198.         $id_ultimo=vmsql_insert_id($link,_TABELLA_ALLEGATO,'codiceallegato');
  199.         
  200.         $test_move=move_uploaded_file($_FILES['gfile']['tmp_name'][$i],_PATH_ATTACHMENT."/$id_ultimo.dat");
  201.         
  202.         if($test_move){
  203.             
  204.             $success++;
  205.         }
  206.         else{
  207.             $tipo_errori_up[$i]='caricamento file nella cartella impossibile';
  208.             continue;
  209.         }
  210.         
  211.         
  212.         
  213.     }
  214.     
  215.     if($success==count($_FILES['gfile']['tmp_name'])){
  216.         
  217.         header("Location: ".$_SERVER['PHP_SELF']."?t=".$_POST['t']."&id=".$_POST['id']."&feed=ok");
  218.     }
  219.     else{
  220.         header("Location: ".$_SERVER['PHP_SELF']."?t=".$_POST['t']."&id=".$_POST['id']."&feed=ko&msg=".implode("|",$tipo_errori_up));
  221.     }
  222.     
  223.     exit;
  224. }
  225. ########################################################################
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239. ########################################################################
  240. #
  241. #    VISTA PAGINA - QUERY DI RICERCA ALLEGATI
  242. #
  243.  
  244.  
  245.  
  246. $d dir(_PATH_ATTACHMENT."/docs");
  247.  
  248. while (false !== ($entry $d->read())) {
  249.     
  250.     if($entry!='.' && $entry!='..'$FILE_PRESENTI[]=$entry;
  251. }
  252. $d->close();
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263. $files array('sty/linguette.css','js/uploadprogress/BytesUploaded.js','js/uploadprogress/LoadVars.js','js/clona_attach.js','sty/attach.css');
  264.  
  265. $INIZIO_LAYOUTopenLayout1("Allegati",$files);
  266.  
  267. echo str_replace("<body>","<body onload=\"self.focus();\">",$INIZIO_LAYOUT);
  268.  
  269. echo "<h1 style=\"font-size:1.6em;\">Allegati per record <span style=\"color:#666;\">".$_GET['id']."</span> della tabella <span class=\"var\">".$_GET['t']."</span></h1>";
  270.  
  271. echo "<img src=\"./img/flussi.gif\" class=\"img-float\" alt=\"gestione allegati\" />\n";
  272.  
  273.  
  274.  
  275.  
  276.     echo "    
  277.     <script type=\"text/javascript\">
  278.     
  279.         $JS_aggiorna
  280.     
  281.         var nuoviAllegati=0;
  282.         
  283.         var bUploaded = new BytesUploaded('whileuploading.php',500);
  284.     
  285.         var divs = new Array('allegati','nuoviallegati');
  286.     
  287.     
  288.         function eti(ido){
  289.             
  290.             for (var i in divs){
  291.                 document.getElementById('cont-eti-'+divs[i]).style.display='none';
  292.                 document.getElementById('li-'+divs[i]).className='disattiva';
  293.             }
  294.             
  295.             // attiva il selezionato
  296.             document.getElementById('cont-eti-'+ido).style.display='';
  297.             document.getElementById('li-'+ido).className='attiva';
  298.             
  299.         }
  300.     
  301.     
  302.     </script>
  303.     ";
  304.     
  305.  
  306.     echo "    
  307. <div id=\"contenitore-variabili\">
  308.     <div id=\"box-etichette\">
  309.         
  310.         <ul class=\"eti-var-gr\">
  311.  
  312.         
  313.             <li onclick=\"eti('allegati');\" id=\"li-allegati\" class=\"attiva\">Allegati presenti</li>
  314.             "($allegati_ins"<li onclick=\"eti('nuoviallegati');\" id=\"li-nuoviallegati\" class=\"disattiva\">Inserisci allegati</li>" "","
  315.  
  316.         </ul>
  317.     
  318.     </div>";
  319.  
  320.     
  321.     // opzione scarica tutti
  322.     if($num_allegati>=2){
  323.         
  324.         $link_scarica_tutti=" - <a href=\"download.php?type=all&amp;idr=".base64_encode($matrice_info_allegati[0]['codiceallegato']._BASE64_PASSFRASE)."\">Scarica tutti gli allegati</a>";
  325.     }
  326.     else{
  327.         $link_scarica_tutti='';
  328.     }
  329.     
  330.     // LINGUETTA NUOVO FLUSSO
  331.     echo "
  332.     <div class=\"cont-eti\" id=\"cont-eti-allegati\" >
  333.     
  334.         <p>Allegati presenti per questo record: <strong>$num_allegati</strong$link_scarica_tutti</p>
  335.         
  336.         <hr class=\"light2\" />
  337.         ";
  338.     
  339.     
  340.         // MOSTRA GLI ALLEGATI
  341.         for($i=0;$i<count($matrice_info_allegati);$i++){
  342.             
  343.             $dimensione =    allegato_filesize($matrice_info_allegati[$i]['codiceallegato']);
  344.             
  345.             $scarica=(ereg('Dimensione',$dimensione)) """ - <a href=\"download.php?f=".base64_encode($matrice_info_allegati[$i]['codiceallegato']._BASE64_PASSFRASE)."\">Scarica</a>";
  346.             $elimina=($allegati_del" - <span class=\"fakelink-rosso\" onclick=\"if(confirm('Vuoi davvero cancellare questo allegato?')){ window.location='".$_SERVER['PHP_SELF']."?t=$tabella&amp;id=$id&amp;del=".base64_encode($matrice_info_allegati[$i]['codiceallegato']._BASE64_PASSFRASE)."';}\" >Elimina</span>" "";
  347.             
  348.             $estensione=substr($matrice_info_allegati[$i]['nomefileall'],-3,3);
  349.             
  350.             if($estensione=='gif' || $estensione=='jpg' || $estensione=='png'){
  351.                 
  352.                 $immagine='<img src="thumb.php?id='.$matrice_info_allegati[$i]['codiceallegato'].'" alt="'.$matrice_info_allegati[$i]['nomefileall'].'" class="thumb" />';
  353.             }
  354.             else{
  355.                 
  356.                 $immagine img_filetype($matrice_info_allegati[$i]['nomefileall']);
  357.             }
  358.             
  359.             echo "
  360.             <div class=\"allegato\">
  361.                 <div class=\"allegato-img\">".$immagine."</div>
  362.                 <div class=\"allegato-info\">
  363.                     <strong>".$matrice_info_allegati[$i]['nomefileall']."</strong><br />
  364.                     $dimensione $scarica $elimina
  365.                     
  366.                 </div>
  367.             </div>\n";
  368.         }
  369.     
  370.     
  371.     
  372.     
  373.     echo "
  374.     </div>
  375.     ";
  376.     
  377.     
  378.     // LINGUETTA AMMINISTRAZIONE FLUSSI
  379.     if($allegati_ins){
  380.     echo "
  381.     <div class=\"cont-eti\" id=\"cont-eti-nuoviallegati\" style=\"display:none;\">
  382.         <br />
  383.         ";
  384.     ?>
  385.     <form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" onsubmit="bUploaded.start('fileprogress');">
  386.             <div>
  387.                 <div id="contenitore-file"><div><input type="file" name="gfile[]" size="60" /> <span onclick="rimuovi_attach(this);" class="fakelink" style="font-size:0.7em;">rimuovi</span><br /></div></div>
  388.                 
  389.                 <span onclick="clona_attach();" class="fakelink">Aggiungi un altro file</span><br /><br /><br />
  390.                 
  391.                 
  392.                 <input type="hidden" name="t" value="<?php echo $tabella;?>" />
  393.                 <input type="hidden" name="id" value="<?php echo $id;?>" />
  394.                 
  395.                 <input type="submit" name="aggiungi" value="  Invia  " onclick="submit();this.value='Attendere, prego';this.disabled=true;" />
  396.                     
  397.             </div>
  398.         </form>
  399.         <div id="fileprogress" style="font-weight: bold;"> </div>
  400.  
  401. <?php
  402.     
  403.     echo "</div>\n";
  404.     // -- fine clausola nuovi inserimenti
  405.     
  406. echo "</div><!-- fine contenitore -->\n\n";
  407.  
  408.  
  409.  
  410.  
  411. echo closeLayout1();
  412. ?>

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