バージョン選択

フォーラム

メインメニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
spgo
投稿日時: 2017/1/10 17:34
対応状況: −−−
常連
登録日: 2011/6/30
居住地:
投稿: 68
アクセスランキング一覧ページを(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
居住地: 東京
投稿: 631
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法
そもそもアクセス数はどのテーブルのどこに保存しているのですか?


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

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

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


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料[url=http://www.shiro8.net/blog/category/eccube_report]shiro8-weblog[/ur

spgo
投稿日時: 2017/1/10 22:30
対応状況: −−−
常連
登録日: 2011/6/30
居住地:
投稿: 68
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
居住地:
投稿: 344
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系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料[url=http://www.shiro8.net/blog/category/eccube_report]shiro8-weblog[/ur

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

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

本当に感謝いたします。

ありがとうございます。
spgo
投稿日時: 2017/1/11 11:54
対応状況: −−−
常連
登録日: 2011/6/30
居住地:
投稿: 68
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
居住地:
投稿: 344
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系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料[url=http://www.shiro8.net/blog/category/eccube_report]shiro8-weblog[/ur

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

 

ログイン

EC-CUBEペイメント

EC-CUBEクラウド

ネットショップの壺

EC-CUBEガイドブック

統計情報

総メンバー数は19,015名です
総投稿数は79,307件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1612
4
yuh
1296
5
red
1019
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
778
10 sumida 634
Copyright© LOCKON CO.,LTD. All Rights Reserved.