<?php //mb_language("UTF-8"); error_reporting(E_ERROR | E_PARSE); // Avoid E_WARNING, E_NOTICE, etc //error_reporting(E_ALL); // Debug purpose define('PKWK_DTD_XHTML_1_0_TRANSITIONAL',''); define('DATA_HOME',''); if(file_exists('../pukiwiki.ini.php')) require_once('../pukiwiki.ini.php'); define('USER_NAME', $username); define('SESSION_SAVE_PATH', $session_save_path); define('SWFU_DATA_DIR','d/'); define('BASE','swfu/'); define('PREVIEW_SIZE', 80); define('EDIT_IMG_API_URL', 'https://ensmall.net/form/edit_img/api.php'); define('API_KEY_EXP', 30 * 60);//apikey ã®ä½¿ç”¨å¸°é‚„ function config_database( &$db ) { $db->add( "", "", "", "", "", DBKIND_TEXTSQL ); } function config_models( &$controller ) { $controller->AddModel( dirname(__FILE__) . "/models/admin.php" ); $controller->AddModel( dirname(__FILE__) . "/models/image.php" ); } function config_controller( &$controller ) { $controller->SetTemplateFile( "template.html" ); $controller->set('is_modern_browser', is_modern_browser()); } function InitTime( $time ) { $year = substr( $time, 0, 4 ); $month = substr( $time, 4, 2 ); $day = substr( $time, 6, 2 ); $hour = substr( $time, 8, 2 ); $minute = substr( $time, 10, 2 ); $second = substr( $time, 12, 2 ); return "$year-$month-$day $hour:$minute:$second"; } if( !function_exists( "is_secure" ) ) { function is_secure( &$controller ) { return true; } } function check_secure( &$controller ) { if( isset($_SESSION['usr']) && $_SESSION['usr'] == USER_NAME ) { } else { $controller->redirect( "../" ); } } function _getHost($init_url = '') { static $script; if( $init_url=='' ) { //get if (isset($script)) return $script; //set automatically foreach (array('SCRIPT_NAME', 'SERVER_ADMIN', 'SERVER_NAME', 'SERVER_PORT', 'SERVER_SOFTWARE') as $key) { define($key, isset($_SERVER[$key]) ? $_SERVER[$key] : ''); unset(${$key}, $_SERVER[$key]); } $str = (SERVER_PORT == 443 ? 'https://' : 'http://'); // scheme $str .= SERVER_NAME; // host $str .= (SERVER_PORT == 80 ? '' : ':' . SERVER_PORT); // port $str .= $_SERVER['REQUEST_URI']; //親ã®è¦ª $script = dirname(dirname($str.'dummy')); } else { $script = dirname($init_url.'dummy'); } return $script; } /** * ã‚»ã‚ュアãªã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚¹ã‚¿ãƒ¼ãƒˆã®æ–¹æ³•。 * ãŸã ã—ã€QHMã¨é€£å‹•ã—ã¤ã¤ã€QHMコミュã«ã‚‚対応ã™ã‚‹ãŸã‚ã«ã€ã‚„ã‚„ã“ã—ã„処ç†ã‚’ã—ã¦ã„ã‚‹ * ã®ã§æ³¨æ„ãŒå¿…è¦ */ function secure_session_start() { $vals = parse_url( _getHost().'/index.php' ); if(TRUE){ $domain = $vals['host']; if($domain != 'localhost' && $domain != '127.0.0.1'){ if(isset($vals['port'])) { $domain .= ':'.$vals['port']; } $dir = str_replace('\\', '', dirname( $vals['path'] )); $ckpath = ($dir=='/') ? '/' : $dir.'/'; if( function_exists('ini_set') ){ ini_set('session.use_trans_sid',0); ini_set('session.name', QHM_SESSION_NAME.strlen($ckpath)); ini_set('session.use_only_cookies', 1); ini_set('session.cookie_path', $ckpath); ini_set('session.cookie_domain', $domain); ini_set('session.cookie_lifetime', 0); } } } if (SESSION_SAVE_PATH != '') { session_save_path('../'.SESSION_SAVE_PATH); } session_start(); } function h($str){ return htmlspecialchars($str); } function el($name, $mtime, $size, $thumb=true, $id='', $desc=''){ $cmd = ''; $class = ''; if(preg_match('/.*(jpeg|png|gif|jpg)$/i',$name)) $class = 'class="screenshot"'; else $class = 'class="tooltip"'; $value = "<span class=\"list_file_name\"><a href=\"view.php?id={$id}\" {$class} rel=\"d/{$name}?{$mtime}\" title=\"{$desc}\">{$name}</a></span>"; $image = ""; $icon = ""; //image if( preg_match('/.*(jpeg|png|gif|jpg)$/i', $name) ) { $icon = '<img src="images/image.png" alt="'.$desc.'" title="'.$desc.'" />'; $info = getimagesize(SWFU_DATA_DIR.$name); if(!$thumb) $value .= '<br />('.$info[0].'x'.$info[1].')'; $image = '<a href="view.php?id='.$id.'" '.$class.' rel="d/'.$name.'?'.$mtime.'"><img src="'.SWFU_DATA_DIR.$name.'?'.$mtime.'" alt="'.$name.'" style="width:100px" /></a><br />'; $cmd = '&ref2('.BASE.SWFU_DATA_DIR.$name.',nolink,ç”»åƒã®èª¬æ˜Ž);'; } //video else if( preg_match('/.*(swf|mov|ram|wmv|avi|flv)$/i',$name) ) { $icon = '<img src="images/video.png" title="ビデオファイル" />'; $cmd = '#playvideo('.BASE.SWFU_DATA_DIR.$name.',å¹…,高ã•);'; } //PDF else if( preg_match('/.*(pdf)$/i', $name) ) { $icon = '<img src="images/pdf.png" title="PDFファイル" />'; $cmd = '&dlbutton('.BASE.SWFU_DATA_DIR.$name.');'; } //compressed file else if( preg_match('/.*(zip|lzh|tgz|gz|rar|tar|bz2)$/i', $name) ) { $icon = '<img src="images/archive.png" title="圧縮ファイル" />'; $cmd = '&dlbutton('.BASE.SWFU_DATA_DIR.$name.');'; } //execute file else if( preg_match('/.*(exe|dmg)$/i', $name) ) { $icon = '<img src="images/exe.png" title="実行ファイル" />'; $cmd = '&dlbutton('.BASE.SWFU_DATA_DIR.$name.');'; } //office file else if( preg_match('/.*(doc|docx|xls|xlsx|ppt|pptx)$/i', $name) ) { $icon = '<img src="images/office.png" title="オフィスファイル" />'; $cmd = '&dlbutton('.BASE.SWFU_DATA_DIR.$name.');'; } //text file else if( preg_match('/.*(txt|text|html)$/i', $name) ) { $icon = '<img src="images/text.png" title="テã‚ストファイル" />'; $cmd = '&dlbutton('.BASE.SWFU_DATA_DIR.$name.');'; } //script file else if( preg_match('/.*(java|php|cgi|c|cpp|sh|js)$/i', $name) ) { $icon = '<img src="images/script.png" title="スクリプトファイル" />'; $cmd = '&dlbutton('.BASE.SWFU_DATA_DIR.$name.');'; } else { $cmd = '&dlbutton('.BASE.SWFU_DATA_DIR.$name.');'; } $value = $icon.' '.$value; if(! $thumb) $value .= '<br /><font style="font-size:85%">'.date('Yå¹´m月dæ—¥ H:i:s',$mtime).'</font><br /><br />'; if($thumb){ $value .= '<br />'.$image; } else{ $value .= '<a href="view.php?dl='.$name.'"><img src="images/btn_download.png" title="ダウンãƒãƒ¼ãƒ‰" /></a> '; $value .= '<a href="view.php?delete='.$name.'" onclick="return disp();"><img src="images/btn_delete.png" title="削除" /></a><br />'; } return $value; } function set_menu(&$c) { //recent_file & pae $res = $c->image->find('','created desc'); //var_dump($res); $rs = $c->admin->findone('$name=="recent_file"'); $rct_fnum = $rs['value']; $rs = $c->admin->findone('$name=="recent_page"'); $rct_pnum = $rs['value']; $recent_file = array(); $recent_page = array(); $end = count($res); $rcf_cnt = 0; $rcp_cnt = 0; for($i=0; $i<$end; $i++){ //recent file count if($rcf_cnt < $rct_fnum){ $recent_file[$i] = $res[$i]; $rcf_cnt ++; } //recent page count if($rcp_cnt < $rct_pnum){ $pname = $res[$i]['page_name']; if( $pname!='' && !isset($recent_page[$pname])) { $recent_page[$pname] = $pname; $rcp_cnt ++; } } } $c->set('recent_page',$recent_page); $c->set('recent_file',$recent_file); } function echo_menu($recent_file, $recent_page) { if(isset($_SESSION['swfu']['page_name'])) { $top = 'list.php?page='.rawurlencode($_SESSION['swfu']['page_name']); $uplink_query = '?page='.rawurlencode($_SESSION['swfu']['page_name']); $uplink_msg = $_SESSION['swfu']['page_name']; $uplink_msg_after = 'ã¸'; } else{ $top = 'index.php'; $uplink_query = ''; $uplink_msg = ''; $uplink_msg_after = ''; } $uploader = is_modern_browser()? 'up2.php': 'up.php'; echo <<<EOD <p style="line-height:1.7em;"><font style="font-size:0.9em;"><strong>{$uplink_msg}</strong>{$uplink_msg_after}</font><br /> <span style="background-color:#eee;border:1px solid #ccc;padding:5px;font-size:12px;font-weight:bold;"><a href="{$uploader}{$uplink_query}">アップãƒãƒ¼ãƒ‰</a></span></p> <br /> <p id="swfutop"><a href="$top">* トップ㸠*</a></p> <p id="qhmtop"><a href="../">* QHMトップ㸠*</a></p> <h4>最近ã®ãƒ•ァイル</h4> <p style="margin-left:0.5em;"> EOD; foreach($recent_file as $k=>$v){ $class = ''; if(preg_match('/.*(jpeg|png|gif|jpg)$/i',$v['name'])) $class = 'class="screenshot"'; else $class = 'class="tooltip"'; echo "<a href=\"view.php?id={$v['id']}\" {$class} rel=\"d/{$v['name']}\" title=\"{$v['description']}\">{$v['name']}</a><br />"; } echo <<<EOD </p> <h4>最近ã®ãƒšãƒ¼ã‚¸</h4> <p style="margin-left:0.5em;"> EOD; foreach($recent_page as $k=>$v){ $p = rawurlencode($k); echo "<a href=\"list.php?page={$p}\">{$v}</a><br />"; } echo <<<EOD </p> <h4>一覧</h4> <p style="margin-left:0.5em;"> <a href="pagelist.php">ページ一覧</a><br /> <a href="imagelist.php">ファイル一覧</a><br /> <a href="labellist.php">ラベル一覧</a><br /> </p> <h4>検索</h4> <form action="list.php" method="get"> <input type="text" size="12" name="search" value="" /><br /> <input type="submit" value="検索" /> </form> <p><a href="check.php" style="font-size:0.8em">*ファイルã®ãƒã‚§ãƒƒã‚¯*</a><br /> <a href="admin_settings.php" style="font-size:0.8em">*SWFUã®è¨å®š*</a></p> EOD; } function pr($v){echo '<pre>';var_dump($v);echo '</pre>';} function format_bytes($size, $round = 1) { $units = array(' B', ' KB', ' MB', ' GB', ' TB'); for ($i = 0; $size >= 1024 && $i < 4; $i++) $size /= 1024; return round($size, $round) . $units[$i]; } //function echo_insert_script($image) /** * Print Tool Buttons * * @params * $image <assoc>: a image record * $print <boolean>: print buttons * */ function get_buttons($image, $br = true) { $name = $image['name']; $desc = $image['description']; $desc = h(addcslashes($desc, "'")); $path = BASE.SWFU_DATA_DIR . $name; $btnimg = array( 'show' => '<img src="images/btn_ref.png" alt="貼り付ã‘" title="貼り付ã‘コマンドを挿入" />', 'show_ar' => '<img src="images/btn_ref_around.png" alt="回り込ã¿è²¼ã‚Šä»˜ã‘" title="回り込ã¿è²¼ã‚Šä»˜ã‘コマンドを挿入" />', 'dlbtn' => '<img src="images/btn_dlbutton.png" alt="ダウンãƒãƒ¼ãƒ‰ãƒœã‚¿ãƒ³" title="ダウンãƒãƒ¼ãƒ‰ãƒœã‚¿ãƒ³ã‚³ãƒžãƒ³ãƒ‰ã‚’挿入" />', 'dllnk' => '<img src="images/btn_dllink.png" alt="ダウンãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯" title="ダウンãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã‚³ãƒžãƒ³ãƒ‰ã‚’挿入" />', 'lbx' => '<img src="images/btn_lightbx.png" alt="lightbox2" title="lightbox2コマンドを挿入" />', 'gbx' => '<img src="images/btn_greybx.png" alt="greybox" title="greyboxコマンドを挿入" />', 'video' => '<img src="images/btn_playvideo.png" alt="playvideo" title="playvideoコマンドを挿入" />', 'music' => '<img src="images/btn_playlist.png" alt="playlist" title="playlistコマンドを挿入" />', ); $buttons = ''; //Image if(preg_match('/\.(jpeg|png|gif|jpg)$/i', $name)){ $past = "&show({$name},,{$desc});"; $past_ard = "#show({$name},aroundr,,{$desc})"; $lightbx2 = "&show({$name},lightbox2=group,50%,{$desc});"; $greybx = "&show({$name},greybox=group,50%,{$desc});"; $buttons .= '<a href="#" class="editmode" onclick="insert_cmd(\''.$past.'\');">'.$btnimg['show'].'</a>'. ($br? ' ': ' '); $buttons .= '<a href="#" class="editmode" onclick="insert_cmd(\''.$past_ard.'\');">'.$btnimg['show_ar'].'</a>'. ($br? '<br />': ' '); $buttons .= '<a href="#" class="editmode" onclick="insert_cmd(\''.$lightbx2.'\');">'.$btnimg['lbx'].'</a>'. ($br? ' ': ' '); $buttons .= '<a href="#" class="editmode" onclick="insert_cmd(\''.$greybx.'\');">'.$btnimg['gbx'].'</a><br />'; } /* ビデオファイル */ else if( preg_match('/.*(swf|mov|ram|wmv|avi|flv)$/i',$name) ){ $past = "#playvideo({$path},å¹…,高ã•);"; $buttons .= '<a href="#" class="editmode" onclick="insert_cmd(\''.$past.'\');">'.$btnimg['video'].'</a>'. ($br? '<br />': ' '); } /* mp3ファイル */ else if( preg_match('/.*mp3$/i',$name) ){ $past = '#playlist(タイトル){{\n'.$path.','.$image['description'].'\n}}\n'; $buttons .= '<a href="#" class="editmode" onclick="insert_cmd(\''.$past.'\');">'.$btnimg['music'].'</a>'. ($br? '<br />': ' '); } $past = "&dlbutton({$path});"; $buttons .= '<a href="#" class="editmode" onclick="insert_cmd(\''.$past.'\');">'.$btnimg['dlbtn'].'</a> '; $past = "&dllink({$path}){ダウンãƒãƒ¼ãƒ‰};"; $buttons .= '<a href="#" class="editmode" onclick="insert_cmd(\''.$past.'\');">'.$btnimg['dllnk'].'</a>'; if ($print) { echo $buttons; } return $buttons; } /** * jquery file Upload を利用ã§ãã‚‹ã‹ã©ã†ã‹ * * Google Chrome - 7.0, 8.0, 9.0, 10.0 * Apple Safari - 5.0 *1 * Mozilla Firefox - 3.6, 4.0 * Opera - 10.6 *2, 11.0 *2 * Microsoft Internet Explorer 6.0 *2, 7.0 *2, 8.0 *2, 9.0 *2 * * *1 Drag & Drop is not supported on the Windows version of Safari. * *2 MSIE and Opera have no support for Drag & Drop, multiple file selection or upload progress indication. * * see also http://aquantum-demo.appspot.com/file-upload */ function is_modern_browser() { $is_modern = true; $ua = $_SERVER['HTTP_USER_AGENT']; //chrome and firefox if (preg_match('/\s(Chrome|Firefox)\/(\d+)/', $ua, $mts)) { $browser = $mts[1]; $version = $mts[2]; } //Safari else if(preg_match('/\sVersion\/([\d.]+)\sSafari/', $ua, $mts)) { $browser = 'Safari'; $version = $mts[1]; } else { $is_modern = false; } if ($is_modern) { switch ($browser) { case 'Chrome':// Chrome v7- if ($version < 7) { $is_modern = false; } break; case 'Firefox':// Fiefox v3.6- if ($version < 3.6) { $is_modern = false; } break; case 'Safari':// Safari 5- (Mac) if ($version < 5) { $is_modern = false; } else if (strpos($ua, 'Macintosh') === FALSE) { $is_modern = false; } break; default: $is_modern = false; } } return $is_modern; } //-------------------------------- //main if ( isset($script) && $script != '') { _getHost($script); // Init matically } ?>