#include <infodrom.style>
#include <db.style>
<define-tag maxlength>90</define-tag>

<page title="Infodrom Ticker">

<h3>Infodrom: Latest Ticker News</h3>

<? if ((strlen ($key) > 0) || (strlen ($ups) > 0)) { ?>

<table width="100%" border="0" cellpadding="1" cellspacing="0">
<?
  $cd = "<cold>";
  $cn = "<coln>";

  $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
               or die("Unable to connect to SQL server");

  pg_exec ($dbh, "SET DateStyle = 'ISO'"); // ignore or die("Datenbank-Abfrage!");

  $query = "SELECT oid,ticker,subject,releasedate,url FROM ticker WHERE ";
  if (strlen ($key) > 0) {
    $query .= sprintf ("( subject ~* '%s' OR url ~* '%s' OR body ~* '%s' )",
		       $key, $key, $key);
    if (strlen ($ticker) > 0) {
      $query .= sprintf (" AND ticker = '%s'", $ticker);
    }
  } else {
    $today = date ("Y-m-j");
    if ($ups == "today") {
      $tomorrow = getdate (time() + 86400);
      $query .= sprintf ("releasedate >= '%s' AND releasedate < '%d-%d-%d'",
			$today, $tomorrow['year'], $tomorrow['mon'], $tomorrow['mday']);
    } else {
      $yesterday = getdate (time() - 86400);
      $query .= sprintf ("releasedate >= '%d-%d-%d' AND releasedate < '%s'",
			$yesterday['year'], $yesterday['mon'], $yesterday['mday'], $today);
    }
  }
  $query .= " ORDER BY releasedate";
  # printf ("<b>%s</b>\n", $query);
  $sth = pg_exec ($dbh, $query);

  $tick['ticker-chip'] = "CHIP Online";
  $tick['ticker-firstlinux'] = "FirstLinux";
  $tick['ticker-gnn'] = "Golem News";
  $tick['ticker-internetnews'] = "Internet";
  $tick['ticker-heise'] = "Heise";
  $tick['ticker-linuxcommunity'] = "Community";
  $tick['ticker-linuxde'] = "Linux.de";
  $tick['ticker-linuxmag'] = "Linux-Magazin";
  $tick['ticker-linuxpr'] = "LinuxPR";
  $tick['ticker-linuxtoday'] = "Linux Today";
  $tick['ticker-lwn'] = "Linux Weekly";
  $tick['ticker-prolinux'] = "Pro Linux";
  $tick['ticker-slashdot'] = "Slashdot";
  $tick['ticker-zdnet'] = "ZDNet";

  if ($sth) {
    $count=0;
    $color = $cn;
#    for ($nr=0; $nr < pg_NumRows ($sth) && $count < 25; $nr++) {
    for ($nr=0; $nr < pg_NumRows ($sth) ; $nr++) {
      $row = pg_fetch_array ($sth, $nr);
      $color = $color == $cd?$cn:$cd;
      $date = explode (" ", $row['releasedate']);
      $date = explode ("-", $date[0]);
      $date = sprintf ("%d.%d.%d", $date[2], $date[1], $date[0]);

      $subject = substr($row['subject'], 0, <maxlength>);
      if (strlen ($row['subject']) > <maxlength>) {
        $subject .= "...";
      }

      printf ("<tr bgcolor=\"%s\"><td width=\"8%%\" align=\"right\" valign=\"top\">"
	     ."<font size=\"-1\" face=\"<infodrom-font />\">%s</font></td>",
	      $color, $date);
      printf ("<td width=\"12%%\" align=\"center\" valign=\"top\">"
	     ."<font size=\"-1\" face=\"<infodrom-font />\">%s</font></td>",
	      $tick[$row['ticker']]);
      printf ("<td width=\"80%%\" align=\"left\" valign=\"top\"><font size=\"-1\" face=\"<infodrom-font />\">"
	     ."<a href=\"%s\">%s</a></font></td></tr>",
	      $row['url'], $subject);
      $count++;
    }
  }
?>
</table>

<? } else { ?>

<p><em>Warning: Searching can last several seconds.</em>

<p><form method=post action=search.php3>
<table width="70%" border="0" cellpadding="1" cellspacing="0">
<tr>
  <td align=right width=30%><ifont><b>Begriff</b></ifont></td>
  <td align=left><ifont><input type=text name=key size=40 maxlen=60></ifont></td>
</tr>
<tr>
  <td align=right width=30%><ifont><b>Ticker</b></ifont></td>
  <td align=left><ifont><select name=ticker><?

  function sel ($myticker, $ticker, $descr)
  {
    printf ("<option value=\"%s\"%s>%s", $ticker, $myticker==$ticker?" selected":"", $descr);
  }

  sel ($row['ticker'], "", "");
  sel ($row['ticker'], "ticker-chip", "CHIP Online");
  sel ($row['ticker'], "ticker-firstlinux", "FirstLinux");
  sel ($row['ticker'], "ticker-gnn", "Golem Network News");
  sel ($row['ticker'], "ticker-internetnews", "Internet News");
  sel ($row['ticker'], "ticker-heise", "Heise Newsticker");
  sel ($row['ticker'], "ticker-linuxcommunity", "Linux-Community");
  sel ($row['ticker'], "ticker-linuxde", "Linux.de");
  sel ($row['ticker'], "ticker-linuxmag", "Linux-Magazin");
  sel ($row['ticker'], "ticker-linuxpr", "LinuxPR");
  sel ($row['ticker'], "ticker-linuxtoday", "Linux Today");
  sel ($row['ticker'], "ticker-lwn", "Linux Weekly News");
  sel ($row['ticker'], "ticker-prolinux", "Pro Linux");
  sel ($row['ticker'], "ticker-slashdot", "Slashdot");
  sel ($row['ticker'], "ticker-zdnet", "ZDNet");

?></select></ifont></td>
</tr>
</table>
<p><center><input type=submit value="Suche Starten">&nbsp;.&nbsp;<input type=reset value="Zurücksetzen"></center><p>
</form>

<? } ?>

</page>

# Local variables:
# mode: indented-text
# mode: auto-fill
# end:
