バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ページ送りのカスタマイズ

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
aska824
投稿日時: 2015/5/3 0:36
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
ページ送りのカスタマイズ
お世話になります。

現在ECCUBEのバージョン2.13.3を利用してます。

商品一覧の際のページ送りのカスタマイズについてお伺いします。
今現在

<< 1 2 3 4 >>

のようなページ送りになっていますが、

<< ●件中●〜●件表示 >>

のように数字が入らないようにしようと思っています。
ページが1ページ目の時は「<<」が表示しないように、
最終ページの時は「>>」が表示しないようにしたいのですが、
現在のページを取得してる関数がわからず困っております。

「$pageno」を利用すると思い、
<!--{if $pageno > 1}--> << <!--{/if}-->●件中●〜●件表示<!--{if $pageno < ???}--> >> <!--{/if}-->

と入れましたが、動作しませんでした。
「$pageno」はそもそも取得していないのかな?と思うので、それの代用があれば教えていただければと思いました。

合わせて「???」の部分も何を入れればいいかわかりませんでした。

もっと言いますと、「●〜●件表示」の部分も正直わかりません・・・。
PHP自体を変更しないといけないんでしょうか?

この3点わかる方がいましたらよろしくお願いします。


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

yuh
投稿日時: 2015/5/3 3:15
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: ページ送りのカスタマイズ
商品一覧で現在のページ番号はpagenoで、1ページに表示する件数はdisp_numberです。
全体の件数はtpl_linemaxになるので、

php側で

$this->startline = ($this->pageno - 1 ) * $this->disp_number;
$this->endline = $this->startline + $this->disp_number;

のような感じで計算させといて、



<!--{if $startline > 0}-->
<!--{$tpl_linemax|h}-->件中<!--{$startline |h}-->〜<!--{$endline|h}-->件表示
<!--{/if}-->
のようにして表示させればいいんじゃないでしょうか?


aska824
投稿日時: 2015/5/3 20:53
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
Re: ページ送りのカスタマイズ
早速の返答ありがとうございます。

上記を記述し、行った所、

「●件中15〜0件表示」

と表示されてしまいました。

$this->startline = $this->pageno * $this->disp_number + 1;
$this->endline = $this->startline + $this->disp_number - 1;

とさせた所、「1〜15件表示」と表示されましたが、今度は2ページ目に言っても全く同じ件数となってしまってます。
憶測ですが、
「$this->pageno」自体が読み込みされていないのかな?と思いました。
試しに、
$this->page_number

$this->now_page
も試してみましたが、やはり上記と同じ表示となってしまっています。

【追記】
上部で追加ですが、最終ページの場合の件数が
$this->startline + $this->disp_number
で記述してるので、最終ページの場合は全件数を表示させたいです。
if文を使えばいいのですが、最終ページの関数も読み込みされていないのでしょうか?
「現在のページ」と「最終ページ」の関数がわかれば後はこちらで組み立てが可能なのですが・・・。

すみませんが、どなたかご教授願います。


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

yuh
投稿日時: 2015/5/4 2:40
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: ページ送りのカスタマイズ
$this->pageno じゃなくてthis->tpl_pagenoでしたね。


LC_Page_Products_List_Exに下記のコードを追加して、


    function action(){
        parent::action();
        if(empty($this->tpl_pageno) or $this->tpl_pageno < 1){
            $pageno = 1;
        }else{
            $pageno = $this->tpl_pageno;
        }
        $this->startline = ($pageno - 1 ) * $this->disp_number;
        $this->endline = $this->startline + $this->disp_number;
        if($this->endline > $this->tpl_linemax){
            $this->endline  = $this->tpl_linemax;
        }
    }

テンプレートに書き込めばできます。
aska824
投稿日時: 2015/5/4 20:33
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
Re: ページ送りのカスタマイズ
またまた早速のお返事ありがとうございます!

このソースで表示が出来ました!
ただ、件数の部分が0〜15と15〜ってな感じになってたので、

$this->startline = ($pageno - 1 ) * $this->disp_number;
$this->endline = $this->startline + $this->disp_number;

の部分を

$this->startline = ($pageno - 1 ) * $this->disp_number + 1;
$this->endline = $this->startline + $this->disp_number - 1;

としたらうまく動作してくれました。
ありがとうございました!

あとは、<<と>>の表示ですが、
SC_PageNavi.phpに

$this->prev_navi = $before;
$this->next_navi = $next;

としてそれぞれで表示させようとしましたが、ダメでした。
<<と>>のみの取得ってできないんですか?

アドレスはわかるので、テンプレートに直接
/products/list.php?category_id=1&pageno=1
と記述すればいいんですが、「pageno=1」の部分はわかりますが、「category_id」の部分に何を入れればいいかわかりません。
category_idを取得するコードってあるんですか?

その部分もご教授願います・・・。


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

yuh
投稿日時: 2015/5/4 21:22
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: ページ送りのカスタマイズ
$this->arrSearchData['category_id']ですね。

$this->orderbyと$this->tpl_pagenoと$this->disp_numberもつけとかないといろいろずれますよ。
aska824
投稿日時: 2015/5/4 21:51
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
Re: ページ送りのカスタマイズ
すぐの返答ありがとうございます!

category_idとpagenoだけじゃ確かにおかしくなりそうですね><

おかげでうまく表示できるようになりました!

後は色々とありますが、自分の知識で何とかやっていきたいと思います。


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,710名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
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.