fhiiqm/test/ma_tel_flist_mysql.php
changeset 33 f1a8785434e4
child 34 fc60ef80a7ad
equal deleted inserted replaced
32:c2d325791e24 33:f1a8785434e4
       
     1 <?php
       
     2 
       
     3 /**
       
     4  * @author Bettina Schwarzer, Fritz-Haber-Institut
       
     5  * @copyright 11/2012
       
     6  * 
       
     7  * Telefonliste für FHI-Seite nach aussen
       
     8  * 
       
     9  */
       
    10 
       
    11     error_reporting(E_ALL ^ E_NOTICE);
       
    12 
       
    13     function tab_column($colnum=2,$bez,$sort,$dir,$fcol=0,$fanr=0,$filtb="",$start="",$anzds="25",$id="",$g=0,$tab="",$adr="")
       
    14     {
       
    15       /** beliebige Tabellenspalte mit Sortier-/Filtersymbolen und Links generieren
       
    16         * Parameter
       
    17         * $colnum   SpaltenNr. in SELECT-Statement 
       
    18         * $bez      Spaltenbezeichnung
       
    19         * $sort     aktuelle SortspaltenNr.
       
    20         * $dir      Sortrichtung (ASC/DESC)
       
    21         * $fcol     SpaltenNr. Filter (=0, wenn nicht gefiltert werden soll)
       
    22         * $fanr     aktuelle FilterspaltenNr.
       
    23         * $filtb    Filterbegriff
       
    24         * $start    ab Datensatz $start+1
       
    25         * $anzds    Anzahl angezeigter Datensaetze
       
    26         * $id       fuer spezielle ID als zusaetzl. Filter (Laser-Log)
       
    27         * $g        Gesamtansicht (rag-gefahr-massnahmen-vorsorge)
       
    28         * [$tab     fuer tab-basierte Seite
       
    29         * $adr      wohin gehen (Teilseite)]
       
    30         */
       
    31         
       
    32         if ($colnum == $sort)
       
    33             if ($dir == 'DESC')
       
    34             {
       
    35                 $auf = "auf";
       
    36                 $ab = "ab_activ";
       
    37             }
       
    38             else
       
    39             {
       
    40                 $auf = "auf_activ";
       
    41                 $ab = "ab";
       
    42             }
       
    43         else
       
    44         {
       
    45                 $auf = "auf";
       
    46                 $ab = "ab";
       
    47         }
       
    48         
       
    49         if ($bez == "Haus") $tip = "Haus: A, B, BES, C, D, E, F, FAB, HAR, K, L, M, N, P, Q, R, S, T, U"; else $tip = "Filter";
       
    50         if ($tab > "!")
       
    51         {
       
    52             $addr = $adr;
       
    53             $ank = $tab; 
       
    54         } 
       
    55         else 
       
    56         {
       
    57             $addr = $_SERVER['PHP_SELF'];
       
    58             $ank = "";
       
    59         }
       
    60         if ($fcol>0 && $fanr>0) // Filtern nach Spalte moeglich
       
    61         {
       
    62             if ($fcol == $fanr) $filt = "filter_activ"; else $filt = "filter"; 
       
    63             $filt = "&nbsp;<a href='".$addr."$ank?f=$fcol&s=$sort&d=$dir&st=$start&z=$anzds&i=$id&g=$g'><img src='http://achilleus/fhiiqm/img/$filt.gif' border='0' width='14' hight='11' alt='$tip' title='$tip'></a>";
       
    64         }
       
    65         else
       
    66             $filt="";
       
    67         if ($filtb>'!') $where = "&f=$fanr&b=$filtb&i=$id&g=$g"; else $where="&i=$id&g=$g";
       
    68         echo "<th align='left'>$bez&nbsp;<a href='".$addr."$ank?s=$colnum$where&st=$start&z=$anzds'><img src='http://achilleus/fhiiqm/img/$auf.gif' border='0' width='11' hight='11' alt='sort aufsteigend' title='sort aufsteigend'></a>            
       
    69                   <a href='".$addr."$ank?s=$colnum&d=DESC$where&st=$start&z=$anzds'><img src='http://achilleus/fhiiqm/img/$ab.gif' border='0' width='11' hight='11' alt='sort absteigend' title='sort absteigend'></a>$filt</th>\n";
       
    70     }
       
    71 
       
    72 ?>
       
    73 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
       
    74 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
       
    75 
       
    76 <head>
       
    77 	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
       
    78    	<link href="http://www.fhi-berlin.mpg.de/fhi.css" rel="STYLESHEET" type="TEXT/CSS" media="screen"/> 
       
    79 
       
    80 	<title>MA-Telefonliste</title>
       
    81 </head>
       
    82 
       
    83 <body onload="document.ffilter.filter.focus();">
       
    84     
       
    85 <?php
       
    86     // Felder, nach denen gefiltert werden kann
       
    87     $fields = array(2=>"Name",3=>"Vorname",5=>"Abteilung",6=>"Telefon/Fax",9=>"Haus", 10=>"Raum");
       
    88 //    $fieldf = array(2=>"trim(nachname)",3=>"vorname",5=>"abt_name",6=>"mt.telefon_nr",9=>"geb_ID", 10=>"raum_nr");
       
    89     $fieldf = array(2=>"name",3=>"vorname",5=>"abt_name",6=>"telefon_nr",9=>"geb_ID", 10=>"raum_nr");
       
    90 
       
    91 	$sort   = $_GET["s"];   // Sortierung nach Spalte
       
    92     if (!isset($sort) && !$sort) $sort = $_POST["s"];      
       
    93 
       
    94     $dir    = $_GET["d"];   // Sortierrichtung
       
    95     if (!isset($dir) && !$dir) $dir = $_POST["d"];
       
    96 
       
    97     $fnum   = $_GET["f"];   // Spaltennummer, nach der aktuell gefiltert wird
       
    98     if (!isset($fnum) && !$fnum) $fnum = $_POST["f"];
       
    99 
       
   100     $filter = $_POST["filter"];
       
   101     if (!isset($filter) && !$filter) $filter = $_GET["b"];   
       
   102 
       
   103     $subf   = $_POST["subf"]; // submit
       
   104     
       
   105     if (!isset($fnum) || !$fnum) $fnum = 1;
       
   106     if (!isset($filter) || !$filter) $filter = "";
       
   107     if (!isset($sort) || !$sort) $sort = 2; // Name
       
   108     if (!$dir || $dir < "!")  $dir = "";
       
   109 
       
   110     include_once ($_SERVER["DOCUMENT_ROOT"]. "/fhiiqm/inc/conf.inc.php");
       
   111 //	include_once ("../../../../home/schwarzer/Daten/php/fhiiqm_achilleus/inc/config.inc.php");
       
   112     $conn=mysql_connect($config["server"],$config["user"],$config["passwort"]) or die("Keine Verbindung zum SQL Server");
       
   113     
       
   114     $db=mysql_select_db($config["dbname"],$conn); // or die("Keine Verbindung zur DB fhiiqm");
       
   115 
       
   116     if (mysql_errno())
       
   117     	echo "error after connect und db select: " . mysql_errno() . ": " . mysql_error() . "<br>\n";
       
   118     $sql = "SELECT persknr, name, vorname, titel, abt_name, telefon_nr, telefon_typ, public, geb_ID, raum_nr, email FROM v_tel_list";
       
   119     if ($filter) $wher = " WHERE " . $fieldf[$fnum] . " LIKE " . "'%$filter%'"; else $wher = "";
       
   120     if ($sort == 2) $sort = "2, 3, 5";
       
   121     if ($sort == 5) $sort = "5, 2, 3";
       
   122     if ($sort) $ord = " ORDER BY $sort, 6"; // immer nach Telefon-Nr als 2.
       
   123     $sql .= $wher . $ord;
       
   124     if ($conn && $db)
       
   125     {
       
   126         $result=mysql_query($sql,$conn);
       
   127 //            echo "sql = $sql<br><br>\n";
       
   128 		
       
   129 		if ($result && mysql_num_rows($result))
       
   130         {
       
   131     		$bg1 = "#F8F8F8";
       
   132     		$bg2 = "#DEDFE1";
       
   133     		$bg = "#FFFFFF";
       
   134             $getp = "&s=$sort&d=$dir&f=$fnum&b=$filter"; // Parameter Listenanzeige
       
   135          
       
   136             echo "<div align='center'>\n";
       
   137             echo "<p><b>Mitarbeiter - Telefonliste</b></p>\n";
       
   138             
       
   139             echo "<table border='0' cellspacing='0'>\n";
       
   140             echo "<tr><td class='bigger'>Mittels '<img src='http://achilleus.rz-berlin.mpg.de/fhiiqm/img/auf.gif' border='0' width='11' hight='11' />' / '<img src='http://achilleus.rz-berlin.mpg.de/fhiiqm/img/ab.gif' border='0' width='11' hight='11' />' 
       
   141                 können Sie nach bestimmten Spalten auf- bzw. absteigend sortieren</td></tr>
       
   142                 <tr><td class='bigger'>'<img src='http://achilleus.rz-berlin.mpg.de/fhiiqm/img/filter.gif' border='0' width='14' hight='11' />' erm&ouml;glicht das Filtern nach ausgew&auml;hlten Spalten der Liste</td></tr>
       
   143                 <tr><td class='bigger'>Rote Telefon-/Fax-Nummern sind nur intern erreichbar</td></tr>";
       
   144             if ($edit)
       
   145                 echo "<tr><td class='bigger'>Klick auf '<img src='/fhiiqm/img/edit.gif' border='0' width='11' hight='11'>' - Bearbeiten der Angaben</tr>";
       
   146      
       
   147             echo "</table>\n";
       
   148     
       
   149             echo "</div><p>&nbsp;&nbsp;&nbsp;<a href=/fhiiqm/test/ma_tel_pdf_mysql.php>PDF erstellen</a></p>\n<div align='center'>\n";
       
   150             if (isset($fnum) && $fnum>1 && !$filter && !$subf)
       
   151             {
       
   152                 // Formular anzeigen fuer Filterbegriff
       
   153                 $text = $fields[$fnum];
       
   154                 $azeil = array(10=>'10',20=>'20',25=>'25',50=>'50',100=>'100',9999=>'alle'); // Anzahl gezeigter rows
       
   155                 echo "<form action=" . $_SERVER['PHP_SELF'] . " method='post' enctype='application/x-www-form-urlencoded' id='ffilter' name='ffilter' target='_self'>\n";
       
   156                 echo "<input type='hidden' name='s' value='$sort'>";
       
   157                 echo "<input type='hidden' name='d' value='$dir'>";
       
   158                 echo "<input type='hidden' name='f' value='$fnum'>";
       
   159                 echo "<input type='hidden' name='e' value='$edit'>";
       
   160                 echo "<table width=\"45%\" border=\"0\">\n";
       
   161                 echo "<tr><td>filtern nach $text: </td>";
       
   162                 echo "<td><input id='filter' name='filter' type=\"text\" size=\"30\" maxlength=\"30\" value=\"$filter\"/></td>";
       
   163     /*
       
   164                 echo "<td>Zeilen/Seite?   <select name='z'>\n";
       
   165                 foreach ($azeil as $key=>$val)
       
   166                 {
       
   167                     if ($key == $zeil) $select = "selected"; else $select = "";
       
   168                     echo "<option $select value='$key'>$val</option>\n";
       
   169                 }
       
   170                 echo "</select></td>\n";
       
   171     */
       
   172                 echo "<td><input class=\"button\" type=\"hidden\" value=\"finden\" name=\"subf\" title=\"subf\" /></td></tr></table>\n";
       
   173                 echo "</form>\n";
       
   174                 echo "<p>&nbsp;&nbsp;&nbsp;</p>\n";
       
   175             }
       
   176             echo "<table width='70%'>\n";
       
   177             
       
   178             if ($filter>'!') echo "<tr><td class='bigger' colspan=6>Filter: ". $fields["$fnum"] . " wie '$filter'</td></tr>\n";
       
   179     
       
   180             // Listenkopf generieren
       
   181             echo "<tr bgcolor='#68ACBF'>";
       
   182             tab_column(2,"Name",$sort,$dir,2,$fnum,$filter,$start,$zeil,$edit);
       
   183             tab_column(3,"Vorname",$sort,$dir,3,$fnum,$filter,$start,$zeil,$edit);
       
   184             tab_column(5,"Abteilung",$sort,$dir,5,$fnum,$filter,$start,$zeil,$edit);
       
   185             tab_column(6,"Telefon/Fax",$sort,$dir,6,$fnum,$filter,$start,$zeil,$edit);
       
   186             tab_column(9,"Haus",$sort,$dir,9,$fnum,$filter,$start,$zeil,$edit);
       
   187             tab_column(10,"Raum",$sort,$dir,10,$fnum,$filter,$start,$zeil,$edit);
       
   188             if ($edit && !is_null($_SESSION["recht"]) && in_array("fme", $_SESSION["recht"]))
       
   189                 echo "<th>&nbsp</th>";
       
   190             echo "</tr>\n";
       
   191             while ($row = mysql_fetch_assoc($result)) 
       
   192             {
       
   193     			if ($row["persknr"] != $vpnr)
       
   194                 {
       
   195                     if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
       
   196                     $titel = ($row["titel"])? ", ".$row["titel"] : "" ;
       
   197                     $email = ($row->email)? "<a href='mailto:" .$row['email']. "'>" . $row['name'].$titel."</a>" : $row['name'].$titel;
       
   198                     echo "<tr bgcolor='" . $bg . "'><td >$email</td>";    
       
   199                     echo "<td>".$row['vorname']."</td>";
       
   200                     echo "<td>".$row['abt_name']."</td>";
       
   201         //            echo "<td class=\"left\">$row->telnr " . ($row->telefon_typ == 'fax')? ", " . strtoupper($row->telefon_typ) : "" . "</td>";
       
   202                     $ttyp = ($row["telefon_typ"] == 'fax')? " " . strtoupper($row["telefon_typ"]) : "";
       
   203                     $rot = ($row["public"])? "" : " style=\"color: red;\"";
       
   204                     echo "<td$rot>".$row["telefon_nr"] .$ttyp."</td>";
       
   205                     echo "<td>".$row["geb_ID"]."</td>";
       
   206                     echo "<td>".$row["raum_nr"]."</td>";
       
   207                     if ($edit && !is_null($_SESSION["recht"]) && in_array("fme", $_SESSION["recht"]))
       
   208                         echo "<td><a href='/fhiiqm/ma_tel_ed.php?i=$row->persknr$getp'><img src=\"/fhiiqm/img/edit.gif\" alt='edit' title='edit' border='0'/></a></td>";
       
   209                     echo "</tr>\n";
       
   210                 }
       
   211                 else
       
   212                 {
       
   213                     if ($vabt != $row["abt_name"]) $abt = $row->abt_name;
       
   214                     else $abt = '&nbsp';    
       
   215                     echo "<tr bgcolor='" . $bg . "'><td colspan='2'>&nbsp;</td>";    
       
   216                     $ttyp = ($row["telefon_typ"] == 'fax')? " " . strtoupper($row["telefon_typ"]) : "";
       
   217                     $rot = ($row["public"])? "" : " style=\"color: red;\"";
       
   218                     echo "<td>$abt</td>";
       
   219                     echo "<td$rot>".$row["telefon_nr"] .$ttyp."</td>";
       
   220                     echo "<td>".$row["geb_ID"]."</td>";
       
   221                     echo "<td>".$row["raum_nr"]."</td>";
       
   222                     if ($edit && !is_null($_SESSION["recht"]) && in_array("fme", $_SESSION["recht"]))
       
   223                         echo "<td>&nbsp;</td>";                
       
   224                     echo "</tr>\n";
       
   225                 }
       
   226                 $vpnr = $row['persknr'];
       
   227                 $vabt = $row['abt_name'];
       
   228             }
       
   229             echo "</table></div>\n";
       
   230             echo "<p>&nbsp;&nbsp;&nbsp;<a href=/fhiiqm/test/ma_tel_pdf_mysql.php>PDF erstellen</a></p>\n";
       
   231     
       
   232         }
       
   233         else
       
   234         {
       
   235             echo "<div align=center>";
       
   236             if ($dbc -> error)  
       
   237                 echo "error: " . $dbc -> error . "<br />\n";
       
   238             else
       
   239             {
       
   240                 echo "<p class='red'>&nbsp;&nbsp;&nbsp;Leider nichts gefunden f&uuml;r ". $fields["$fnum"] . " wie '$filter'!</p><br />";
       
   241                 echo "&nbsp;&nbsp;&nbsp;<a href=\"" . $_SERVER["PHP_SELF"] . "?$edit\" target=\"_self\" title=\"Telefonliste\" class=\"sc\">Telefonliste</a></p>\n";
       
   242             }
       
   243             echo "</div>";
       
   244         }
       
   245     }    
       
   246 ?>
       
   247 </body>
       
   248 </html>