バージョン選択

フォーラム

メニュー

オンライン状況

74 人のユーザが現在オンラインです。 (59 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 74
もっと...

サイト内検索

質問 > フロント機能 > ページングカスタマイズしたい時

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
easoto
投稿日時: 2015/6/24 15:08
対応状況: −−−
半人前
登録日: 2015/5/8
居住地:
投稿: 19
ページングカスタマイズしたい時
前回ページングの仕組みが分からなくていろいろ助けていただいて本当にありがとうございました。
只今したの絵のようにページングを使ったページを実現しようとしていますが、左側のページ送りを押したとき右側の詳細のところが勝手に変わってしまうことが発見されました。
恐らくURLのところを参照にしてページングするみたいですが、
どーゆー風にコードを書けば左側の影響にかからわず右側の詳細が固定できるかわからなくて質問しました。

例)ページテンプレート

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
|*************左側***********|**********右側************|
|*(ニュース一覧)***********|*****(ニュース詳細)*****|
|****************************|**************************|
|**A***06/24****************|**************************|
|**B***05/22****************|**************************|
|**C***04/10****************|*******Example...********|
|****************************|**************************|
|pre)<2><3><4>(next**********|**************************|
|****************************|**************************|
|<2>などページ番号を*********|**************************|
|押したら右側のところが******|**************************|
|勝手に変わる****************|**************************|
|****************************|**************************|
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

PHP,テンプレートのソースファイルも添付します。

ーーーーーーーーーーーPHPのソースーーーーーーーーーーーー

function action()
{
/**
* ************************************左ページング処理*************************************************
*/

$objQuery =& SC_Query_Ex::getSingletonInstance();

$this->arrForm = $_REQUEST;

//現在のページ番号取得
$this->tpl_pageno = $this->arrForm['pageno'];

//レビューの件数取得
$linemax = $objQuery->count("dtb_news", "del_flg = 0 ORDER BY create_date DESC");
$this->tpl_linemax = $linemax;

//1ページの表示件数取得
$page_max = 5; //確認用
//デフォルトは10 $page_max = SC_Utils_Ex::sfGetSearchPageMax($arrForm['search_page_max']);

//ページ送りの取得
$urlParam = "pageno=#page#";
$objNavi = new SC_PageNavi_Ex($this->tpl_pageno, $linemax, $page_max,'return;', NAVI_PMAX, $urlParam);
$this->arrPagenavi = $objNavi->arrPagenavi;

//表示文字列アサイン
$this->tpl_strnavi = $objNavi->strnavi;

//開始行番号取得
$startno = $objNavi->start_row;

// 取得範囲の指定(開始行番号、行数のセット)
$objQuery->setLimitOffset($page_max, $startno);

//商品ごとのレビュー情報を取得する
$col = "*";
$from = "dtb_news";
$where = "del_flg = 0 ORDER BY create_date DESC";
$this->arrNewsLeft = $objQuery->select($col, $from, $where ,$arrval);

/**
* ************************************ここまで*********************************************************
*/

/**
* ************************************右ページング処理*************************************************
*/

$objQuery->setOrder('create_date desc');
$objQuery->setLimitOffset(2);
$arrNewsRight = $objQuery->select($col, $from);
$this->arrNewsRight = $arrNewsRight;

/**
* ************************************ここまで*********************************************************
*/

}

ーーーーーーーーテンプレートソースーーーーーーーーーーー

<!--{strip}-->

<br /><font size="5" face="MS ゴシック"> News ーお知らせー</font><br /><br />
<hr width="100%" color="#ff00ff" align=right><br />

<div id="news_detail_left">

<!--{if count($arrNewsLeft) > 0}-->
<!--{section name=cnt loop=$arrNewsLeft}-->
<br /><img src="<!--{$TPL_URLPATH}-->img/news_view/status/<!--{$arrNewsLeft[cnt].news_status|h}-->"> <font size="3" face="MS ゴシック"><!--{$arrNewsLeft[cnt].create_date|h}--></font><br /><br />
<a href="<!--{$smarty.const.HTTP_URL}-->news_view/detail.php?news_id=<!--{$arrNewsLeft[cnt].news_id|u}-->">
<font size="3" face="MS ゴシック" font color="black"><!--{$arrNewsLeft[cnt].news_title|h}--></font></a><br /><br />
<!--{/section}-->
<!--{/if}-->

<div align = "center">
<!--{$tpl_strnavi}-->
</div>

</div>

<div id="news_detail_right">

<!--{foreach from=$arrNewsRight item=arrNews name=arrNewsRight}-->
<div class="product_item clearfix">
<!--{assign var=id value=$arrNews.news_id}-->
<!--{assign var=arrErr value=$arrNews.arrErr}-->

<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<img src="<!--{$TPL_URLPATH}-->img/news_view/status/<!--{$arrNews.news_status|h}-->">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font size="4" face="MS ゴシック"><!--{$arrNews.create_date|h}--></font><br /><br />

<font size="5" face="MS ゴシック"><!--{$arrNews.news_title|h}--></font><br /><br />

<font size="4" face="MS ゴシック"><!--{$arrNews.news_comment|h}--></font><br /><br />

</div><!--product_item clearfix end-->

<!--{if $smarty.foreach.arrIdos.last}-->

<!--{/if}-->
<!--{foreachelse}-->
<!--{include file="frontparts/search_zero.tpl"}-->
<!--{if $smarty.foreach.recommend_products.iteration % 5 === 0}-->
<div class="clear"></div>
<!--{/if}-->
<!--{/foreach}-->

</div>



<!--{/strip}-->

yuh
投稿日時: 2015/6/24 22:18
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: ページングカスタマイズしたい時

$objQuery->setOrder('create_date desc');
$objQuery->setLimitOffset(2); 
$arrNewsRight = $objQuery->select($col, $from); 
$this->arrNewsRight = $arrNewsRight; 


この部分を

if($this->arrForm['news_id'] AND preg_match('/^[0-9]+$/',$this->arrForm['news_id'])){
$query = '
SELECT
*
FROM
dtb_news
WHERE
news_id = ?
LIMIT 1 OFFSET 0

';
$this->arrNewsRight = $objQuery->getAll($query,array($this->arrForm['news_id'])); 
}



とかに変更して、どのページに行くときにもnews_idを引き回すかSESSIONに入れるかCOOKIEに入れるかで保持すればできると思いますが、
文章とソースとコメントとテンプレートすべてが一致しないのでよくわかりません
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,952名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.