<?php
/*
	Copyright(c) 2010 Shift Tech Inc. All Rights Reserved.
 	http://www.shift-tech.jp/

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/**
 	* 文例管理 一覧表示
 	*
	*	@author	Konno emi
 	*  	@version   CVS: $Id: Pager.php 265 2007-07-24 06:29:05Z  $
 	*/
 	require_once ('Pager/Pager.php');
 	
	/**
	 *	ページ付け
	 *	@author	Konno emi
	 *  @param	 	$pg_limit		int　	1ページの表示件数
	 *  @param	 	$current_page　	int　	表示ページ
	 *  @param	 	$data　			array　	データ
	 *  @param	 	$method　		string　送信メソッド（'POST'/'GET'、デフォルト='GET'）
	 *  @param	 	$urlvar　		string　パラメータ名（任意、デフォルト= 'FROM'）
	 * 	@return	array			表示データ＆ページ情報
	 *  							$rtn['pagedata'] array	ページ表示用データ
	 *  							$rtn['pageNavi'] string	ページナビゲーションテキスト
	*/
	function Pager($pg_limit, $current_page, $data, $method='GET',$urlvar='pager_num')
	{

			$params = array('mode' => 'sliding',
						'perPage' => $pg_limit,
						'delta' => 2,
	//					'prevImg' => '<img src="/common-img/ico-headingtable-arrow-back.gif" alt="前のページ" width="17" height="17" border="0" />',
	//					'nextImg' => '<img src="/common-img/ico-headingtable-arrow-next.gif" alt="次のページ" width="17" height="17" border="0" />',
						'prevImg' => '&lt;&lt;&nbsp;&nbsp;',
						'nextImg' => '&nbsp;&gt;&gt; ',
						'urlVar' => $urlvar,
						'currentPage' => $current_page,
						"curPageSpanPre" => "<b>[",
						"curPageSpanPost" => "]</b>",
						'separator' => '&nbsp;',
						'clearIfVoid'=>true,
						'spacesBeforeSeparator' => 1,
						'spacesAfterSeparator' => 1,					
						'itemData' => $data,
						'httpMethod' => $method,
						"firstPagePre" => "[",
						"firstPageText" => "先頭",
						"firstPagePost" => "]",
						"lastPagePre" => "[",
						"lastPageText" => "最後",
						"lastPagePost" => "]"
						);

		$rtn = array();
		$pager = & Pager::factory($params);
		//表示データ
		$rtn['pagedata'] = $pager->getPageData();
		
		//ページナビ
		$links = $pager->getLinks();
		$rtn['pageNavi'] = $links;
		
		return $rtn;
	}
	
	/**
	 *	ページングナビゲーションのassign
	 *	@author	Nishino
	 *  @param	 	$view		Object　	Smarty View Object
	 *  @param	 	$pager　	array　		ページデータ
	 * 	@return	void
	*/
	function SetPageNavi(&$view, $pagerm, $PCD)
	{
		$tmp = explode('|',$pager['pageNavi']['pages']);
		if (count($tmp) > 1) {
			$pg = "";
			for ($i = 0; $i < count($tmp); $i++) {
				$pg .= "<span>".$tmp[$i]."</span>";
			}
			//前
			$view->assign("pagenavi_prev",$pager['pageNavi'][0]);
			//次
			$view->assign("pagenavi_next",$pager['pageNavi'][2]);
			$view->assign("pagenavi",$pg);
		}
	}
	
	/**
	 *	ページ付け
	 *	@author		Nobuo Nishino
	 *  @param	 	$pg_limit		int　	1ページの表示件数
	 *  @param	 	$current_page　	int　	表示ページ
	 *  @param	 	$data　			array　	データ
	 *  @param	 	$method　		string　送信メソッド（'POST'/'GET'、デフォルト='GET'）
	 *  @param	 	$urlvar　		string　パラメータ名（任意、デフォルト= 'FROM'）
	 * 	@return	array			表示データ＆ページ情報
	 *  							$rtn['pagedata'] array	ページ表示用データ
	 *  							$rtn['pageNavi'] string	ページナビゲーションテキスト
	*/
	function PagerBlog($pg_limit, $current_page, $data, $method='GET',$urlvar='pager_num')
	{
		$params = array(
			'mode' => 'sliding',
			'perPage' => $pg_limit,
			'delta' => 5,
			'append'   => true,
			'urlVar' => $urlvar,
			'prevImg' => 'NEW',
			'nextImg' => 'OLD',
			'curPageLinkClassName'=>'pageNum',
			'currentPage' => $current_page,
			'separator' => '|',
			'clearIfVoid'=>true,
			'spacesBeforeSeparator' => 0,
			'spacesAfterSeparator' => 0,
			'totalItems' => count($data),
			'itemData' => $data
		);
		$pager = & Pager::factory($params);
		$data  = $pager->getPageData();
		$links = $pager->getLinks();
		
		//ナビゲーションの作成
		$tmp = explode('|',$links['pages']);
		$pg = "";
		$pg_cnt = 0;
		for ($i = 0; $i < count($tmp); $i++) {
			$pg .= "<li class=\"pageNum\">".$tmp[$i]."</li>";
			if ($tmp[$i] != "") {
				$pg_cnt++;
			}
		}
		$rtn = array();
		$rtn['LIST'] = $data;
		$rtn['PAGE_CNT'] = $pg_cnt;
		$rtn['pageNavi_FROM'] = $links[2];
		$rtn['pageNavi_TO'] = $links[0];
		$rtn['pageNavi'] = $pg;
		return $rtn;
	}
	
	/**
	 *	ページ付け（汎用リスト用）
	 *	@author		Nobuo Nishino
	 *  @param	 	$pg_limit		int　	1ページの表示件数
	 *  @param	 	$current_page　	int　	表示ページ
	 *  @param	 	$data　			array　	データ
	 *  @param	 	$method　		string　送信メソッド（'POST'/'GET'、デフォルト='GET'）
	 *  @param	 	$urlvar　		string　パラメータ名（任意、デフォルト= 'FROM'）
	 * 	@return	array			表示データ＆ページ情報
	 *  							$rtn['pagedata'] array	ページ表示用データ
	 *  							$rtn['pageNavi'] string	ページナビゲーションテキスト
	*/
	function PagerList($pg_limit, $current_page, $data, $method='GET',$urlvar='pager_num')
	{
		$params = array(
			'mode' => 'sliding',
			'perPage' => $pg_limit,
			'delta' => 5,
			'append'   => true,
			'urlVar' => $urlvar,
			'prevImg' => 'PREV',
			'nextImg' => 'NEXT',
			'curPageLinkClassName'=>'pageNum',
			'currentPage' => $current_page,
			'separator' => '|',
			'clearIfVoid'=>true,
			'spacesBeforeSeparator' => 0,
			'spacesAfterSeparator' => 0,
			'totalItems' => count($data),
			'itemData' => $data
		);
		$pager = & Pager::factory($params);
		$data  = $pager->getPageData();
		$links = $pager->getLinks();
		
		//ナビゲーションの作成
		$tmp = explode('|',$links['pages']);
		$pg = "";
		$pg_cnt = 0;
		for ($i = 0; $i < count($tmp); $i++) {
			$pg .= "<li class=\"pageNum\">".$tmp[$i]."</li>";
			if ($tmp[$i] != "") {
				$pg_cnt++;
			}
		}
		$rtn = array();
		$rtn['LIST'] = $data;
		$rtn['PAGE_CNT'] = $pg_cnt;
		$rtn['pageNavi_FROM'] = $links[2];
		$rtn['pageNavi_TO'] = $links[0];
		$rtn['pageNavi'] = $pg;
		
		//20071221 tyama
		//1〜20件を生成
		if($current_page<=0){$current_page=1;}
		$rtn['PFirst'] = $pg_limit*($current_page-1) + 1;
		$rtn['PLast'] = $pg_limit*($current_page-1) + count($data);

		return $rtn;
	}
	
	/**
	 *	ページ付け（携帯用）
	 *	@author		Nobuo Nishino
	 *  @param	 	$pg_limit		int　	1ページの表示件数
	 *  @param	 	$current_page　	int　	表示ページ
	 *  @param	 	$data　			array　	データ
	 *  @param	 	$method　		string　送信メソッド（'POST'/'GET'、デフォルト='GET'）
	 *  @param	 	$urlvar　		string　パラメータ名（任意、デフォルト= 'FROM'）
	 * 	@return	array			表示データ＆ページ情報
	 *  							$rtn['pagedata'] array	ページ表示用データ
	 *  							$rtn['pageNavi'] string	ページナビゲーションテキスト
	*/
	function MbPagerList($pg_limit, $current_page, $data, $method='GET',$urlvar='pager_num',$param=array())
	{
		$params = array(
			'mode' => 'sliding',
			'perPage' => $pg_limit,
			'delta' => 5,
			'append'   => true,
			'urlVar' => $urlvar,
			'prevImg' => '&lt;&lt;前',
			'nextImg' => '次&gt;&gt;',
			'curPageLinkClassName'=>'pageNum',
			'currentPage' => $current_page,
			'separator' => '|',
			'clearIfVoid'=>true,
			'spacesBeforeSeparator' => 0,
			'spacesAfterSeparator' => 0,
			'totalItems' => count($data),
			'importQuery'=> FALSE,
			'extraVars'  =>$param,
			'itemData' => $data
		);
		$pager = & Pager::factory($params);
		$data  = $pager->getPageData();
		$links = $pager->getLinks();
		
		$rtn = array();
		$rtn['LIST'] = $data;
		$rtn['pageNavi_FROM'] = $links[2];
		$rtn['pageNavi_TO'] = $links[0];
		return $rtn;
	}
?>