<?php
// start hack by Trabis
if (!class_exists('ProtectorRegistry')) {
exit('Registry not found');
}
$registry = ProtectorRegistry::getInstance();
$mydirname = $registry->getEntry('mydirname');
$mydirpath = $registry->getEntry('mydirpath');
$language = $registry->getEntry('language');
// end hack by Trabis
date_default_timezone_set(@date_default_timezone_get());
$icon_cache_limit = 3600; // default 3600sec == 1hour
session_cache_limiter('public');
header('Expires: ' . date('r', (int)(time() / $icon_cache_limit) * $icon_cache_limit + $icon_cache_limit));
header("Cache-Control: public, max-age=$icon_cache_limit");
header('Last-Modified: ' . date('r', (int)(time() / $icon_cache_limit) * $icon_cache_limit));
header('Content-type: image/png');
// file name
$file_base = 'module_icon';
if (!empty($_GET['file'])) {
$file_base = preg_replace('/[^0-9a-z_]/', '', $_GET['file']);
}
$draw_dirname = true;
// icon files must be PNG
$file = $file_base . '.png';
// custom icon
if (file_exists($mydirpath . '/' . $file)) {
$draw_dirname = false;
$icon_fullpath = $mydirpath . '/module_icon.png';
} else {
$icon_fullpath = __DIR__ . '/images/' . $file;
}
if ($draw_dirname && function_exists('imagecreatefrompng') && function_exists('imagecolorallocate') && function_exists('imagestring') && function_exists('imagepng')) {
$im = imagecreatefrompng($icon_fullpath);
$color = imagecolorallocate($im, 0, 0, 0); // black
$px = (92 - 6 * strlen($mydirname)) / 2;
imagestring($im, 3, $px, 34, $mydirname, $color);
imagepng($im);
imagedestroy($im);
} else {
readfile($icon_fullpath);
}
|