40
|
1 |
<?php
|
|
2 |
|
|
3 |
/**
|
|
4 |
* @author Bettina Schwarzer - Fritz-Haber-Institut
|
|
5 |
* @copyright 08/2013
|
|
6 |
*
|
|
7 |
* Telefonliste ohne Anmeldung
|
|
8 |
*
|
|
9 |
* $_GET["e"] = 1, ='editieren', muss gesetzt sein
|
|
10 |
*
|
|
11 |
*/
|
|
12 |
|
|
13 |
error_reporting(E_ALL ^ E_NOTICE);
|
|
14 |
|
|
15 |
if (isset($_GET["i"]) && $_GET["i"]) $edit = $_GET["i"]; // wegen tab_column, "i" als "e" missbraucht -> editieren ermoeglichen
|
|
16 |
if (!$edit) $edit = $_GET["e"];
|
|
17 |
if (!$edit) $edit = $_POST["e"];
|
|
18 |
if (isset($edit) && $edit)
|
|
19 |
{
|
|
20 |
session_start();
|
|
21 |
if (! isset($_SESSION["userid"]))
|
|
22 |
{
|
|
23 |
include_once ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
|
|
24 |
login($_SERVER["PHP_SELF"]."?e=$edit");
|
|
25 |
exit;
|
|
26 |
}
|
|
27 |
|
|
28 |
if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("mtr",$_SESSION["recht"]) && !in_array("mte",$_SESSION["recht"])))
|
|
29 |
{
|
|
30 |
header("Location: start.php");
|
|
31 |
exit;
|
|
32 |
}
|
|
33 |
// print_r ($_SESSION); echo "<br />";
|
|
34 |
}
|
|
35 |
?>
|
|
36 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
37 |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
38 |
|
|
39 |
<head>
|
|
40 |
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
|
41 |
<link href="http://achilleus.rz-berlin.mpg.de/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" media="screen"/>
|
|
42 |
<link href="http://achilleus.rz-berlin.mpg.de/fhiiqm/css/db_print.css" rel="STYLESHEET" type="TEXT/CSS" media="print"/>
|
|
43 |
|
|
44 |
<title>MA/O-Telefonliste</title>
|
|
45 |
</head>
|
|
46 |
|
|
47 |
<body onload="document.ffilter.filter.focus();">
|
|
48 |
|
|
49 |
<?php
|
|
50 |
if (isset($edit) && $edit)
|
|
51 |
{
|
|
52 |
echo " ";
|
|
53 |
echo "<div class=\"float-br smaller\" valign='top'>";
|
|
54 |
echo " user: " . $_SESSION["userid"];
|
|
55 |
echo " <a class='sc' href='/fhiiqm/logout.php' title='Session beenden'>logout</a></div>\n";
|
|
56 |
echo "<div class=\"float-r\"><img src=\"img/group.png\" border=\"0\" alt=\"Telefonliste\" title=\"Telefonliste\"/></div>\n";
|
|
57 |
}
|
|
58 |
|
|
59 |
// Felder, nach denen gefiltert werden kann
|
|
60 |
$fields = array(2=>"Name",3=>"Vorname",5=>"Abteilung",6=>"Arbeitsgruppe",7=>"Telefon/Fax",9=>"Haus", 10=>"Raum");
|
|
61 |
// $fieldf = array(2=>"trim(nachname)",3=>"vorname",5=>"abt_name",6=>"mt.telefon_nr",9=>"geb_ID", 10=>"raum_nr");
|
|
62 |
$fieldf = array(2=>"name",3=>"vorname",5=>"abt_name",6=>"ag",7=>"telefon_nr",9=>"geb_ID", 10=>"raum_nr");
|
|
63 |
|
|
64 |
$sort = $_GET["s"]; // Sortierung nach Spalte
|
|
65 |
if (!isset($sort) && !$sort) $sort = $_POST["s"];
|
|
66 |
|
|
67 |
$dir = $_GET["d"]; // Sortierrichtung
|
|
68 |
if (!isset($dir) && !$dir) $dir = $_POST["d"];
|
|
69 |
|
|
70 |
$fnum = $_GET["f"]; // Spaltennummer, nach der aktuell gefiltert wird
|
|
71 |
if (!isset($fnum) && !$fnum) $fnum = $_POST["f"];
|
|
72 |
|
|
73 |
$filter = $_POST["filter"];
|
|
74 |
if (!isset($filter) && !$filter) $filter = $_GET["b"];
|
|
75 |
|
|
76 |
$subf = $_POST["subf"]; // submit
|
|
77 |
|
|
78 |
if (!isset($fnum) || !$fnum) $fnum = 1;
|
|
79 |
if (!isset($filter) || !$filter) $filter = "";
|
|
80 |
if (!isset($sort) || !$sort) $sort = 2; // Name
|
|
81 |
if (!$dir || $dir < "!") $dir = "";
|
|
82 |
// print_r ($_REQUEST); echo "<br /><br />";
|
|
83 |
include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
|
|
84 |
include_once ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
|
|
85 |
|
|
86 |
$dbc2 = new dbconnection('mitarbeiter');
|
|
87 |
/*
|
|
88 |
$sql = "SELECT m.persknr, TRIM(nachname) as name, vorname, titel, abt_name, mt.telefon_nr, telefon_typ, public, geb_ID, raum_nr, email
|
|
89 |
FROM Mitarbeiter m LEFT OUTER JOIN
|
|
90 |
Abteilung a ON m.abt_tel=a.abt_ID LEFT OUTER JOIN
|
|
91 |
MA_Telefon mt ON m.persknr=mt.persknr LEFT OUTER JOIN
|
|
92 |
Telefon t ON mt.telefon_nr=t.telefon_nr LEFT OUTER JOIN
|
|
93 |
Raum r ON t.raum_ID = r.raum_ID
|
|
94 |
WHERE aktiv>0 AND (m.abt_tel <> 7 OR m.abt_tel IS NULL)
|
|
95 |
UNION
|
|
96 |
SELECT m.persknr, TRIM(nachname) as name, vorname, titel, IFNULL(rag_bez,'INF') as abt_name, mt.telefon_nr, telefon_typ, public, geb_ID, raum_nr, email
|
|
97 |
FROM Mitarbeiter m LEFT OUTER JOIN
|
|
98 |
MA_Telefon mt ON m.persknr=mt.persknr INNER JOIN
|
|
99 |
Telefon t ON mt.telefon_nr=t.telefon_nr LEFT OUTER JOIN
|
|
100 |
Raum r ON t.raum_ID = r.raum_ID LEFT OUTER JOIN
|
|
101 |
MA_RaumArbGruppe ma ON m.persknr=ma.persknr LEFT OUTER JOIN
|
|
102 |
RaumArb_Gruppe rag ON ma.rag_ID=rag.rag_ID
|
|
103 |
WHERE aktiv>0 AND m.abt_tel=7";
|
|
104 |
*/
|
|
105 |
// $sql = "SELECT persknr, name, vorname, titel, abt_name, telefon_nr, telefon_typ, public, geb_ID, raum_nr, email FROM v_tel_list";
|
|
106 |
// Raum zu Mitarbeiter und nicht zu Telefon
|
|
107 |
if ($edit) // auch ehemalige MA
|
|
108 |
// $sql = "SELECT persknr, name, vorname, titel, abt_name, telefon_nr, telefon_typ, public, sort, geb_ID, raum_nr, email, aktiv FROM v_tel_list";
|
|
109 |
$sql = "SELECT persknr, name, vorname, titel, abt_name, ag, telefon_nr, telefon_typ, public, sort, geb_ID, raum_nr, email, aktiv FROM v_tel_list_ag
|
|
110 |
WHERE 1=1";
|
|
111 |
else
|
|
112 |
// $sql = "SELECT persknr, name, vorname, titel, abt_name, telefon_nr, telefon_typ, public, sort, geb_ID, raum_nr, email, aktiv FROM v_tel_list_ma_raum";
|
|
113 |
$sql = "SELECT persknr, name, vorname, titel, abt_name, ag, telefon_nr, telefon_typ, public, sort, geb_ID, raum_nr, email, aktiv
|
|
114 |
FROM v_tel_list_ag WHERE aktiv > 0";
|
|
115 |
if ($filter)
|
|
116 |
{
|
|
117 |
if ($fnum > 3)
|
|
118 |
$wher = " AND " . $fieldf[$fnum] . " LIKE " . "'%$filter%'";
|
|
119 |
else
|
|
120 |
$wher = " AND " . $fieldf[$fnum] . " LIKE " . "'$filter%'";
|
|
121 |
}
|
|
122 |
else $wher = "";
|
|
123 |
// intern/extern
|
|
124 |
$ip=getenv("REMOTE_ADDR");
|
|
125 |
$ippart=explode(".",$ip);
|
|
126 |
if (($ippart[0] == 141 && $ippart[1] == 14) || ($ippart[0] == 172 && $ippart[1] == 16))
|
|
127 |
$wip = "";
|
|
128 |
else
|
|
129 |
$wip = " AND public=1 ";
|
|
130 |
|
|
131 |
if ($sort == 2) $so = "name COLLATE latin1_general_ci $dir, 1, 3, 5, 6";
|
|
132 |
// if ($sort == 2) $sort = "2, 3, 5";
|
|
133 |
elseif ($sort == 5) $so = "5 $dir, 6, name COLLATE latin1_general_ci, 1, 3";
|
|
134 |
// if ($sort == 5) $sort = "5, 2, 3";
|
|
135 |
else $so = "$sort $dir ";
|
|
136 |
if ($so) $ord = " ORDER BY $so, IFNULL(sort,99), 7 "; // immer nach Telefon-Nr als 2.
|
|
137 |
|
|
138 |
$sql .= $wher . $wip . $ord;
|
|
139 |
// echo "sql = $sql<br /><br />";
|
|
140 |
$result = $dbc2 ->queryObjectArray($sql);
|
|
141 |
|
|
142 |
if ($result)
|
|
143 |
{
|
|
144 |
$bg1 = "#F8F8F8";
|
|
145 |
$bg2 = "#DEDFE1";
|
|
146 |
$bg = "#FFFFFF";
|
|
147 |
$getp = "&s=$sort&d=$dir&f=$fnum&b=$filter"; // Parameter Listenanzeige
|
|
148 |
|
|
149 |
echo "<div align='center'>\n";
|
|
150 |
echo "<p><b>Mitarbeiter/Objekte - Telefonliste</b></p>\n";
|
|
151 |
|
|
152 |
echo "<table border='0' cellspacing='0'>\n";
|
|
153 |
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' />'
|
|
154 |
können Sie nach allen Spalten auf- bzw. absteigend sortieren</td></tr>
|
|
155 |
<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 allen Spalten der Liste</td></tr>";
|
|
156 |
if ($edit)
|
|
157 |
{
|
|
158 |
echo "<tr><td class='bigger'>Klick auf '<img src='/fhiiqm/img/edit.gif' border='0' width='11' hight='11'>' - Bearbeiten der Angaben</td></tr>";
|
|
159 |
echo "<tr><td class='bigger'><span style='color: orange; font-size: 1em;'>Orange</span> <span style='background-color: #FFCC88; font-size: 1em;'>hinterlegte</span> Zeilen markieren ausgeschiedenen Mitarbeiter</td></tr>";
|
|
160 |
}
|
|
161 |
echo "<tr><td class='bigger'><span style='color: red; font-size: 1em;'>Rote</span> Telefon-/Fax-Nummern sind nur intern sichtbar</td></tr>";
|
|
162 |
echo "</table>\n";
|
|
163 |
|
|
164 |
echo "</div><p> <a href='/fhiiqm/ma_tel_pdf_mc.php?e=$edit$getp'>PDF erstellen</a></p>\n<div align='center'>\n";
|
|
165 |
if (isset($fnum) && $fnum>1 && !$filter && !$subf)
|
|
166 |
{
|
|
167 |
// Formular anzeigen fuer Filterbegriff
|
|
168 |
$text = $fields[$fnum];
|
|
169 |
$azeil = array(10=>'10',20=>'20',25=>'25',50=>'50',100=>'100',9999=>'alle'); // Anzahl gezeigter rows
|
|
170 |
echo "<form action=" . $_SERVER['PHP_SELF'] . " method='post' enctype='application/x-www-form-urlencoded' id='ffilter' name='ffilter' target='_self'>\n";
|
|
171 |
echo "<input type='hidden' name='s' value='$sort'>";
|
|
172 |
echo "<input type='hidden' name='d' value='$dir'>";
|
|
173 |
echo "<input type='hidden' name='f' value='$fnum'>";
|
|
174 |
echo "<input type='hidden' name='e' value='$edit'>";
|
|
175 |
echo "<table width=\"45%\" border=\"0\">\n";
|
|
176 |
echo "<tr><td>filtern nach $text: </td>";
|
|
177 |
echo "<td><input id='filter' name='filter' type=\"text\" size=\"30\" maxlength=\"30\" value=\"$filter\"/></td>";
|
|
178 |
/*
|
|
179 |
echo "<td>Zeilen/Seite? <select name='z'>\n";
|
|
180 |
foreach ($azeil as $key=>$val)
|
|
181 |
{
|
|
182 |
if ($key == $zeil) $select = "selected"; else $select = "";
|
|
183 |
echo "<option $select value='$key'>$val</option>\n";
|
|
184 |
}
|
|
185 |
echo "</select></td>\n";
|
|
186 |
*/
|
|
187 |
echo "<td><input class=\"button\" type=\"hidden\" value=\"finden\" name=\"subf\" title=\"subf\" /></td></tr></table>\n";
|
|
188 |
echo "</form>\n";
|
|
189 |
echo "<p> </p>\n";
|
|
190 |
}
|
|
191 |
|
|
192 |
// Schnellsuche Namen
|
|
193 |
echo "<p>";
|
|
194 |
for ($j=65; $j<91; $j++)
|
|
195 |
{
|
|
196 |
echo "<a href='". $_SERVER["PHP_SELF"] . "?e=$edit&f=2&b=". chr($j)."' target=\"_self\" title=\"Telefonliste\" class=\"sc\">".chr($j)." </a>";
|
|
197 |
}
|
|
198 |
echo "</p>\n";
|
|
199 |
echo "<table width='75%'>\n";
|
|
200 |
|
|
201 |
if ($filter>'!') echo "<tr><td class='bigger' colspan=6>Filter: ". $fields["$fnum"] . " wie '$filter'</td></tr>\n";
|
|
202 |
|
|
203 |
// Listenkopf generieren
|
|
204 |
echo "<tr bgcolor='#68ACBF'>";
|
|
205 |
tab_column(2,"Name",$sort,$dir,2,$fnum,$filter,$start,$zeil,$edit);
|
|
206 |
tab_column(3,"Vorname",$sort,$dir,3,$fnum,$filter,$start,$zeil,$edit);
|
|
207 |
tab_column(5,"Abteilung",$sort,$dir,5,$fnum,$filter,$start,$zeil,$edit);
|
|
208 |
tab_column(6,"Arbeitsgruppe",$sort,$dir,6,$fnum,$filter,$start,$zeil,$edit);
|
|
209 |
tab_column(9,"Haus",$sort,$dir,9,$fnum,$filter,$start,$zeil,$edit);
|
|
210 |
tab_column(10,"Raum",$sort,$dir,10,$fnum,$filter,$start,$zeil,$edit);
|
|
211 |
tab_column(7,"Telefon/Fax",$sort,$dir,7,$fnum,$filter,$start,$zeil,$edit);
|
|
212 |
if ($edit && !is_null($_SESSION["recht"]) && in_array("mte", $_SESSION["recht"]))
|
|
213 |
echo "<th> </th>";
|
|
214 |
echo "</tr>\n";
|
|
215 |
foreach ($result as $row)
|
|
216 |
{
|
|
217 |
if ($row->persknr != $vpnr)
|
|
218 |
{
|
|
219 |
if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
|
|
220 |
$titel = ($row->titel)? ", $row->titel" : "" ;
|
|
221 |
$email = ($row->email)? "<a href='mailto:$row->email'>$row->name$titel</a>" : "$row->name$titel";
|
|
222 |
if ($row->aktiv == 0) $class = " class='bgmark'"; else $class="";
|
|
223 |
echo "<tr$class bgcolor='" . $bg . "'><td>$email</td>";
|
|
224 |
echo "<td>$row->vorname</td>";
|
|
225 |
echo "<td>$row->abt_name</td>";
|
|
226 |
echo "<td>$row->ag</td>";
|
|
227 |
// echo "<td class=\"left\">$row->telnr " . ($row->telefon_typ == 'fax')? ", " . strtoupper($row->telefon_typ) : "" . "</td>";
|
|
228 |
$ttyp = ($row->telefon_typ == 'fax')? " " . strtoupper($row->telefon_typ) : "";
|
|
229 |
$rot = ($row->public)? "" : " class=\"red\"";
|
|
230 |
echo "<td>$row->geb_ID</td>";
|
|
231 |
echo "<td>$row->raum_nr</td>";
|
|
232 |
if ($row->sort == 1)
|
|
233 |
echo "<td$rot><b>$row->telefon_nr</b> $ttyp</td>";
|
|
234 |
else
|
|
235 |
echo "<td$rot>$row->telefon_nr $ttyp</td>";
|
|
236 |
if ($edit && !is_null($_SESSION["recht"]) && in_array("mte", $_SESSION["recht"]))
|
|
237 |
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>";
|
|
238 |
echo "</tr>\n";
|
|
239 |
}
|
|
240 |
else
|
|
241 |
{
|
|
242 |
if ($vabt != $row->abt_name) $abt = $row->abt_name;
|
|
243 |
else $abt = ' ';
|
|
244 |
if ($vag != $row->ag) $ag = $row->ag;
|
|
245 |
else $ag = ' ';
|
|
246 |
if ($vtel != $row->telefon_nr)
|
|
247 |
{
|
|
248 |
$ttyp = ($row->telefon_typ == 'fax')? " " . strtoupper($row->telefon_typ) : "";
|
|
249 |
$rot = ($row->public)? "" : " class=\"red\"";
|
|
250 |
$tel = $row->telefon_nr;
|
|
251 |
}
|
|
252 |
else
|
|
253 |
{
|
|
254 |
$tel = ' ';
|
|
255 |
$ttyp = '';
|
|
256 |
}
|
|
257 |
echo "<tr bgcolor='" . $bg . "'><td colspan='2'> </td>";
|
|
258 |
echo "<td>$abt</td>";
|
|
259 |
echo "<td>$ag</td>";
|
|
260 |
echo "<td> </td>";
|
|
261 |
echo "<td> </td>";
|
|
262 |
if ($row->sort == 1)
|
|
263 |
echo "<td$rot><b>$tel</b> $ttyp</td>";
|
|
264 |
else
|
|
265 |
echo "<td$rot>$tel $ttyp</td>";
|
|
266 |
if ($edit && !is_null($_SESSION["recht"]) && in_array("mte", $_SESSION["recht"]))
|
|
267 |
echo "<td> </td>";
|
|
268 |
echo "</tr>\n";
|
|
269 |
}
|
|
270 |
$vpnr = $row->persknr;
|
|
271 |
$vabt = $row->abt_name;
|
|
272 |
$vag = $row->ag;
|
|
273 |
$vtel = $row->telefon_nr;
|
|
274 |
}
|
|
275 |
echo "</table></div>\n";
|
|
276 |
echo "<p> <a href='/fhiiqm/ma_tel_pdf_mc.php?e=$edit$getp'>PDF erstellen</a></p>\n";
|
|
277 |
|
|
278 |
}
|
|
279 |
else
|
|
280 |
{
|
|
281 |
echo "<div align=center>";
|
|
282 |
if ($dbc -> error)
|
|
283 |
echo "error: " . $dbc -> error . "<br />\n";
|
|
284 |
else
|
|
285 |
{
|
|
286 |
echo "<p class='red'> Leider nichts gefunden für ". $fields["$fnum"] . " wie '$filter'!</p><br />";
|
|
287 |
echo " <a href=\"" . $_SERVER["PHP_SELF"] . "?e=$edit\" target=\"_self\" title=\"Telefonliste\" class=\"sc\">Telefonliste</a></p>\n";
|
|
288 |
}
|
|
289 |
echo "</div>";
|
|
290 |
}
|
|
291 |
|
|
292 |
?>
|
|
293 |
</body>
|
|
294 |
</html> |