バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法**2ページ以降での順位の表示方法の設定

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
spgo
投稿日時: 2017/1/10 17:34
対応状況: −−−
一人前
登録日: 2011/6/30
居住地:
投稿: 73
アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法**2ページ以降での順位の表示方法の設定
大変お世話になっております。どうか、アドバイス、ご教授よろしくお願い致します。

既存の一覧ページ用php(LC_Page_Products_List.php)を使用して、アクセスランキング用一覧ページを作成しようとしております。

質問させて頂きたいことは、テンプレート上に表示させる順位である$rankをsc_product.phpから呼び出そうとしてできないということであります。

以下の設定ですと、sc_product.phpのfunction lists、およびfunction alldtlSQLにdtb_products.plg_countを配置し試しておりますが、アクセス数の順位のかわりにproduct_idに1が加算された番号が順位の箇所に表示されます。


<!--{foreach from=$arrProducts key=myId item=i}-->

<!--{assign var=rank value=$myId+1}-->

<font >第<!--{$rank}-->位</font>

<!--{/foreach}-->

どのファイルにどのような設定をすれば、(LC_Page_Products_List.php)を使用してアクセス数の順位を表示できるかご教授頂けませんでしょうか。

EC-CUBE:2.12.5
サーバー: Apache2.2.3
データベース: MySQL 5.0
PHP: 5.2.9
tao_s
投稿日時: 2017/1/10 18:20
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 796
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法
そもそもアクセス数はどのテーブルのどこに保存しているのですか?


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

468
投稿日時: 2017/1/10 18:27
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法
list.tplに記述を追記される予定でしょうか?
foreachで囲まれてる範囲で
<!--{$i.plg_count|u}-->
でpgl_countが表示されませんか?

$iに商品1行の配列がセットされていると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

spgo
投稿日時: 2017/1/10 22:30
対応状況: −−−
一人前
登録日: 2011/6/30
居住地:
投稿: 73
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法
468様、tao_s様、

ご教授感謝いたします。

Dtb_productsのplg_countにアクセス数がカウントされるようになっております。

また、<!--{$i.plg_count|u}-->では実際のアクセス数が表示され、順位は表示されないようです。順位を計算する設定はどこにあるのでしょうか。

トップページに作成したアクセスランキングのブロックでは以下のsmartyとphpでアクセスの順位を表示させます。

/Smarty

<!--{foreach from=$arrRanking key=myId item=i}-->

<!--{assign var=rank value=$myId+1}-->
<font >第<!--{$rank}-->位</font>

<!--{/foreach}-->

/Php

$this->arrRanking = $this->lfGetRanking();
function lfGetRanking(){
$objQuery = new SC_Query();
$col = "p.name, p.main_list_image, p.product_id, p.plg_count, ca.category_id";
$from = "dtb_products AS p
INNER JOIN dtb_product_categories AS ca ON p.product_id = ca.product_id
INNER JOIN dtb_category AS ct ON ca.category_id = ct.category_id ";
$objQuery->setorder("p.plg_count DESC");
$objQuery->setlimit(10);
return $objQuery->select($col, $from, $where);

何かお分かりになりますでしょうか。
468
投稿日時: 2017/1/10 23:13
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法
すみません。カウント数と勘違いしていました。

データを取り出した時にアクセス数の降順に並び替えられているようですので、
ループの回数が取得出来れば良いでしょうか?
foreachでnameを指定して、そのnameに対して、iterationでループ回数を取得できます。(このあたりはsmartyの機能です)
<!--{foreach from=$arrRanking key=myId item=i name=foo}-->
<!--{$smarty.foreach.foo.iteration-->
<!--{/foreach}-->

以下の記述でrank変数に代入できるか分かりませんが、
たぶん、こういった記述になると思います。
<!--{assign var=rank value=$smarty.foreach.foo.iteration}-->

あと、カウントは1から始まる仕様だったと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

spgo
投稿日時: 2017/1/11 0:03
対応状況: −−−
一人前
登録日: 2011/6/30
居住地:
投稿: 73
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法
468様、tao_s様、

順位をsc_product.php経由で表示できました。

本当に感謝いたします。

ありがとうございます。
spgo
投稿日時: 2017/1/11 11:54
対応状況: −−−
一人前
登録日: 2011/6/30
居住地:
投稿: 73
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法**2ページ以降での順位の表示方法の設定
468様、

大変申し訳ございませんが、新たな問題が発生しておりまして、ページング機能で左下の<<2,3,4>>の2をクリックして次ページに移行すると、その2ページ目では1ページのランキングの一番最後のランキングの番号の次の番号のランキングの商品を表示できるのですが、表示されるランキング番号が再度1から始まってしまいます。

例えば1ページ目のランキングの最後尾が15であれば、2ページ目の最初の商品のランキングが16でなければならないものが(表示される商品自体はランキングが16のものですが)1が表示されます。

ページング機能でランキングの順位を次ページにそのまま引き渡す設定にかかわる事だと思われますが、何か対処策はございますでしょうか。

以下は本件に関わる現状の設定です。

<form name="form1" id="form1" method="get" action="?">
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<!--{* ▼検索条件 *}-->
<input type="hidden" name="category_id" value="<!--{$arrSearchData.category_id|h}-->" />
<input type="hidden" name="name" value="<!--{$arrSearchData.name|h}-->" />
<input type="hidden" name="orderby" value="<!--{$orderby|h}-->" />
<input type="hidden" name="disp_number" value="<!--{$disp_number|h}-->" />
<input type="hidden" name="pageno" value="<!--{$tpl_pageno|h}-->" />
<input type="hidden" name="rnd" value="<!--{$tpl_rnd|h}-->" />
</form>

<!--{foreach from=$arrProducts key=myId item=i name=foo}-->

<!--{assign var=rank value=$smarty.foreach.foo.iteration}-->
<p><!--{$rank}-->位</p>

<!--{/foreach}-->

<div class="navi"><!--{$tpl_strnavi}--></div>

<form name="page_navi_top" id="page_navi_top" action="?">
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<!--{if $tpl_linemax > 14}--><!--{$smarty.capture.page_navi_body|smarty:nodefaults}--><!--{/if}-->
</form>
468
投稿日時: 2017/1/11 12:56
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法**2ページ以降での順位の表示方法の設定
現在、テストして確認出来る環境が無いので、取り急ぎ、予測での回答になりますが、
以下の部分をページ数に合わせて計算させてやればいいかと思います。
<!--{assign var=rank value=$smarty.foreach.foo.iteration + ($disp_number * ($tpl_pageno - 1))}-->


$tpl_pageno = 現在のページ数
$disp_number = 1ページあたりの件数
と予想して記述しております。

計算式の記述がこのままだとエラーが出るかもしれませんので、
エラーが出るようであれば、smartyで変数に計算結果をセットする方法を調べていただいたほうがいいかもしれません・・・。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

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


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.