/**
 * @copyright 2005-2008 OpenPNE Project
 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
 */
function smarty_function_t_img_url_skin($params, &$smarty)
{
    $p = _smarty_function_t_img_url_skin($params);
    if (OPENPNE_IMG_URL) {
        $url = OPENPNE_IMG_URL;
    } else {
        $url = './';
    }
    if (!($filename = db_get_c_skin_filename4skinname($p['filename']))) {
        if (strpos($p['filename'], 'skin_') === 0) {
            $ext = 'jpg';
        } else {
            $ext = 'gif';
        }
        $file = sprintf('skin/%s/img/%s.%s', OPENPNE_SKIN_THEME, $p['filename'], $ext);
        if (!is_readable(OPENPNE_PUBLIC_HTML_DIR . '/' . $file)) {
            $file = sprintf('skin/default/img/%s.%s', $p['filename'], $ext);
        }
        $url .= $file;
    } else {
        if (!OPENPNE_IMG_CACHE_PUBLIC) {
            $url .= 'img_skin.php';
            $p['image_filename'] = $filename;
            if ($q = http_build_query($p)) {
                $url .= '?' . htmlspecialchars($q);
            }
        } else {
            $p['filename'] = $filename;
            include_once 'OpenPNE/Img.php';
            if (!$p['f']) {
                $parts = explode('.', $p['filename']);
                $f = array_pop($parts);
                switch ($f) {
                    case 'jpg':
                    case 'gif':
                    case 'png':
                        $p['f'] = $f;
                        break;
                    default:
                        $p['f'] = 'jpg';
                        break;
                }
            }
            $path = OpenPNE_Img::get_cache_path($p['filename'], $p['w'], $p['h'], $p['f']);
            $url .= 'img/' . $path;
        }
    }
    return $url;
}
Example #2
0
/**
 * 画像のURLを取得する
 *
 * @param string $image_filename
 * @param string $no_image image_filenameが空の場合にno_image.gifに置換するかどうか
 * @return string 画像のURL
 */
function xmlrpc_get_image_url($image_filename = '', $no_image = true)
{
    if (!$image_filename) {
        if (!$no_image) {
            return '';
        }
        $image_filename = db_get_c_skin_filename4skinname('no_image');
    }
    if (OPENPNE_IMG_URL) {
        $path = OPENPNE_IMG_URL;
    } else {
        $path = OPENPNE_URL . 'img.php';
    }
    return $path . '?filename=' . $image_filename;
}
/**
 * validate params
 * @param  array $params
 * @return array
 */
function _smarty_function_t_img_url($params)
{
    $result = array();
    $filename = $params['filename'];
    if (empty($filename) || preg_match('/[^\\.\\w]/', $filename)) {
        if (!empty($params['noimg'])) {
            $filename = db_get_c_skin_filename4skinname($params['noimg']);
        } else {
            $filename = db_get_c_skin_filename4skinname('no_image');
        }
    }
    $result['filename'] = $filename;
    if (!empty($params['w']) && intval($params['w']) > 0) {
        $result['w'] = intval($params['w']);
    }
    if (!empty($params['h']) && intval($params['h']) > 0) {
        $result['h'] = intval($params['h']);
    }
    if (!empty($params['f'])) {
        switch ($params['f']) {
            case 'jpg':
            case 'gif':
            case 'png':
                $result['f'] = $params['f'];
                break;
        }
    }
    if ($GLOBALS['__Framework']['current_module'] === 'admin' && ADMIN_MODULE_NAME) {
        $result['m'] = ADMIN_MODULE_NAME;
    } else {
        $result['m'] = $GLOBALS['__Framework']['current_module'];
    }
    if ($GLOBALS['KTAI_URL_TAIL']) {
        $result['ksid'] = session_id();
    }
    return $result;
}
 function execute($requests)
 {
     if (!$_FILES['upfile']['size']) {
         admin_client_redirect('edit_skin_image', 'ファイルが指定されていません');
     }
     $prefix = sprintf('skin_%s', $requests['skinname']);
     if ($fn = image_insert_c_image($_FILES['upfile'], $prefix)) {
         if ($old_fn = db_get_c_skin_filename4skinname($requests['skinname'])) {
             db_image_data_delete($old_fn);
         }
         // 携帯版ロゴ画像がアップロードされた場合は、ロゴの非表示設定を解除する
         if ($requests['skinname'] == 'skin_ktai_header') {
             if (is_null(db_admin_c_admin_config4name('OPENPNE_USE_KTAI_LOGO'))) {
                 db_admin_insert_c_admin_config('OPENPNE_USE_KTAI_LOGO', true);
             } else {
                 db_admin_update_c_admin_config('OPENPNE_USE_KTAI_LOGO', true);
             }
         }
         db_replace_c_skin_filename($requests['skinname'], $fn);
         pne_cache_drop('fetch_inc_navi', 'h');
         admin_client_redirect('edit_skin_image', 'スキン画像を変更しました');
     }
     admin_client_redirect('edit_skin_image', 'スキン画像を変更できませんでした');
 }
Example #5
0
<?php

/**
 * @copyright 2005-2008 OpenPNE Project
 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
 */
require_once './config.inc.php';
// include_path の設定
include_once OPENPNE_LIB_DIR . '/include/PHP/Compat/Constant/PATH_SEPARATOR.php';
$include_paths = array(OPENPNE_LIB_DIR . '/include', OPENPNE_WEBAPP_DIR . '/lib', ini_get('include_path'));
ini_set('include_path', implode(PATH_SEPARATOR, $include_paths));
require_once OPENPNE_WEBAPP_DIR . '/lib/OpenPNE/DB.php';
require_once OPENPNE_WEBAPP_DIR . '/lib/db/common.php';
require_once OPENPNE_WEBAPP_DIR . '/lib/db/etc.php';
$_GET['filename'] = db_get_c_skin_filename4skinname($_GET['filename']);
// エラー出力を抑制
ini_set('display_errors', false);
ob_start();
// include_path の設定
include_once OPENPNE_LIB_DIR . '/include/PHP/Compat/Constant/PATH_SEPARATOR.php';
$include_paths = array(OPENPNE_LIB_DIR . '/include', OPENPNE_WEBAPP_DIR . '/lib', ini_get('include_path'));
ini_set('include_path', implode(PATH_SEPARATOR, $include_paths));
// 各種設定
defined('OPENPNE_IMG_JPEG_QUALITY') or define('OPENPNE_IMG_JPEG_QUALITY', 75);
if (!empty($GLOBALS['_OPENPNE_DSN_LIST']['image']['dsn'])) {
    $dsn = $GLOBALS['_OPENPNE_DSN_LIST']['image']['dsn'];
} else {
    $dsn = $GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn'];
}
require_once 'OpenPNE/Img.php';
$options = array('dsn' => $dsn, 'cache_dir' => OPENPNE_IMG_CACHE_DIR, 'jpeg_quality' => OPENPNE_IMG_JPEG_QUALITY);