auto-versioning for js and css files. Needs .htaccess to be installed
[e-DoKo.git] / include / output.php
index 55122e329c44134109673d98a6cd6562d533d9bc..a075fb3f827e72a205142b667544ca7104ea6bce 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/* Copyright 2006, 2007, 2008, 2009, 2010 Arun Persaud <arun@nubati.net>
+/* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 Arun Persaud <arun@nubati.net>
  *
  *   This file is part of e-DoKo.
  *
@@ -26,6 +26,21 @@ if(!isset($HOST))
 
 /* functions which only ouput html  */
 
+function autoversion($file)
+{
+  /* changes the file name of e.g. css/style.css to css/style.<md5>.css/js
+   * this way the browser can cache the file and will reload it if the file changed
+   * needs to have .htaccess set up correctly to link back to css/style.css */
+
+  /* only use it for file that have an absolut path */
+  if(!file_exists(dirname($_SERVER['SCRIPT_FILENAME']). '/' . $file))
+    return $file;
+
+  $md5 = md5_file(dirname($_SERVER['SCRIPT_FILENAME']). '/' . $file);
+  return preg_replace('{\\.([^./]+)$}', ".$md5.\$1", $file);
+}
+
+
 function output_ask_for_new_game($playerA,$playerB,$playerC,$playerD,$oldgameid)
 {
   global $RULES;
@@ -410,13 +425,13 @@ function output_header()
      <meta charset="utf-8" />
      <meta name="viewport" content="width=device-width; initial-scale=1.0;" />
      <link rel="shortcut icon" href="pics/edoko-favicon.png" />
-     <link rel="stylesheet" href="css/normalize.css?v=1" />
-     <link rel="stylesheet" href="css/standard.css?v=41" />
-     <link rel="stylesheet" href="css/dateinput.css?v=1"/>
-     <script type="text/javascript" src="include/jquery.js"> </script>
-     <script type="text/javascript" src="include/jquery.tablesorter.js"></script>
-     <script type="text/javascript" src="include/jquery.tools.min.js"></script>
-     <script type="text/javascript" src="include/game.js"> </script>
+     <link rel="stylesheet" href="<?php echo autoversion("css/normalize.css"); ?>" />
+     <link rel="stylesheet" href="<?php echo autoversion("css/standard.css"); ?>" />
+     <link rel="stylesheet" href="<?php echo autoversion("css/dateinput.css"); ?>"/>
+     <script type="text/javascript" src="<?php echo autoversion("include/jquery.js"); ?>"> </script>
+     <script type="text/javascript" src="<?php echo autoversion("include/jquery.tablesorter.js"); ?>"></script>
+     <script type="text/javascript" src="<?php echo autoversion("include/jquery.tools.min.js"); ?>"></script>
+     <script type="text/javascript" src="<?php echo autoversion("include/game.js"); ?>"> </script>
      <script type="text/javascript">
      </script>
   </head>
@@ -438,7 +453,7 @@ function output_footer()
 
   echo "</div>\n\n";
   echo "<footer>\n";
-  echo "  <p class=\"left\"> copyright 2006-2011 <a href=\"$INDEX?action=about\">Arun Persaud, et al.</a> <br />\n".
+  echo "  <p class=\"left\"> copyright 2006-2012 <a href=\"$INDEX?action=about\">Arun Persaud, et al.</a> <br />\n".
     "  Verwendung der [deutschen] Kartenbilder mit Genehmigung <br />der Spielkartenfabrik Altenburg GmbH,(c) ASS Altenburger <br />\n".
     "  - ASS Altenburger Spielkarten - Spielkartenfabrik Altenburg GmbH <br />\n".
     "  a Carta Mundi Company Email: info@spielkarten.com Internet: www.spielkarten.com</p>\n";