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

source: OpenPNE/trunk/public_html/img.php

Last change on this file was 8755, checked in by shingo, 11 years ago

#1845:変数名を適切な表現に変更

File size: 3.7 KB
Line 
1<?php
2/**
3 * @copyright 2005-2008 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7require_once './config.inc.php';
8
9// エラー出力を抑制
10ini_set('display_errors', false);
11ob_start();
12
13// モジュール毎に決められた認証をおこなっているかどうかのチェック
14if (defined('CHECK_IMG_AUTH') && CHECK_IMG_AUTH) {
15    require_once OPENPNE_WEBAPP_DIR . '/init.inc';
16
17    $module = '';
18    if (!($module = get_request_var('m'))) {
19        // モジュール名の自動設定
20        if (!db_admin_user_exists()) {
21            $module = 'setup';
22        } elseif (isKtaiUserAgent()) {
23            $module = 'ktai';
24        } else {
25            $module = 'pc';
26        }
27    }
28
29    $params = '&a=page_h_toimg';
30    if (isKtaiUserAgent()) {
31        $params .= '&m=ktai';
32    } else {
33        $params .= '&m=pc';
34    }
35    $_SERVER['QUERY_STRING'] .= $params;
36
37    if (!$module = _check_module($module)) {
38        openpne_display_error('モジュールが見つかりません', true);
39    }
40
41    // disable modules
42    if (in_array($module, (array)$GLOBALS['_OPENPNE_DISABLE_MODULES'])) {
43        openpne_display_error('モジュールが無効になっています', true);
44    }
45
46    if (OPENPNE_UNDER_MAINTENANCE &&
47        !in_array($module, (array)$GLOBALS['_OPENPNE_MAINTENANCE_MODULES'])) {
48        openpne_display_error();
49    }
50
51    if ($init = openpne_ext_search("{$module}/init.inc")) {
52        require_once $init;
53    }
54
55    // 読み込む auth.inc を決定
56    $auth = openpne_ext_search("{$module}/auth.inc");
57    if (!$auth) {
58        $auth = OPENPNE_WEBAPP_DIR . '/lib/auth.inc';
59    }
60
61    // ファイル名が module_ または b_ ではじまる場合、認証をおこなうかどうかのチェック
62    list($img_prefix, $img_second_prefix) = explode('_', $_GET['filename'], 3);
63    if ($img_prefix == 'module' && $img_second_prefix) {
64        $module_config = util_get_module_config($img_second_prefix);
65        if (!isset($module_config['image']['is_auth']) || $module_config['image']['is_auth']) {
66            require_once $auth;
67        }
68    } elseif ($img_prefix == 'b') {
69        if (db_banner_is_after_auth_banner($img_second_prefix)) {
70            require_once $auth;
71        }
72    } else {
73        require_once $auth;
74    }
75} else {
76    // include_path の設定
77    include_once OPENPNE_LIB_DIR . '/include/PHP/Compat/Constant/PATH_SEPARATOR.php';
78    $include_paths = array(
79        OPENPNE_LIB_DIR . '/include',
80        OPENPNE_WEBAPP_DIR . '/lib',
81        ini_get('include_path')
82    );
83    ini_set('include_path', implode(PATH_SEPARATOR, $include_paths));
84}
85
86// 各種設定
87defined('OPENPNE_IMG_JPEG_QUALITY') or define('OPENPNE_IMG_JPEG_QUALITY', 75);
88if (!empty($GLOBALS['_OPENPNE_DSN_LIST']['image']['dsn'])) {
89    $dsn =  $GLOBALS['_OPENPNE_DSN_LIST']['image']['dsn'];
90} else {
91    $dsn = $GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn'];
92}
93
94require_once 'OpenPNE/Img.php';
95$options = array(
96    'dsn'          => $dsn,
97    'cache_dir'    => OPENPNE_IMG_CACHE_DIR,
98    'jpeg_quality' => OPENPNE_IMG_JPEG_QUALITY,
99);
100
101if (defined('USE_IMAGEMAGICK')) {
102    switch (USE_IMAGEMAGICK) {
103    case 0:
104        $use_IM = false;
105        break;
106    case 1:
107        $pieces = explode('.', $_GET['filename']);
108        $source_format = OpenPNE_Img::check_format(array_pop($pieces));
109        $use_IM = ($source_format == 'gif');
110        break;
111    case 2:
112        $use_IM = true;
113        break;
114    default:
115        exit;
116    }
117} else {
118    $use_IM = false;
119}
120
121if ($use_IM) {
122    require_once 'OpenPNE/Img/ImageMagick.php';
123    $img =& new OpenPNE_Img_ImageMagick($options);
124} else {
125    $img =& new OpenPNE_Img($options);
126}
127$img->set_requests($_GET);
128
129$img->generate_img() or exit(1);
130while (@ob_end_clean());
131
132$img->output_img() or exit(2);
133
134?>
Note: See TracBrowser for help on using the repository browser.