| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | <?php/** * Elgg profile icon cache/bypass *  *  * @package ElggProfile */// won't be able to serve anything if no joindate or guidif (!isset($_GET['joindate']) || !isset($_GET['guid'])) {	header("HTTP/1.1 404 Not Found");	exit;}$join_date = (int)$_GET['joindate'];$last_cache = empty($_GET['lastcache']) ? 0 : (int)$_GET['lastcache']; // icontime$guid = (int)$_GET['guid'];// If is the same ETag, content didn't changed.$etag = $last_cache . $guid;if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) == "\"$etag\"") {	header("HTTP/1.1 304 Not Modified");	exit;}$base_dir = dirname(dirname(dirname(__FILE__)));// Get DB settingsrequire_once $base_dir . '/engine/settings.php';require_once $base_dir . '/vendor/autoload.php';global $CONFIG;$size = "medium";if (!empty($_GET['size'])) {	$size = strtolower($_GET['size']);	if (!in_array($size, array('large', 'medium', 'small', 'tiny', 'master', 'topbar'))) {		$size = "medium";	}}$path = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR;$data_root = call_user_func(function () use ($CONFIG) {	if (isset($CONFIG->dataroot)) {		return rtrim($CONFIG->dataroot, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;	}	// must get from DB	$conf = new \Elgg\Database\Config($CONFIG);	$db = new \Elgg\Database($conf, new \Elgg\Logger(new \Elgg\PluginHooksService()));	try {		$row = $db->getDataRow("			SELECT `value`			FROM {$db->getTablePrefix()}datalists			WHERE `name` = 'dataroot'		");		if (!$row) {			return "";		}	} catch (\DatabaseException $e) {		// we're going to let the engine figure out what's happening...		return '';	}	return rtrim($row->value, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;});if ($data_root) {	$locator = new \Elgg\EntityDirLocator($guid);	$user_path = $data_root . $locator->getPath();	$filename = $user_path . "profile/{$guid}{$size}.jpg";	$filesize = @filesize($filename);	if ($filesize) {		header("Content-type: image/jpeg");		header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+6 months")), true);		header("Pragma: public");		header("Cache-Control: public");		header("Content-Length: $filesize");		header("ETag: \"$etag\"");		readfile($filename);		exit;	}}// something went wrong so load engine and try to forward to default iconrequire_once $base_dir . "/engine/start.php";elgg_log("Profile icon direct failed.", "WARNING");forward("_graphics/icons/user/default{$size}.gif");
 |