/*----------------------------------*/
//PHP ver.4.4.2
/*----------------------------------*/
//Copyright (c) 2009 デザイントランスメディア
/*----------------------------------*/
//index.php(コラム一覧)
/*----------------------------------*/
//ver.1.0
/*----------------------------------*/
session_cache_limiter('none');
// ==========================================================================
//基本設定読み込み
// ==========================================================================
//定数定義
require_once( "../php/Define.php" );
//PEAR用インクルードパスの設定
ini_set( "include_path", PEAR_DIR );
ini_get( "include_path" );
// ==========================================================================
//自サイト内の画面遷移の場合、セッションIDを更新する。
// ==========================================================================
require_once( HOME_DIR."/system_dtm/reffere.php" );
if( isOwnReffere() ){
// セッションIDが指定されている場合の対応
if ( isset( $_POST['cartsessid'] ) ) {
session_id( $_POST['cartsessid'] );
} elseif ( isset( $_GET['cartsessid'] ) ) {
session_id( $_GET['cartsessid'] );
}
}
session_start();
//PEAR::PAGER
require_once( "Pager/Pager.php" );
//ADOdb
include( ADO_DIR."adodb.inc.php" );
//DB接続クラス
require_once( "../php/DBAction.class.php" );
//Requestクラス
require_once( "../php/RequestForm.class.php" );
//認証クラス
require_once( "../php/AuthBase.class.php" );
//検索クラス
require_once( "../php/SearchWord.class.php" );
// ==========================================================================
//日付の取得(システム時刻)
// ==========================================================================
$date = date( "Y-m-d H:i:s" );
// ==========================================================================
//イメージパス
// ==========================================================================
$img_path = IMG_PATH;
$img_url = IMG_URL;
// ==========================================================================
//DB接続(MySQL)
// ==========================================================================
$mysql = new DBAction();
$conn = $mysql->getConnection();
if ( !$conn ) {
//エラー処理
echo( "システムエラーです" );
exit();
}
// ==========================================================================
//画面情報の取得
// 機能 --- act(mode)
// CMS、詳細表示 --- Detail (View) *default*
// CMS、リスト表示 --- List (View)
// ==========================================================================
$request = new RequestForm();
$act = $request->getVar( "act" );
$mode = $request->getVar( "mode" );
$tbl_CmsEntry = TABLENAME_PREFIX . "cms_entry";
$tbl_CmsCategory = TABLENAME_PREFIX . "cms_category";
unset( $account_id );
$account_id = "cms";
switch ( $act ) {
default:
$act = "List"; //強制
/// ==================================
/// CMS、リスト --- Detail (View) *default*
/// ==================================
case "List":
switch ( $mode ) {
default:
$mode = "View"; //強制
/// ==================================
/// CMS、リスト表示 --- Detail (View) *default*
/// ==================================
case "View":
unset( $cms_id );
unset( $cms_cat_id );
unset( $cms_year );
unset( $cms_month );
unset( $list );
if ( isset($_GET['cms_cat_id']) ) {
//取得条件:カテゴリー一覧
$cms_cat_id = $_GET['cms_cat_id'];
$stt = $conn->prepare( "SELECT CmsEntry.*, CmsCategory.cms_cat_name FROM $tbl_CmsEntry AS CmsEntry LEFT OUTER JOIN $tbl_CmsCategory AS CmsCategory ON CmsEntry.cms_cat_id = CmsCategory.cms_cat_id WHERE CmsEntry.cms_view_flg = ? AND CmsEntry.cms_cat_id = ? AND CmsEntry.account = ? ORDER BY CmsEntry.cms_date DESC" );
$params = array( "1", $cms_cat_id,$account_id );
} elseif ( isset($_GET['cms_year']) AND isset($_GET['cms_month']) ) {
//取得条件:バックナンバー一覧
$cms_year = $_GET['cms_year'];
$cms_month = $_GET['cms_month'];
$end_day = date('t', mktime(0, 0, 0, $cms_month + 1, 0, $cms_year));
$date_start = sprintf( "%04d-%02d-%02d 00:00:00", $cms_year, $cms_month, '1' );
$date_end = sprintf( "%04d-%02d-%02d 23:59:59", $cms_year, $cms_month, $end_day );
$stt = $conn->prepare( "SELECT CmsEntry.*, CmsCategory.cms_cat_name FROM $tbl_CmsEntry AS CmsEntry LEFT OUTER JOIN $tbl_CmsCategory AS CmsCategory ON CmsEntry.cms_cat_id = CmsCategory.cms_cat_id WHERE CmsEntry.cms_view_flg = ? AND CmsEntry.account = ? AND CmsEntry.cms_date >= ? AND CmsEntry.cms_date <= ? ORDER BY CmsEntry.cms_date DESC" );
$params = array( "1", $account_id, $date_start, $date_end );
$extraVars = array(
'act' => $act,
'mode' => $mode,
'account' => $account_id,
'cms_year' => $cms_year,
'cms_month' => $cms_month
);
} else {
//条件なし
$stt = $conn->prepare( "SELECT CmsEntry.*, CmsCategory.cms_cat_name FROM $tbl_CmsEntry AS CmsEntry LEFT OUTER JOIN $tbl_CmsCategory AS CmsCategory ON CmsEntry.cms_cat_id = CmsCategory.cms_cat_id WHERE CmsEntry.cms_view_flg = ? AND CmsEntry.account = ? ORDER BY CmsEntry.cms_date DESC" );
$params = array( "1", $account_id );
}
$rs = $conn->Execute( $stt, $params );
if ( $rs && $rs->NumRows()>0 ) {
while ( $row = $rs->FetchRow('DB_FETCHMODE_ASSOC') ) {
$row['cms_text'] = strip_tags($row['cms_text']);
$row['cms_text'] = mb_strimwidth( $row['cms_text'], 0, 148, "...", 'UTF-8' );
$list[] = $row;
}
}
//カテゴリー一覧 を取得
unset( $cat_list );
$stt = $conn->prepare( "SELECT * FROM $tbl_CmsCategory ORDER BY cms_cat_id ASC" );
$rs = $conn->Execute( $stt );
if ( $rs && $rs->NumRows()>0 ) {
while ( $row = $rs->FetchRow('DB_FETCHMODE_ASSOC') ) {
$cms_cat_count = 0;
$stt_c = $conn->prepare( "SELECT COUNT(*) FROM $tbl_CmsEntry WHERE cms_view_flg = ? AND cms_cat_id = ? AND account = ? ");
$params_c = array( "1", $row[cms_cat_id], $account_id );
$rs_c = $conn->Execute( $stt_c, $params_c );
if ( $rs_c && $rs_c->NumRows()>0 ) {
while ( $row_c = $rs_c->FetchRow('DB_FETCHMODE_ASSOC') ) {
$cms_cat_count = $row_c[0];
}
}
$row['cms_cat_count'] = $cms_cat_count;
$cat_list[] = $row;
}
}
//バックナンバー一覧 を取得
unset( $year_list );
unset( $y_list );
$stt = $conn->prepare( "SELECT cms_date FROM $tbl_CmsEntry WHERE cms_view_flg = '1' ORDER BY cms_date DESC" );
$params = array( "1" );
$rs = $conn->Execute( $stt );
if ( $rs && $rs->NumRows()>0 ) {
while ( $row = $rs->FetchRow('DB_FETCHMODE_ASSOC') ) {
$year_list[] = $row;
}
if ( $year_list && count( $year_list )>0 ) {
foreach ( $year_list as $key => $val ) {
$target_y = intval( substr( $val['cms_date'] ,0 ,4 ) );
$target_m = intval( substr( $val['cms_date'] ,5 ,7 ) );
unset( $y_info );
if ( $y_list[$target_y] ) {
$y_info = $y_list[$target_y];
} else {
$y_info['year'] = $target_y;
}
unset( $m_list );
if ( $y_info['m_list'] ) {
$m_list = $y_info['m_list'];
}
unset( $m_info );
if ( $m_list && $m_list[$target_m] ) {
$m_info = $m_list[$target_m];
$m_info['count']++;
} else {
$m_info['month'] = $target_m;
$m_info['count'] = 1;
}
$m_list[$target_m] = $m_info;
$y_info['m_list'] = $m_list;
$y_list[$target_y] = $y_info;
}
}
}
$perPage = "5"; //件数
if ( $_POST['item_count'] ) {
$perPage = $_POST['item_count']; //件数
} elseif ( $_GET['item_count'] ) {
$perPage = $_GET['item_count']; //件数
}
if ( $perPage=="all" ) {
$perPage = count($list);
} elseif ( $perPage==0 || $_POST['reset'] ) {
$perPage = intval( PER_PAGE_GOODS_LIST );
if ( $perPage<=0 ) {
$perPage = "5";
}
}
if ( !$prev_str || $prev_str=="" ) {
$prev_str = "";
}
if ( !$next_str || $next_str=="" ) {
$next_str = "";
}
$params = array (
"mode" => "sliding",
"itemData" => $list, //ページングする配列
"perPage" => $perPage, //1ページあたりの件数
"delta" => "4",
"expanded" => "true",
"append" => "true",
"altPrev" => $prev_str, //"<<"表示のalt
"altNext" => $next_str, //">>"表示のalt
"altPage" => '',
"prevImg" => "
", //前ページのリンクが貼られる文字列
"nextImg" => "
", //次ページのリンクが貼られる文字列
"separator" => "|", //ページ番号の境目に書かれる
"spacesBeforeSeparator" => "1",
"spacesAfterSeparator" => "1",
"curPageLinkClassName" => "now",
"linkClass" => "",
"curPageSpanPre" => "",
"curPageSpanPost" => "", //現在のページ数に貼るタグ
"firstPagePre" => "",
"firstPagePost" => "", //最初のページのリンクを張る文字
"lastPagePre" => "",
"lastPagePost" => "",
"showAllText" => "",
"extraVars" => $extraVars
);
$o_page = Pager::factory( $params );
$pview = $o_page->getPageData();
$numbers['page'] = $o_page->getCurrentPageId();
$numbers['allpage'] = $o_page->numPages();
$numbers['allcount'] = $o_page->numItems();
$numbers['perpage'] = $params['perPage'];
$numbers['count_start'] = $numbers['perpage'] * ( $numbers['page'] - 1 ) + 1;
$numbers['count_end'] = $numbers['perpage'] * $numbers['page'];
if ( $numbers['count_end'] > $numbers['allcount'] ) {
$numbers['count_end'] = $numbers['allcount'];
}
$numbers['page'] = $numbers['page'] - 1;
$navi = $o_page->getLinks();
$i_start = 1;
$i_end = $numbers['allpage'];
$i_range = 5;
if ( $i_end > $i_range ) {
$current_page = $numbers['page'] + 1;
$i_range2 = floor($i_range/2);
if ( $current_page > $i_range2 ) {
$i_start = $current_page - $i_range2;
}
$i_end = $i_start + $i_range;
if ( $i_end > $numbers['allpage'] ) {
$i_end = $numbers['allpage'];
$i_start = $i_end - $i_range;
}
}
for ( $i=$i_start; $i<=$i_end; $i++ ) {
$pageno[] = $i;
}
$page_title = "";
require_once( "list.class.php" );
$view = new ListPage();
$view -> assign( $list );
$view -> assign_view( $pview );
$view -> assign_numbers( $numbers );
$view -> assign_navi( $navi );
$view -> assign_pageno( $pageno );
$view -> assign_account_id( $account_id );
$view -> assign_account( $account_id );
$view -> assign_cat_list( $cat_list );
$view -> assign_y_list( $y_list );
$view -> assign_cms_year( $cms_year );
$view -> assign_cms_month( $cms_month );
$view -> assign_cms_id( $cms_id );
$view -> assign_cms_cat_id( $cms_cat_id );
$view -> assign_page_title( $page_title );
$view -> display();
break;
}
break;
/// ==================================
/// CMS、詳細 --- Detail (View)
/// ==================================
case "Detail":
switch ( $mode ) {
default:
$mode = "View"; //強制
/// ==================================
/// CMS、詳細 --- List (View)
/// ==================================
case "View":
unset( $cms_id );
unset( $cms_cat_id );
unset( $cms_year );
unset( $cms_month );
$page_title = "";
unset( $list );
$cnt = 0;
$id = $_GET['id'];
//記事取得
$stt = $conn->prepare( "SELECT CmsEntry.*, CmsCategory.cms_cat_name,CmsCategory.cms_cat_id FROM $tbl_CmsEntry AS CmsEntry LEFT OUTER JOIN $tbl_CmsCategory AS CmsCategory ON CmsEntry.cms_cat_id = CmsCategory.cms_cat_id WHERE CmsEntry.cms_view_flg = ? AND CmsEntry.account = ? AND CmsEntry.cms_id = ? " );
$params = array( "1", $account_id, $id );
$extraVars = array(
'act' => $act,
'mode' => $mode,
'account' => $account_id,
'cms_cat_id' => $cms_cat_id
);
$rs = $conn->Execute( $stt, $params );
if ( $rs && $rs->NumRows()>0 ) {
while ( $row = $rs->FetchRow('DB_FETCHMODE_ASSOC') ) {
$row['cms_text'] = nl2br($row['cms_text']);
$list = $row;
$page_title = $row['cms_title'];
}
}
//カテゴリー一覧 を取得
unset( $cat_list );
$cnt = 0;
$stt = $conn->prepare( "SELECT * FROM $tbl_CmsCategory ORDER BY cms_cat_id ASC" );
$rs = $conn->Execute( $stt );
if ( $rs && $rs->NumRows()>0 ) {
while ( $row = $rs->FetchRow('DB_FETCHMODE_ASSOC') ) {
$cnt += 1;
$row['row_no'] = $cnt;
$cat_list[] = $row;
}
}
//バックナンバー一覧 を取得
unset( $year_list );
unset( $y_list );
$stt = $conn->prepare( "SELECT cms_date FROM $tbl_CmsEntry WHERE cms_view_flg = '1' ORDER BY cms_date DESC" );
$params = array( "1" );
$rs = $conn->Execute( $stt );
if ( $rs && $rs->NumRows()>0 ) {
while ( $row = $rs->FetchRow('DB_FETCHMODE_ASSOC') ) {
$year_list[] = $row;
}
if ( $year_list && count( $year_list )>0 ) {
foreach ( $year_list as $key => $val ) {
$target_y = intval( substr( $val['cms_date'] ,0 ,4 ) );
$target_m = intval( substr( $val['cms_date'] ,5 ,7 ) );
unset( $y_info );
if ( $y_list[$target_y] ) {
$y_info = $y_list[$target_y];
} else {
$y_info['year'] = $target_y;
}
unset( $m_list );
if ( $y_info['m_list'] ) {
$m_list = $y_info['m_list'];
}
unset( $m_info );
if ( $m_list && $m_list[$target_m] ) {
$m_info = $m_list[$target_m];
$m_info['count']++;
} else {
$m_info['month'] = $target_m;
$m_info['count'] = 1;
}
$m_list[$target_m] = $m_info;
$y_info['m_list'] = $m_list;
$y_list[$target_y] = $y_info;
}
}
}
require_once( "detail.class.php" );
$view = new Detail();
$view -> assign( $list );
$view -> assign_cms_id( $cms_id );
$view -> assign_cat_list( $cat_list );
$view -> assign_y_list( $y_list );
$view -> assign_page_title( $page_title );
$view -> display();
}
break;
}
exit();
?>