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" => "prev", //前ページのリンクが貼られる文字列 "nextImg" => "next", //次ページのリンクが貼られる文字列 "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(); ?>