/** * @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; }
/** * 画像の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', 'スキン画像を変更できませんでした'); }
<?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);