質問 > フロント機能 > アクセスランキング一覧ページを(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 居住地: 東京 投稿: 799 |
Re: アクセスランキング一覧ページを(LC_Page_Products_List.php)を使用して作成した時の順位の表示方法 そもそもアクセス数はどのテーブルのどこに保存しているのですか?
|
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行の配列がセットされていると思います。
|
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から始まる仕様だったと思います。
|
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で変数に計算結果をセットする方法を調べていただいたほうがいいかもしれません・・・。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |