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

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

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

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

File size: 2.5 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_skin($params, &$smarty)
8{
9    $p = _smarty_function_t_img_url_skin($params);
10
11    if (OPENPNE_IMG_URL) {
12        $url = OPENPNE_IMG_URL;
13    } else {
14        if (OPENPNE_USE_PARTIAL_SSL && is_ssl()) {
15            $url = OPENPNE_SSL_URL;
16        } else {
17            $url = OPENPNE_URL;
18        }
19    }
20
21    if (!$filename = db_get_c_skin_filename4skinname($p['filename'])) {
22        if (strpos($p['filename'], 'skin_') === 0) {
23            $ext = 'jpg';
24        } else {
25            $ext = 'gif';
26        }
27        $url .= sprintf('skin/%s.%s', $p['filename'], $ext);
28    } else {
29        $p['filename'] = $filename;
30
31        if (!OPENPNE_IMG_CACHE_PUBLIC) {
32            $url .= 'img.php';
33            if ($q = http_build_query($p)) {
34                $url .= '?' . htmlspecialchars($q);
35            }
36        } else {
37            include_once 'OpenPNE/Img.php';
38            if (!$p['f']) {
39                $parts = explode('.', $p['filename']);
40                $f = array_pop($parts);
41                switch ($f) {
42                case 'jpg':
43                case 'gif':
44                case 'png':
45                    $p['f'] = $f;
46                    break;
47                default:
48                    $p['f'] = 'jpg';
49                    break;
50                }
51            }
52            $path = OpenPNE_Img::get_cache_path($p['filename'], $p['w'], $p['h'], $p['f']);
53            $url .= 'img/' . $path;
54        }
55    }
56
57    return $url;
58}
59
60/**
61 * validate params
62 * @param  array $params
63 * @return array
64 */
65function _smarty_function_t_img_url_skin($params)
66{
67    $result = array();
68
69    if (!empty($params['filename']) && preg_match('/^\w+(?:\.((?:jpe?g)|(?:gif)|(?:png)))?$/', $params['filename'])) {
70        $filename = $params['filename'];
71    } else {
72        if (!empty($params['noimg'])) {
73            $filename = $params['noimg'];
74        } else {
75            $filename = 'no_image.gif';
76        }
77    }
78    $result['filename'] = $filename;
79
80    if (!empty($params['w']) && (intval($params['w']) > 0)) {
81        $result['w'] = intval($params['w']);
82    }
83    if (!empty($params['h']) && (intval($params['h']) > 0)) {
84        $result['h'] = intval($params['h']);
85    }
86
87    if (!empty($params['f'])) {
88        switch ($params['f']) {
89        case 'jpg':
90        case 'gif':
91        case 'png':
92            $result['f'] = $params['f'];
93            break;
94        }
95    }
96
97    return $result;
98}
99
100?>
Note: See TracBrowser for help on using the repository browser.