EC CUBE SC_UTIL を使いやすくする
<?php require_once CLASS_REALDIR . 'util/SC_Utils.php'; class SC_Utils_Ex extends SC_Utils { public static function sfPrintR( $obj ) { if( DEBUG_MODE === true ) { $uid = uniqid( "debug_" ); echo '<div style="font-size: 12px;color: #00FF00;">' . "\n"; echo '<a href="#" onclick="$(\'#' . $uid . '\').toggle();">**デバッグ中**</a><br />' . "\n"; echo '<pre style="display :none;" id="' . $uid . '">' . "\n"; echo var_dump( $obj, true ); echo '</pre>' . "\n"; echo '<hr /></div>' . "\n"; } } public static function sfCopyDir( $src, $des, $mess = '', $override = false ) { if( ! is_dir( $src ) ) { return false; } $mess .= "\n[" . $src . "]\n"; $oldmask = umask( 0 ); $mod = stat( $src ); // ディレクトリがなければ作成する if( ! file_exists( $des ) ) { if( ! mkdir( $des, $mod[ 2 ] ) ) { GC_Utils_Ex::gfPrintLog( "mkdir " . $des, PLUGIN_LOG_REALFILE ); } } $fileArray = glob( $src . '*' ); if( is_array( $fileArray ) ) { foreach( $fileArray as $data_ ) { // CVS管理ファイルはコピーしない if( strpos( $data_, '/CVS/' ) !== false ) { GC_Utils_Ex::gfPrintLog( "skip " . $data_, PLUGIN_LOG_REALFILE ); continue; } $matches = array( ); mb_ereg( "^(.*[\/])(.*)", $data_, $matches ); $data = $matches[ 2 ]; if( is_dir( $data_ ) ) { $mess = SC_Utils_Ex::sfCopyDir( $data_ . '/', $des . $data . '/', $mess, $override ); $mess .= "\n[" . $src . "]\n"; } else { if( ! $override && file_exists( $des . $data ) ) { GC_Utils_Ex::gfPrintLog( $data . ":ファイルが存在します\n", PLUGIN_LOG_REALFILE ); continue; } else { $src_time = filemtime( $src . $data ); $des_time = filemtime( $des . $data ); if( $src_time == $des_time ) { GC_Utils_Ex::gfPrintLog( $data . ":ファイルの更新日付が同じです。[" . date( "Y-m-d H:i:s", $des_time ) . "]\n", PLUGIN_LOG_REALFILE ); continue; } else if( $src_time < $des_time ) { GC_Utils_Ex::gfPrintLog( $data . ":ファイルの更新日付が古いです[" . date( "Y-m-d H:i:s", $src_time ) . " < " . date( "Y-m-d H:i:s", $des_time ) . "]\n", PLUGIN_LOG_REALFILE ); continue; } else if( @copy( $data_, $des . $data ) ) { touch( $des . $data, $src_time ); $mess .= $data . ":コピー成功\n"; continue; } else { $mess .= $data . ":コピー失敗\n"; GC_Utils_Ex::gfPrintLog( $data . ":コピー失敗\n", PLUGIN_LOG_REALFILE ); continue; } } $mod = stat( $data_ ); } } } umask( $oldmask ); return $mess; } }
sfPrintR デバッグモードがtrueの場合表示しなくした。 sfCopyDir ファイルの上書きができないバグ修正 sfCopyDir コピー元ファイルがコピー先ファイルより古い場合にコピー抑止