manually set the mime type when serving .ico files
git-svn-id: file:///home/shish/svn/shimmie2/trunk@817 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
parent
411b933b72
commit
7edf906065
2 changed files with 14 additions and 6 deletions
|
@ -37,6 +37,18 @@ class IcoFileHandler extends Extension {
|
|||
if(is_a($event, 'DisplayingImageEvent') && $this->supported_ext($event->image->ext)) {
|
||||
$this->theme->display_image($event->page, $event->image);
|
||||
}
|
||||
|
||||
if(is_a($event, 'PageRequestEvent') && ($event->page_name == "get_ico")) {
|
||||
global $database;
|
||||
$id = int_escape($event->get_arg(0));
|
||||
$image = $database->get_image($id);
|
||||
$hash = $image->hash;
|
||||
$ha = substr($hash, 0, 2);
|
||||
|
||||
$event->page->set_type("image/x-icon");
|
||||
$event->page->set_mode("data");
|
||||
$event->page->set_data(file_get_contents("images/$ha/$hash"));
|
||||
}
|
||||
}
|
||||
|
||||
private function supported_ext($ext) {
|
||||
|
|
|
@ -2,13 +2,9 @@
|
|||
|
||||
class IcoFileHandlerTheme extends Themelet {
|
||||
public function display_image($page, $image) {
|
||||
$ilink = $image->get_image_link();
|
||||
$width = $image->width;
|
||||
$height = $image->height;
|
||||
$ilink = make_link("get_ico/{$image->id}/{$image->id}.ico");
|
||||
$html = "
|
||||
<object data='$ilink' type='image/x-icon' width='$width' height='$height'>
|
||||
<embed src='$ilink' type='image/x-icon' width='$width' height='$height' />
|
||||
</object>
|
||||
<img id='main_image' src='$ilink'>
|
||||
";
|
||||
$page->add_block(new Block("Image", $html, "main", 0));
|
||||
}
|
||||
|
|
Reference in a new issue