ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/branches/ogawa/prj_fix_core_libs/webapp/lib/smarty_plugins/function.t_img_url.php @ 1730

Last change on this file since 1730 was 1730, checked in by ogawa, 14 years ago

webapp/init.inc 内の定数を整理

File size: 2.6 KB
Line 
1<?php
2/**
3 * @copyright 2005-2006 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7function smarty_function_t_img_url($params, &$smarty)
8{
9    $p = _smarty_function_t_img_url($params);
10    $html = true;
11    if (isset($params['_html'])) {
12        $html = (bool)$params['_html'];
13        unset($params['_html']);
14    }
15    $urlencode = false;
16    if (isset($params['_urlencode'])) {
17        $urlencode = (bool)$params['_urlencode'];
18        unset($params['_urlencode']);
19    }
20
21    if (OPENPNE_IMG_URL) {
22        $url = OPENPNE_IMG_URL;
23    } else {
24        if (OPENPNE_USE_PARTIAL_SSL && is_ssl()) {
25            $url = OPENPNE_SSL_URL;
26        } else {
27            $url = OPENPNE_URL;
28        }
29    }
30
31    if (!OPENPNE_IMG_CACHE_PUBLIC) {
32        $url .= 'img.php';
33        if ($q = http_build_query($p)) {
34            if ($html) {
35                $url .= '?' . htmlspecialchars($q);
36            } else {
37                $url .= '?' . $q;
38            }
39        }
40    } else {
41        include_once 'OpenPNE/Img.php';
42        if (!$p['f']) {
43            $parts = explode('.', $p['filename']);
44            $f = array_pop($parts);
45            switch ($f) {
46            case 'jpg':
47            case 'gif':
48            case 'png':
49                $p['f'] = $f;
50                break;
51            default:
52                $p['f'] = 'jpg';
53                break;
54            }
55        }
56        $path = OpenPNE_Img::get_cache_path($p['filename'], $p['w'], $p['h'], $p['f']);
57        $url .= 'img/' . $path;
58    }
59
60    if ($urlencode) {
61        $url = urlencode($url);
62    }
63
64    return $url;
65}
66
67/**
68 * validate params
69 * @param  array $params
70 * @return array
71 */
72function _smarty_function_t_img_url($params)
73{
74    $result = array();
75
76    if (!empty($params['filename']) && preg_match('/^\w+(?:\.((?:jpe?g)|(?:gif)|(?:png)))?$/', $params['filename'])) {
77        $filename = $params['filename'];
78    } else {
79        if (!empty($params['noimg'])) {
80            $filename = db_get_c_skin_filename4skinname($params['noimg']);
81        } else {
82            $filename = db_get_c_skin_filename4skinname('no_image');
83        }
84    }
85    $result['filename'] = $filename;
86
87    if (!empty($params['w']) && (intval($params['w']) > 0)) {
88        $result['w'] = intval($params['w']);
89    }
90    if (!empty($params['h']) && (intval($params['h']) > 0)) {
91        $result['h'] = intval($params['h']);
92    }
93
94    if (!empty($params['f'])) {
95        switch ($params['f']) {
96        case 'jpg':
97        case 'gif':
98        case 'png':
99            $result['f'] = $params['f'];
100            break;
101        }
102    }
103
104    return $result;
105}
106
107?>
Note: See TracBrowser for help on using the repository browser.