+ Includes Info mehrere Dokumente
authorBettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Thu, 18 Apr 2013 14:32:42 +0200
changeset 37 d0b1e73eda83
parent 36 4411d3239444
child 38 45c139f74ea4
+ Includes Info mehrere Dokumente
fhiiqm/form/info_file_form.inc.php
fhiiqm/inc/info_file.inc.php
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fhiiqm/form/info_file_form.inc.php	Thu Apr 18 14:32:42 2013 +0200
@@ -0,0 +1,87 @@
+<?php
+
+/**
+ * @author Bettina Schwarzer, Fritz-Haber-Institut
+ * @copyright 04/2013
+ * 
+ * Form: + Info-File (Bezeichnung, Upload Felder)
+ * 
+ */
+
+        if (isset($inf['ifname'])) $anzdoc = count($inf['ifname']); else $anzdoc = 1;
+        echo            
+        "<tr>
+	       <td>Dokumente
+                <br />&nbsp;&nbsp;&nbsp;bitte <u>keine</u> Umlaute<br />&nbsp;&nbsp;&nbsp;in gew&auml;hlten Dateinamen angeben!</td>
+	       <td><div id='adddoc'>
+                <span></span>\nDok-Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name=\"inf[ifname][]\" type=\"text\" size=\"50\" maxlength=\"50\" value=\"". $inf['ifname'][0] ."\" />
+                &nbsp;&nbsp;&nbsp;
+                Schlagwort&nbsp;&nbsp;&nbsp;<input type='text' name=inf[swort][]  size=\"30\" maxlength=\"50\" value='".$inf['swort'][0]."' />";
+            echo "<input class='pr' type='checkbox' id='del_0' name='inf[del][0]' value='1'/>";    
+            echo "&nbsp;&nbsp;&nbsp;<a href=\"javascript:addInputf('adddoc',$anzdoc)\" title=\"weiteres Dokument\"><img src=\"/fhiiqm/img/add.png\" /></a>
+            &nbsp;&nbsp;&nbsp;<a href=\"javascript:markdelInput('adddoc',$anzdoc)\" title=\"l&ouml;schen markiertes Dokument\"><img src=\"/fhiiqm/img/delete.png\" /></a>";
+			if ( is_uploaded_file($_FILES["ifile"]["tmp_name"][0]) && isset($inf['ifname'][0]) && $inf['ifname'][0]<'!')
+			{
+				echo "<br /><span class=\"red\">Dateiname ist erforderlich!</span>\n";
+//				$okn = false;
+			}
+//			else if ($inf['ifname'][0]>='!' && $okn) $okn = true; else $okn = false;
+                
+            if ($sub)
+            {
+        		echo "<br />Upload-Dokument&nbsp;&nbsp;&nbsp;&nbsp;
+        		<input type=\"file\" name=\"ifile[]\" size=\"50\" maxlength=\"50\" value=\"" .$_FILES["ifile"]["name"][0] . "\"/>";
+            }
+            if ($sub || (isset($inf) && !$ok))
+            {
+                if (count($inf['ifname'])>1)
+                {
+                    $i=0;
+                    foreach ($inf['ifname'] as $akt)
+                    {
+                        if ($i>0)
+                        {
+                            echo "<span></span><br />\nDok-Name&nbsp;&nbsp;&nbsp;&nbsp;
+                            <input name=\"inf[ifname][]\" type=\"text\" size=\"50\" maxlength=\"50\" value=\"". $inf['ifname'][$i] ."\" />
+                            &nbsp;&nbsp;&nbsp;
+                            Schlagwort&nbsp;&nbsp;&nbsp;<input type='text' name=inf[swort][]  size=\"30\" maxlength=\"50\" value='".$inf['swort'][$i]."' />";
+                            if (isset($inf['del'])) $cls = "dispil"; else $cls = "pr";
+                            if (isset($inf['del'][$i])) $chk = "checked = ' checked'"; else $chk ="";
+                            echo "<span id='cbl_$i'>&nbsp;&nbsp;&nbsp;<input class='$cls' type='checkbox' id='del_$i' name='inf[del][$i]' value='1'$chk /></span>
+                                <span id='lb_$i' class='$cls'>&nbsp;l&ouml;schen?</span>";    
+                      		if (is_uploaded_file($_FILES["ifile"]["tmp_name"][$i]) && isset($inf['ifname'][$i]) && (is_null($inf['ifname'][$i]) || $inf['ifname'][$i]<'!'))
+            				{
+            					echo "<br><span class=\"red\">Dateiname ist erforderlich!</span>\n";
+//            					$okn = false;
+            				}
+//                			else if ($inf['ifname'][$i]>='!' && $okn) $okn = true; else $okn = false;
+                                
+                            echo "<img src='/fhiiqm/img/nixt.gif' border='0' height='100%' />\n";
+                    		if ($sub)
+                            {
+                                echo "<br />Upload-Dokument&nbsp;&nbsp;&nbsp;&nbsp;
+                        		<input type=\"file\" name=\"ifile[]\" size=\"50\" maxlength=\"50\" value=\"" .$_FILES["ifile"]["name"][$i] . "\"/>";
+                            }
+                        }
+                        $i++;
+                    }
+                }                
+            }
+        echo "
+        </div>";
+                if (count($inf['ifname'])>0)
+                {
+                    $i=0;
+                    foreach ($inf['ifname'] as $akt)
+                    {
+                        if ($inf['ifname'][$i]>='!' && file_exists("infos/".$inf['ifname'][$i]))
+                            echo "<br />Dokument anschauen:&nbsp;<a href='/fhiiqm/infos/" . $inf['ifname'][$i] ."'>" . $inf['ifname'][$i] . "</a>";
+                        $i++;
+                    }
+                 }    
+
+        echo "</td>
+        </tr>\n";
+
+
+?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fhiiqm/inc/info_file.inc.php	Thu Apr 18 14:32:42 2013 +0200
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * @author Bettina Schwarzer, Fritz-Haber-Institut
+ * @copyright 04/2013
+ * 
+ * Upload Info-Files
+ */
+
+            include_once ("inc/file_upload.inc.php");
+            $retf = 1; $ret = 1;
+            $len = strlen($infid)+1;
+            // alte Namen Infodocumente
+            $sql = "SELECT if_filename FROM Info_File WHERE info_ID = $infid ORDER BY if_ID";
+            if ($res = $dbc -> queryObjectArray($sql))
+                foreach ($res as $row)
+                    $ifile_old[] = $row->if_filename;
+
+            // zu loeschende docs auf Server
+            foreach ($inf['ifname'] as $key => &$val)
+            {
+                if (isset($inf['del'][$key]) && $inf['del'][$key] && $val)
+                {
+                    $retf  = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$val);  // Loeschen altes File auf Server
+                    $val = null;
+                }   
+            }            
+            // upload File, wenn vorhanden
+            if (isset($_FILES) && is_array($_FILES))
+            {
+                foreach ($inf['ifname'] as $key => &$filena)
+                {
+                    $filena = gen_filename($filena,$_FILES['ifile']['name'][$key],$infid,0);
+                    if ($_FILES["ifile"]["error"][$key] == UPLOAD_ERR_NO_FILE)
+                    {
+                        if ($filena > "!" && $infid."_".$filena != $ifile_old[$key])
+                        {
+                            if (substr($filena,0,$len) != "$infid_") $filenam = $infid . "_" . $filena; else $filenam = $filena;
+                            $retf  = $retf && mod_file("/var/www/fhiiqm/infos",$infid,$filenam,"upd",$ifile_old[$key]);  // Umbenennen alte Datei
+                        }   
+                        elseif ((!$filena || $filena == '') && isset($ifile_old[$key]))
+                            $retf  = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$ifile_old[$key]);  // Loeschen alte Datei
+                        else    //kein Upload, keine Dateinamenaenderung
+                            $retf = 1;
+                    }
+                    if ($_FILES["ifile"]["error"][$key] == UPLOAD_ERR_OK)
+                    {
+                        if (isset($ifile_old[$key]) && $filena > "!" && $infid."_".$filena != $ifile_old[$key])
+                        {
+                            $retf  = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$ifile_old[$key]);  // Loeschen alte Datei
+                        }    
+                    }
+                }
+                if (isset($_FILES['ifile']['error']) && is_array($_FILES['ifile']['error']) && in_array(0,$_FILES['ifile']['error']))
+                {    
+                    $ret = upload_multif("ifile", $inf['ifname'], $infid, $dir="infos");
+                    if ($ret) echo "<p class='green'><b>Dateien zu ID '$infid' wurden erfolgreich hochgeladen.</b></p>\n";
+                    else echo "<p class='red'><b>Upload für einige Dateien zu ID '$infid' ist fehlgeschlagen.</b></p>\n";
+                }
+                else $ret = 1;
+            }
+
+
+?>
\ No newline at end of file