mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-19 06:53:53 +01:00
Handle images URL via LSurl
This commit is contained in:
parent
8c2e5e604b
commit
50ea12a81c
5 changed files with 67 additions and 41 deletions
|
@ -1,39 +0,0 @@
|
|||
<?php
|
||||
/*******************************************************************************
|
||||
* Copyright (C) 2007 Easter-eggs
|
||||
* http://ldapsaisie.labs.libre-entreprise.org
|
||||
*
|
||||
* Author: See AUTHORS file in top-level directory.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
require_once 'core.php';
|
||||
if(LSsession :: initialize()) {
|
||||
if (isset($_GET['i'])) {
|
||||
$img_path=LStemplate :: getImagePath($_GET['i']);
|
||||
if (is_file($img_path)) {
|
||||
header('Content-type: '.mime_content_type($img_path));
|
||||
header('Cache-Control: public');
|
||||
header('Pragma: cache');
|
||||
header('Expires: '. gmdate('D, d M Y H:i:s', time() + 60*60*24*30)); // one month
|
||||
readfile($img_path);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
else {
|
||||
die(_('Missing parameter'));
|
||||
}
|
||||
}
|
|
@ -418,7 +418,7 @@ function LStemplate_smarty_tr($params) {
|
|||
|
||||
function LStemplate_smarty_img($params) {
|
||||
extract($params);
|
||||
echo "image.php?i=$name";
|
||||
echo "image/$name";
|
||||
}
|
||||
|
||||
function LStemplate_smarty_css($params) {
|
||||
|
|
|
@ -639,3 +639,52 @@ function LSdebugDefined() {
|
|||
}
|
||||
return "unknown : ".(string)$callable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dump file content
|
||||
*
|
||||
* @param[in] $file_path string The file path to dump
|
||||
* @param[in] $max_age integer The cache max_age value, as return in Cache-Control HTTP header
|
||||
* (optional, default: 3600)
|
||||
*
|
||||
* @retval void
|
||||
**/
|
||||
function dumpFile($file_path, $max_age=3600) {
|
||||
if (is_file($file_path)) {
|
||||
header('Content-Type: '.mime_content_type($file_path));
|
||||
$last_modified_time = filemtime($file_path);
|
||||
$etag = md5_file($file_path);
|
||||
header("Cache-Control: max-age=$max_age, must-revalidate");
|
||||
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
|
||||
header("Etag: $etag");
|
||||
|
||||
if (
|
||||
(
|
||||
isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
|
||||
@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time
|
||||
)
|
||||
||
|
||||
(
|
||||
isset($_SERVER['HTTP_IF_NONE_MATCH']) &&
|
||||
trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag
|
||||
)
|
||||
) {
|
||||
header("HTTP/1.1 304 Not Modified");
|
||||
exit();
|
||||
}
|
||||
|
||||
header('Pragma: public');
|
||||
header('Content-Length: ' . filesize($file_path));
|
||||
readfile($file_path);
|
||||
exit();
|
||||
}
|
||||
|
||||
// File not found, Trigger error 404 (via LSurl if defined)
|
||||
if (class_exists('LSurl')) {
|
||||
LSurl :: error_404();
|
||||
}
|
||||
else {
|
||||
header("HTTP/1.1 404 Not found");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -218,7 +218,7 @@ var LSdefault = new Class({
|
|||
},
|
||||
|
||||
imagePath: function(image) {
|
||||
return 'image.php?i=' + image;
|
||||
return 'image/' + image;
|
||||
},
|
||||
|
||||
getParams: function(name) {
|
||||
|
|
|
@ -45,3 +45,19 @@ function handle_index($request) {
|
|||
LSsession :: displayTemplate();
|
||||
}
|
||||
LSurl :: add_handler('#^(index\.php)?$#', 'handle_index', true);
|
||||
|
||||
/*
|
||||
* Handle image request
|
||||
*
|
||||
* @param[in] $request LSurlRequest The request
|
||||
*
|
||||
* @retval void
|
||||
**/
|
||||
function handle_image($request) {
|
||||
$img_path = LStemplate :: getImagePath($request -> image);
|
||||
if (is_file($img_path)) {
|
||||
dumpFile($img_path);
|
||||
}
|
||||
LSurl :: error_404($request);
|
||||
}
|
||||
LSurl :: add_handler('#^image/(?P<image>[^/]+)$#', 'handle_image', false);
|
||||
|
|
Loading…
Reference in a new issue