|
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 = " <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 <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öglicht das Filtern nach ausgewä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> <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> </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> </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 = ' '; |
|
215 echo "<tr bgcolor='" . $bg . "'><td colspan='2'> </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> </td>"; |
|
224 echo "</tr>\n"; |
|
225 } |
|
226 $vpnr = $row['persknr']; |
|
227 $vabt = $row['abt_name']; |
|
228 } |
|
229 echo "</table></div>\n"; |
|
230 echo "<p> <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'> Leider nichts gefunden für ". $fields["$fnum"] . " wie '$filter'!</p><br />"; |
|
241 echo " <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> |