!!! Listing 1: Einfache JavaScript-Funktion
Textwechsel
erster Text
zweiter Text
!!! Listing 2: SVG aus DBMS erzeugen (index.php)
';
// jahr abfragen/bestimmen
if (!$thisveryyear) {
$thisveryyear = $thisyear;
}
// wie viele aktive autor/inn/en
$my_aquery = "select count(*) from autoren where aktiv=1 ";
$howmanyauts = mysql_fetch_row(mysql_query($my_aquery));
// welche veranstaltungen
$my_vquery = "select id, name, dayofyear(anfang), dayofyear(ende), ort ";
$my_vquery .= " from veranstaltungen where year(anfang) = $thisveryyear ";
$my_vquery .= " order by dayofyear(anfang) ";
$eventres = mysql_query($my_vquery);
// query fuer die abwesenheitsdaten
$my_query = "select dayofyear(t.anfang), ";
$my_query .= " dayofyear(t.ende), t.grund, ";
$my_query .= " t.ort, t.firma, a.kuerzel, ";
$my_query .= " a.vname, a.nname";
$my_query .= " from termine t, autoren a where";
$my_query .= " year(t.anfang) = $thisveryyear";
$my_query .= " and t.aut_id = a.autnum";
$my_query .= " order by a.kuerzel, month(t.anfang), dayofmonth(t.anfang)";
$my_res = mysql_query($my_query);
// y-wert fuer autor/in + y-schrittweite
$auty = 60;
$stepy = 20;
// autorenkuerzel
$autk ="";
$oldautk ="";
// anfang des rechtecks
$xrectstart = 20;
$yrectstart = 15;
$yrectend = $yrectstart + ($howmanyauts[0] * 20);
// aeusseres svg-element fuellen
echo '';
echo '';
// das jahr als text
echo '',
'urlaub und lesungen ', $thisveryyear, '';
echo "\n\n";
// funktion zum zeichnen des rechtecks
// innerhalb eines geschachtelten svg-Elements
echo '';
echo ' ';
?>
!!! Listing 3: Variable und Funktionen (div.inc.php)
';
echo "\n";
echo '';
echo "\n";
/*
echo '';
*/
echo '';
}
// rechteck fuer die daten und ein paar linien zeichnen
function do_calrect($xrectstart, $yrectstart, $yrectend, $eventres) {
global $monate, $monatsnamen;
$firstline = 70;
// rechteck um die ausgabedaten
echo "\n";
echo '';
// waagerechte linien vor den daten
echo '';
// erste senkrechte linie
echo "\n";
echo '';
$xrectstart += $firstline;
// senkrechte linien zwischen den monaten
for ($i=0; $i <12; $i++) {
$xrectend = $xrectstart + (2 * $monate[$i]);
if ($i <11) {
echo '';
}
// monate ausgeben
echo '',
$monatsnamen[$i], '';
// veranstaltungen aus gesonderter tabelle ausgeben
do_events($xrectstart, $yrectstart, $yrectend, $eventres);
$xrectstart = $xrectend;
} //ende der for-schleife
} // ende von do_calcrect
// legende ausgeben
function do_legend ($ya, $yy) {
global $thisyear, $thisveryyear, $nextyear;
if ($thisveryyear == $nextyear) {
$querystr = "?thisveryyear=" . $thisyear;
$refyear = $thisyear;
} else {
$querystr = "?thisveryyear=" . $nextyear;
$refyear = $nextyear;
}
echo '';
echo 'urlaub etc.';
echo '';
echo 'lesung etc.';
echo ' ';
echo 'messen...';
echo '',
'---> daten für ', $refyear, '';
}
// veranstaltungen ausgeben
function do_events ($xstart, $ystart, $yend, $vres) {
while (list($id,$name,$anfang,$ende,$ort) = mysql_fetch_row($vres)) {
$xhere = $xstart + (2 * $anfang);
echo '',
'',
'';
echo '', $name, ' [', $ort, ']';
}
}
?>
!!! Listing 4: Formatierung (autoren.css)
text.jahr { font-family: sans-serif; font-size:14;
fill: #333399; font-weight: bold; }
text.lesung { text-anchor: end; fill: #993333;
font-family: monospace; font-size: 12;
visibility: hidden; }
text.kuerzel { font-family: sans-serif; font-size: 11;
fill: #333399; font-weight: bold; }
text.monat { font-family: sans-serif; font-size: 11;
fill: #333399; font-weight: bold; }
line.laengs { fill: none; stroke: #ffffff; stroke-width: 1; }