function data_href: new (optional) argument $details
[www.energie.vellum.cz.git] / common.php
index 34a6a91..59a765e 100644 (file)
@@ -43,6 +43,7 @@ function fatal($msg="UNKNOWN")
 {
        global $admin_mail;
 
+       heading(false/*title*/); // it is always safe
        print("\n<p>&nbsp;<br />&nbsp;</p><hr /><h1 class=\"error\">Nastala chyba pøi zpracování: $msg!</h1>\n"
                        ."<p>Mù¾ete tento problém nahlásit <a href=\"mailto:$admin_mail\">správci tohoto webu</a>.</p>\n");
        footer();
@@ -70,7 +71,7 @@ function prepvar($name,$regex=".",$require=true)
        if (!isset($v))
                return(0);
 
-       $globals[$name]=$v;
+       $GLOBALS[$name]=$v;
        return($v);
 }
 
@@ -97,7 +98,7 @@ function db_query($query)
        return($r);
 }
 
-function db_row($query)
+function db_row($query) // pure indexes
 {
        $q=db_query($query);
        $r=mysql_fetch_row($q);
@@ -105,7 +106,7 @@ function db_row($query)
        return($r);
 }
 
-function db_array($query)
+function db_array($query) // field-names associative
 {
        $q=db_query($query);
        $r=mysql_fetch_array($q);
@@ -221,11 +222,19 @@ function title_icons_table_month($year,$month,$month_last,$sequential)
        global $tb_clanek;
 
        $month_a=month_a($year,$month,$month_last,$sequential);
-       print("<a href=\"title.php?year=$year&amp;month=$month\">"
-                               .img($month_a["icon"],"titulní stránka ".$month_a["name_full"])."</a><br />"
-                       ."<a href=\"obsah.php?year=$year&amp;month=$month\">obsah ".$month_a["name"]."</a>");
-       if (db_item("select count(*) from $tb_clanek where year=$year and month=$month"))
-               print("<br /><a href=\"clanek.php?year=$year&amp;month=$month\">ukázka èlánkù</a>");
+       print("<table border=\"0\">"
+                       ."<tr><th align=\"center\">".$month_a["name"]."</th></tr>\n"
+                       ."<tr><td align=\"center\" valign=\"top\">"
+                               .img($month_a["icon"],"titulní stránka ".$month_a["name_full"])."</td></tr>\n"
+                       ."<tr><td align=\"left\" valign=\"top\" class=\"nowrap\">\n"
+                               ."&bull;&nbsp;<a href=\"title.php?year=$year&amp;month=$month\">titulní strana</a><br />\n"
+                               ."&bull;&nbsp;<a href=\"obsah.php?year=$year&amp;month=$month\">obsah</a><br />\n");
+       $result=db_query("select name,id from $tb_clanek where year=$year and month=$month order by id");
+       while ($row=mysql_fetch_array($result))
+               print("&bull;&nbsp;<a href=\"clanek.php?year=$year&amp;month=$month&amp;id=".$row["id"]."\">"
+                               .htmlspecialchars($row["name"])."</a><br />\n");
+       mysql_free_result($result);
+       print("</td></tr></table>");
 }
 
 function title_icons($year,$month)
@@ -244,7 +253,7 @@ function title_icons($year,$month)
                        .(isset($year) && isset($month) ? " and" : "")
                        .(isset($month) ?   " month=$month" : "")
                        ." order by year,month");
-       $split=6;
+       $split=4;
 
        // $year variable changes its meaning here!!!
        if (isset($year))
@@ -334,9 +343,24 @@ function usersize($size)
        return(round($size)." ".$suffix_a[0]."B");
 }
 
-function data_href($filename,$text)
+function data_href($filename,$text,$details="")
+{
+       return("<a href=\"$filename\">$text (".usersize(filesize($filename))."$details)</a>");
+}
+
+function img_href($filename,$text)
+{
+       list($width,$height)=getimagesize($filename);
+       return(data_href($filename,$text,", ${width}x${height} bodù"));
+}
+
+function footer_img($url,$text,$size)
 {
-       return("<a href=\"$filename\">$text (".usersize(filesize($filename)).")</a>");
+       global $footer_LOCAL;
+       if (!isset($footer_LOCAL))
+               return("<img src=\"$url\" $size alt=\"$text\" />");
+       else
+               return($text);
 }
 
 function footer($delimit=true)
@@ -356,11 +380,12 @@ function footer($delimit=true)
 <table border="0" width="100%">
 <tr><td align="left"><span class="cvs-id"><?php print($cvs_id_html); ?></span></td><td align="right"><a
        href="http://validator.w3.org/check?<?php
-               print($uri); ?>"><img src="http://www.w3.org/Icons/valid-xhtml11"
-               <?php print(img_size(88,31)); ?> alt="Valid XHTML 1.1!" /></a><a
-       href="http://jigsaw.w3.org/css-validator/validator?warning=2&amp;profile=css2&amp;<?php
-               print($uri); ?>"><img src="http://jigsaw.w3.org/css-validator/images/vcss"
-               <?php print(img_size(88,31)); ?> alt="Valid CSS!" /></a></td></tr>
+               print($uri); ?>"><?php
+                               print footer_img("http://www.w3.org/Icons/valid-xhtml11","Valid XHTML 1.1!",img_size(88,31));
+                               ?></a><a href="http://jigsaw.w3.org/css-validator/validator?warning=2&amp;profile=css2&amp;<?php
+               print($uri); ?>"><?php
+                               print footer_img("http://jigsaw.w3.org/css-validator/images/vcss","Valid CSS!",img_size(88,31));
+                               ?></a></td></tr>
 </table>
 </body></html>
 <?php
@@ -378,15 +403,27 @@ function no_cache()
 
 function heading($title=false)
 {
-       global $HTTP_SERVER_VARS,$msie_major,$mozilla_major,$title_tail,$head_css,$have_css,$head;
+       global $HTTP_SERVER_VARS,$msie_major,$mozilla_major,$title_tail,$head_css,$have_css,$head,$heading_done,$title_prefix,$force_charset;
+
+       if (isset($heading_done))
+               return;
+       $heading_done=1;
 
-       header("Content-type: text/html");
-       if (!isset($msie_major) || $msie_major>=4)
-               print('<?xml version="1.0" encoding="'.$HTTP_SERVER_VARS["CLIENT_CHARSET"].'"?>'."\n");
+       if (isset($force_charset))
+               $client_charset=$force_charset;
+       else
+               $client_charset=(!isset($HTTP_SERVER_VARS["CLIENT_CHARSET"]) ? "iso-8859-2" : $HTTP_SERVER_VARS["CLIENT_CHARSET"]);
+       // When "CLIENT_CHARSET" is set we MUST NOT explicitely specify our "charset"
+       header("Content-type: text/html".(isset($HTTP_SERVER_VARS["CLIENT_CHARSET"]) ? "" : "; charset=$client_charset"));
+       header("Content-Style-Type: text/css");
+       if (!isset($msie_major) || $msie_major>=4) {
+               print('<?xml version="1.0" encoding="'.$client_charset.'"?>'."\n");
+               }
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
-<head><title>Energie &amp; peníze<?php
+<head><?php
+       print("<title>$title_prefix");
        if (isset($title_tail))
                print(": ".htmlspecialchars($title_tail));
        print("</title>\n");
@@ -413,7 +450,7 @@ h1,h2    { color: yellow; background-color: transparent; }
                print($head);
        print("</head><body");
        if (isset($mozilla_major) && $mozilla_major==4)
-               print(" bgcolor=\"black\" text=\"white\" link=\"cyan\" vlink=\"teal\"");
+               print(" bgcolor=\"black\" text=\"white\" link=\"aqua\" vlink=\"teal\"");
        print(">\n");
        if ($title)
                print("<h1 class=\"centered\">"