MSIE 2.0 workaround to not to display "<?xml", MSIE 3.0 not tested & not trusted
[www.energie.vellum.cz.git] / common.php
index d12e998..fac6f37 100644 (file)
@@ -2,20 +2,25 @@
 
        error_reporting(E_ALL);
 
-       if (isset($want_js)) {
-               $have_js=isset($HTTP_GET_VARS["have_js"]) || isset($HTTP_POST_VARS["have_js"]);
-               if (!$have_js)
-                       $head.='<script type="text/javascript" src="have_js.js"></script>'."\n";
-               }
-
+       $admin_mail="short@ucw.cz";
        $viewcvs=ereg_replace("^/~short/","\\0cgi-bin/viewcvs/",$HTTP_SERVER_VARS["SCRIPT_NAME"]);
        if ($viewcvs==$HTTP_SERVER_VARS["SCRIPT_NAME"])
                unset($viewcvs);
        $cvs_id_split=split(" ",$cvs_id);
-       $cvs_id_split[1]="<a href=\"$viewcvs\">".$cvs_id_split[1]."</a>";
-       $cvs_id_split[5]="<a href=\"mailto:".$cvs_id_split[5]."@".$HTTP_SERVER_VARS["HTTP_HOST"]."\">".$cvs_id_split[5]."</a>";
+       if (count($cvs_id_split)==8) {
+               $cvs_id_split[1]="<a href=\"$viewcvs\">".$cvs_id_split[1]."</a>";
+               $cvs_id_split[5]="<a href=\"mailto:".$cvs_id_split[5]."@".$HTTP_SERVER_VARS["HTTP_HOST"]."\">".$cvs_id_split[5]."</a>";
+               }
        $cvs_id_html=join(" ",$cvs_id_split);
 
+       $have_js=(isset($HTTP_GET_VARS["have_js"]) || isset($HTTP_POST_VARS["have_js"])
+                       ? "?have_js=1" : "");
+       if (isset($detect_js) && !$have_js)
+               $head.='<script type="text/javascript" src="have_js.js"></script>'."\n";
+
+       if (ereg("[[:<:]]MSIE ([0-9]+)\\.",$HTTP_SERVER_VARS["HTTP_USER_AGENT"],$msie_major_a))
+               $msie_major=$msie_major_a[1];
+
 function addpercents($url)
 {
        $r=$c="";
@@ -27,8 +32,23 @@ function addpercents($url)
        return($r);
 }
 
+function fatal($msg="UNKNOWN")
+{
+       global $admin_mail;
+
+       print("\n<br /><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();
+}
+
 function footer()
 {
+       // deadlock prevention:
+       global $footer_passed;
+       if (isset($footer_passed))
+               exit();
+       $footer_passed=true;
+
        global $cvs_id_html,$viewcvs,$viewcvs,$HTTP_SERVER_VARS;
        ?>
 <hr />
@@ -43,11 +63,13 @@ function footer()
 </table>
 </body></html>
        <?php
+       exit();
 }
 
        header("Content-type: text/html; charset=iso-8859-2");
+       if (!isset($msie_major) || $msie_major>=4)
+               print('<?xml version="1.0" encoding="iso-8859-2"?>'."\n");
 ?>
-<?xml version="1.0" encoding="iso-8859-2"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
 <head><title>Energie &amp; peníze<?php
@@ -55,7 +77,8 @@ function footer()
                print(": $title_tail");
 ?></title>
 <style type="text/css"><!--
-.cvs-id { font-family: monospace; }<?php
+.cvs-id { font-family: monospace; }
+.error  { color: red; }<?php
        if (isset($head_css))
                print($head_css);
        print("--></style>\n");