<?php
    
require_once('admin-header.php');

    
//ログを保存するディレクトリ (事前に作成しておく)
    
$arcdir_m    "../diary/monthly/";    //月毎
    
$arcdir_d    "../diary/log/";        //日毎
    
$arcdir_c    "../diary/cat/";        //カテゴリ毎

    //使用するテンプレート
    
$tmpl_m        "../tmpl_static_m.php";        //月毎
    
$tmpl_d        "../tmpl_static_d.php";        //日毎
    
$tmpl_c        "../tmpl_static_c.php";        //カテゴリ毎

    
$beg_date    $_GET['bym'];
    
$beg_date    .= ( $_GET['bd'] ) ? $_GET['bd'] : "01";
    
$end_date    $_GET['eym'];
    
$end_date    .= ( $_GET['ed'] ) ? $_GET['ed'] : "01";

    
//月毎
    
if( isset( $_GET['submit_m'] ) ) {
        if( 
GetMonthPosttrue$_GET['order'] ) ) {
            
//月毎の連想配列として挿入していく
            
foreach( $posts as $val ) {
                
$dkey substr$val->post_date0) . substr$val->post_date5);
                
$pasts[$dkey][] = $val;
            }

            foreach( 
$pasts as $date => $past ) {
                
//ログファイル名
                
$logfile    $date ".html";
                
$logdir        $arcdir_m;

                
//出力を全てバッファに
                
ob_start( );

                
//ログの日付
                
$log_y    substr$date0);
                
$log_m    substr$date4);

                
//テンプレート読み込み
                
$posts    $past;
                require( 
$tmpl_m );

                
WriteBuffer$logfile$logdir );

                
//バッファをクリア
                
ob_end_clean( );
            }
        }
    }
    
//日毎
    
if( isset( $_GET['submit_d'] ) ) {
        if( 
GetMonthPostfalse$_GET['order'] ) ) {
            
$pasts    $posts;

            foreach( 
$pasts as $past ) {
                
//ログファイル名
                
$logfile    $past->ID ".html";
                
$logdir        $arcdir_d;

                
//出力を全てバッファに
                
ob_start( );

                
//記事タイトル
                
$previousday    0;
                
$log_title        $past->post_title;

                
//テンプレート読み込み
                
$posts = array( $past );
                require( 
$tmpl_d );

                
WriteBuffer$logfile$logdir );

                
//バッファをクリア
                
ob_end_clean( );
            }
        }
    }
    
//カテゴリ毎
    
if( isset( $_GET['submit_c'] ) ) {
        if( 
$_GET['cat'] == "all" ) {
            
$catlist $wpdb->get_results"SELECT * FROM $tablecategories WHERE 1=1 ORDER BY cat_name ASC" );
            foreach( 
$catlist as $category ) {
                
//カテゴリ毎の投稿を取得
                
$categories $wpdb->get_results("SELECT * FROM $tablepost2cat WHERE category_id = $category->cat_ID");
                
$log = array( );
                if( !
is_array$categories ) )    continue;
                foreach( 
$categories as $p2c ) {
                    
$logs    $wpdb->get_results("SELECT * FROM $tableposts WHERE $p2c->post_id = ID");
                    if( 
$logs )    $log[] = $logs[0];
                }
                
$posts $log;

                
//ログファイル名
                
$logfile    $category->cat_ID ".html";
                
$logdir        $arcdir_c;
                
$_GET['cat'] = $category->cat_ID;

                
//カテゴリ名
                
$catinfo $wpdb->get_results"SELECT * FROM wp_categories WHERE cat_ID = $category->cat_ID" );
                
$log_catname $catinfo[0]->cat_name;

                
//出力を全てバッファに
                
ob_start( );

                
//テンプレート読み込み
                
require( $tmpl_c );

                
WriteBuffer$logfile$logdir );

                
//バッファをクリア
                
ob_end_clean( );
            }
        }
        else {
            
$categories $wpdb->get_results("SELECT * FROM $tablepost2cat WHERE category_id = {$_GET['cat']}");
            
$log = array( );
            if( !
is_array$categories ) )    continue;
            foreach( 
$categories as $p2c ) {
                
$logs    $wpdb->get_results("SELECT * FROM $tableposts WHERE $p2c->post_id = ID");
                if( 
$logs )    $log[] = $logs[0];
            }
            
$posts $log;

            
//ログファイル名
            
$logfile    $_GET['cat'] . ".html";
            
$logdir        $arcdir_c;

            
//カテゴリ名
            
$catinfo $wpdb->get_results"SELECT * FROM wp_categories WHERE cat_ID = {$_GET['cat']}" );
            
$log_catname $catinfo[0]->cat_name;

            
//出力を全てバッファに
            
ob_start( );

            
//テンプレート読み込み
            
require( $tmpl_c );

            
WriteBuffer$logfile$logdir );

            
//バッファをクリア
            
ob_end_clean( );
        }
    }

//バッファを書き込む
function WriteBuffer$logfile$logdir )
{
    
//バッファを取得
    
if( $buffer ob_get_contents( ) ) {
        
//ディレクトリ作成
/*        if( !is_dir( $logdir ) ) {
            mkdir( $logdir, 0777 );
            chmod( $logdir, 0777 );
            chown( $logdir, "user" );
        }*/

        //書き込み
        
if( $fp fopen$logdir $logfile"w" ) ) {
            
fwrite$fp$buffer );
            
fclose$fp );
        }
        else {
            echo 
"File Open Error !";
        }
    }
}

//ログを取得
function GetMonthPost$month$order )
{
    global 
$posts$tableposts$wpdb$beg_date$end_date;

    
$beg_y    substr$beg_date0);
    
$beg_m    substr$beg_date4);
    
$beg_d    substr$beg_date6);
    
$end_y    substr$end_date0);
    
$end_m    substr$end_date4);
    
$end_d    substr$end_date6);

    if( 
$month ) {
        
$beg_t    date"Y-m-d G:i:s"mktime000$beg_m$beg_d$beg_y ) );
        
$end_t    date"Y-m-d G:i:s"mktime00, -1$end_m 1$end_d$end_y ) );
    }
    else {
        
$beg_t    date"Y-m-d G:i:s"mktime000$beg_m$beg_d$beg_y ) );
        
$end_t    date"Y-m-d G:i:s"mktime00, -1$end_m$end_d 1$end_y ) );
    }
    
$sql    "SELECT DISTINCT * FROM $tableposts WHERE post_date >= '$beg_t' AND post_date <= '$end_t' AND (post_status = 'publish') GROUP BY $tableposts.ID ORDER BY post_date $order";
    
$posts    $wpdb->get_results$sql );
    @
uasort$posts"cmp" );
//    echo "<div>$sql</div>";
    
return ( is_array$posts ) );
}

//日付昇順時間降順にソート
function cmp$a$b ){
    
$a_ymd    str_replace"-"""substr$a->post_date010 ) );
    
$a_time    str_replace":"""substr$a->post_date12 ) );
    
$b_ymd    str_replace"-"""substr$b->post_date010 ) );
    
$b_time    str_replace":"""substr$b->post_date12 ) );
    if( 
$a_ymd == $b_ymd )    return ( $a_time $b_time );
    else                    return ( 
$a_ymd $b_ymd );
}

function 
getYmDropdown( )
{
    global 
$tableposts$wpdb;
    
$html "";
    
$arc_result $wpdb->get_results"SELECT DISTINCT YEAR(post_date) AS yyear, MONTH(post_date) AS mmonth FROM $tableposts ORDER BY post_date DESC" );
    foreach( 
$arc_result as $arc_row ) {
        
$arc_year    $arc_row->yyear;
        
$arc_month    $arc_row->mmonth;

        if( isset( 
$_GET['m'] ) && $arc_year zeroise$arc_month) == $_GET['m'] )
            
$default ' selected="selected"';
        else
            
$default null;

        
$html .= "\t\t<option value=\"" $arc_year zeroise$arc_month) . '">';
        
$html .= "$arc_year-" zeroise$arc_month);
        
$html .= "</option>\n";
    }
    return 
$html;
}

function 
getdDropdown( )
{
    
$html "";
    for( 
$i 1$i 32$i++ ) {
        if( 
date"d" ) == $i ) {
            
$html .= "\t\t<option value=\"$i\" selected=\"selected\">$i</option>\n";
        }
        else {
            
$html .= "\t\t<option value=\"$i\">$i</option>\n";
        }
    }
    return 
$html;
}

?>

<div class="wrap">

<form name="makest_month" action="" method="get">
    <fieldset>
    <legend><?php echo "月毎のアーカイブを作成"?></legend>
    <select name='bym'>
<?php echo getYmDropdown( ); ?>
    </select>
    から
    <select name='eym'>
<?php echo getYmDropdown( ); ?>
    </select>
    <select name="order">
        <option value="ASC" selected="selected">昇順</option>
        <option value="DESC">降順</option>
    </select>
    <input type="submit" name="submit_m" value="<?php echo "作成"?>" />
    </fieldset>
</form>

<form name="makest_date" action="" method="get">
    <fieldset>
    <legend><?php echo "日毎のアーカイブを作成"?></legend>
    <select name='bym'>
<?php echo getYmDropdown( ); ?>
    </select>
    <select name="bd">
<?php echo getDDropdown( ) ?>
    </select>
    から
    <select name='eym'>
<?php echo getYmDropdown( ); ?>
    </select>
    <select name="ed">
<?php echo getDDropdown( ) ?>
    </select>
    <select name="order">
        <option value="ASC" selected="selected">昇順</option>
        <option value="DESC">降順</option>
    </select>
    <input type="submit" name="submit_d" value="<?php echo "作成"?>" />
    </fieldset>
</form>

<form name="makest_cat" action="" method="get"> 
    <fieldset> 
    <legend><?php echo "カテゴリ毎のアーカイブを作成"?></legend> 
<?php dropdown_cats() ?> 
    <select name="order">
        <option value="ASC">昇順</option>
        <option value="DESC" selected="selected">降順</option>
    </select>
    <input type="submit" name="submit_c" value="<?php echo "作成"?>" /> 
    </fieldset>
</form>

</div>