r1505 + implement rack thumbnails caching (ticket:34)
authorDenis Ovsienko <infrastation@yandex.ru>
Sun, 13 Jan 2008 14:47:17 +0000 (14:47 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Sun, 13 Jan 2008 14:47:17 +0000 (14:47 +0000)
render_image.php

index a1f899511504cec6789f594ea90b55658fb8a119..80491655991b6bfe82753c8322c7887ff9e6dd81 100644 (file)
@@ -48,6 +48,25 @@ function colorFromHex ($image, $hex)
 }
 
 function renderRackThumb ($rack_id = 0)
+{
+       // Don't call DB extra times, hence we are most probably not the
+       // only script wishing to acces the same data now.
+       header("Content-type: image/png");
+       $thumbcache = loadThumbCache ($rack_id);
+       if ($thumbcache !== NULL)
+               echo $thumbcache;
+       else
+       {
+               ob_start();
+               generateMiniRack ($rack_id);
+               $capture = ob_get_contents();
+               ob_end_flush();
+               saveThumbCache ($rack_id, $capture);
+       }
+}
+
+// Return a binary string containing the PNG minirack.
+function generateMiniRack ($rack_id)
 {
        if (($rackData = getRackData ($rack_id, TRUE)) == NULL)
        {
@@ -94,7 +113,6 @@ function renderRackThumb ($rack_id = 0)
                        );
                }
        }
-       header("Content-type: image/png");
        imagepng ($img);
        imagedestroy ($img);
 }