e21e1b74eec1a8dfe95239c42e098753321ff147
[infodrom.org/infocon.infodrom.org] / src / logbook / index.wml
1 <define-tag dbhost></define-tag>
2 <define-tag dbport></define-tag>
3 <define-tag dbname>infocon</define-tag>
4 <define-tag logbook>logbook</define-tag>
5
6 <?
7 function teaserlink($teaser)
8 {
9   return preg_replace('/[^a-zA-Z0-9-]/', '-', $teaser);
10 }
11
12   if (isset ($_GET[type]) && $_GET[type] == "rdf") {
13     $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
14            or die("Unable to connect to SQL server");
15
16     pg_exec ($dbh, "SET DateStyle = 'ISO'") or die("Datenbank-Abfrage!");
17
18     if (isset ($_GET[category])) {
19       $query = "SELECT * FROM <logbook> WHERE public = 1 ";
20       $query .= sprintf ("AND category = '%s' ", addslashes($_GET[category]));
21       $query .= "ORDER BY created DESC LIMIT 5";
22     } else {
23       $query = "SELECT * FROM <logbook> WHERE public = 1 "
24              . "ORDER BY created DESC LIMIT 5";
25     }
26
27     $sth = pg_exec ($dbh, $query) or die("Datenbank-Abfrage!");
28
29     echo ("<?xml version='1.0' encoding='iso-8859-1' ?>\n");
30     echo ("<rss version='2.0'>\n");
31     echo ("<channel>\n");
32     printf ("   <lastBuildDate>%s</lastBuildDate>\n", date("D, d M Y H:i:s T"));
33 ?>
34   <title>Information & Consulting Logbuch</title>
35   <description>Information & Consulting Logbuch</description>
36   <link>http://infocon.infodrom.org/logbook/</link>
37   <managingEditor>joey@infodrom.org</managingEditor>
38   <generator>InfoCon</generator>
39
40 <?
41     for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {
42       $row = pg_fetch_array ($sth, $nr);
43
44       $body = str_replace(array('<','>','&',"\\\n","\r"),
45                           array('&lt;', '&gt;', '&amp;', '', ''),
46                           $row['body']);
47       $date = explode (" ", $row['created']);
48       $time = explode (":", $date[1]);
49       $tz = substr($time[2], 2);
50       if (strlen ($tz) == 3) {
51         $tz .= "00";
52       } else {
53         # Something's borked, so add symbolic name instead
54         $tz = date ("T", mktime ($time[0], $time[1], $time[2], $date[1], $date[2], $date[0]));
55       }
56       $date = explode ("-", $date[0]);
57       $date = date ("D, d M Y H:i:s ",
58               mktime ($time[0], $time[1], $time[2], $date[1], $date[2], $date[0]))
59               . $tz;
60
61       $url = sprintf('%s-%d.html', teaserlink($row['teaser']), $row['id']);
62
63       echo ("<item>\n");
64       printf ("  <title>%s</title>\n", $row['teaser']);
65       printf ("  <link>http://infocon.infodrom.org/logbook/%s</link>\n", $url);
66       printf ("  <pubDate>%s</pubDate>\n", $date);
67       printf ("  <category>%s</category>\n", $row['category']);
68       printf ("  <description>%s</description>\n", $body);
69       echo ("</item>\n");
70     }  
71     echo ("\n</channel>\n</rss>\n");
72
73     exit;
74   }
75
76 <protect>
77   $kontaktlink = '<p style="margin-left: -20px;"><strong><a href="../kontaktform.html">Zum Kontakformular</a></strong></p>';
78 </protect>
79
80 ?>
81
82 #include <infocon.style>
83
84 <page title="Logbuch" alternates="logbook.rdf|Logbuch" lang="de">
85
86 <?
87   $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
88          or die("Unable to connect to SQL server");
89
90   pg_exec ($dbh, "SET DateStyle = 'ISO'") or die("Datenbank-Abfrage!");
91
92   if (strlen ($_SERVER[QUERY_STRING])> 0 && ($_SERVER[QUERY_STRING] == "all" || strlen($_SERVER[QUERY_STRING]) == 4)) {
93     if ($_SERVER[QUERY_STRING] == "all") {
94       $query = "SELECT id,teaser,created FROM <logbook> " .
95                "WHERE public = 1 " .
96                "ORDER BY created DESC";
97       $title = "Index of Logbook Entries";
98     } else {
99       $this_year = (int)$_SERVER[QUERY_STRING];
100       $next_year = $this_year + 1;
101       $query = sprintf ("SELECT id,teaser,created FROM <logbook> "
102                        ."WHERE public = 1 "
103                        ."AND created >= '%d-01-01' AND created < '%d-01-01' ORDER BY created ASC",
104                        $this_year, $next_year);
105       $title = sprintf ("Logbuch %d", $this_year);
106     }
107     echo ("<div id=\"logenv\"><div id=\"logbody\">");
108     printf ("<h3 id=\"logtitle\">%s</h3>", $title);
109     echo ("<div id=\"logcontent\">");
110
111     echo ("<table class=\"font\" width=\"100%\" summary=\"\">");
112
113     $sth = pg_exec ($dbh, $query) or die("Datenbank-Abfrage!");
114
115     for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {
116       $row = pg_fetch_array ($sth, $nr);
117
118       $date = explode (" ", $row['created']);
119       $time = explode (":", $date[1]);
120       $date = explode ("-", $date[0]);
121       $date = sprintf ("%d.%d.%d", $date[2], $date[1], $date[0]);
122
123       $url = sprintf('%s-%d.html', teaserlink($row['teaser']), $row['id']);
124
125       printf ("<tr><td align=\"right\">%s</td><td width=\"2\"></td><td><a href=\"./%s\">%s</a></td></tr>",
126              $date, $url, $row['teaser']);
127     }
128     echo ("</table><div style=\"padding-top: 0.5em\"></div></div></div></div>");
129     echo $kontaktlink;
130   } else {
131     if (strlen ($_SERVER[QUERY_STRING]) > 0) {
132       $query = sprintf ("SELECT * FROM <logbook> "
133                        ."WHERE public = 1 AND id = '%s'",
134                         addslashes ($_SERVER[QUERY_STRING]));
135     } else {
136       $query = "SELECT * FROM <logbook> WHERE public = 1 " .
137                "ORDER BY created DESC LIMIT 8";
138     }
139
140     $sth = pg_exec ($dbh, $query) or die("Datenbank-Abfrage!");
141
142     for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {
143       $row = pg_fetch_array ($sth, $nr);
144
145       $date = explode (" ", $row['created']);
146       $time = explode (":", $date[1]);
147       $date = explode ("-", $date[0]);
148       $date = sprintf ("%d.%d.%d %02d:%02d", $date[2], $date[1], $date[0], $time[0], $time[1]);
149
150       $url = sprintf('%s-%d.html', teaserlink($row['teaser']), $row['id']);
151
152       echo   ("<div id=\"logenv\"><div id=\"logbody\">");
153       printf ("<h3 id=\"logtitle\"><a href=\"%s\">%s</a></h3>", $url, $row['teaser']);
154       if (strlen ($_SERVER[QUERY_STRING]) > 0)
155         echo $adv_entry;
156       printf ("<div id=\"logcontent\">%s</div>", str_replace ("\\\n", "", str_replace ("\r", "", $row['body'])));
157       echo   ("\n<div class=\"logfoot\">");
158       echo   ("<div class=\"logfootleft\">");
159       echo   ("</div>");
160       echo   ("<div class=\"logfootright\">");
161       printf ("%s | %s | <a href=\"%s\">permanent link</a>", $date, $row['category'], $url);
162       echo   ("</div></div>");
163       echo   ("</div></div>");
164       if ($nr == 0 || $nr == 4 || $nr == 7)
165         echo $adv_index;
166       if (strlen ($_SERVER[QUERY_STRING]) > 0)
167         echo $kontaktlink;
168     }
169   }
170 ?>
171
172 </page>
173
174 # Local variables:
175 # mode: text
176 # mode: auto-fill
177 # end: