Add sort_name to pluser.
[platal.git] / classes / plimage.php
1 <?php
2 /***************************************************************************
3 * Copyright (C) 2003-2011 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22 class PlImage {
23 protected $mime = null;
24 protected $x = null;
25 protected $y = null;
26 protected $ts = null;
27
28 protected $data = null;
29 protected $file = null;
30
31 protected function __construct()
32 {
33 }
34
35 public function send()
36 {
37 if (!is_null($this->ts)) {
38 header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $this->ts) . ' GMT');
39 }
40 pl_cached_dynamic_content_headers($this->mime);
41 if (empty($this->data)) {
42 readfile($this->file);
43 } else {
44 echo $this->data;
45 }
46 exit;
47 }
48
49 public function path()
50 {
51 if (empty($this->data)) {
52 return $this->file;
53 } else {
54 $name = md5($this->data);
55 $GLOBALS['img' . $name] = $this->data;
56 return 'var://img' . $name;
57 }
58 }
59
60 public function width()
61 {
62 return $this->x;
63 }
64
65 public function height()
66 {
67 return $this->y;
68 }
69
70 public function mimeType()
71 {
72 return $this->mime;
73 }
74
75 public static function fromData($data, $mime, $x = null, $y = null, $ts = null)
76 {
77 $image = new PlImage();
78 $image->data = $data;
79 $image->mime = $mime;
80 $image->x = $x;
81 $image->y = $y;
82 $image->ts = $ts;
83 return $image;
84 }
85
86 public static function fromFile($path, $mime, $x = null, $y = null, $ts = null)
87 {
88 $image = new PlImage();
89 $image->file = $path;
90 $image->mime = $mime;
91 $image->x = $x;
92 $image->y = $y;
93 $image->ts = $ts;
94 return $image;
95 }
96 }
97
98 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
99 ?>