バージョン選択

フォーラム

メニュー

オンライン状況

42 人のユーザが現在オンラインです。 (31 人のユーザが フォーラム を参照しています。)
登録ユーザ: 2
ゲスト: 40
red be-s もっと...

サイト内検索

質問 > フロント機能 > 新規ページの変数の表示につきまして

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ma-ma
投稿日時: 2017/7/3 13:51
対応状況: −−−
常連
登録日: 2014/9/22
居住地:
投稿: 55
新規ページの変数の表示につきまして
▼テンプレート
[EC-CUBE] 2.13.5
[レンタルサーバ] Zenlogic
[PHP] PHP 5.6.21
[データベース] MySQL 5.1.73
[現象]
管理画面から新規ページの追加を行い、
そのページにカテゴリ一覧を表示させたいと考えております。
新規追加ページのphpのコードは下記となります。
-----------
<?php
require_once '../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/LC_Page_Ex.php';

/**
* ユーザーカスタマイズ用のページクラス
*
* 管理画面から自動生成される
*
* @package Page
*/
class LC_Page_User extends LC_Page_Ex
{
public $arrParentID;

/**
* Page を初期化する.
*
* @return void
*/
public function init()
{
parent::init();
}

/**
* Page のプロセス.
*
* @return void
*/
public function process()
{
parent::process();
$this->action();
$this->sendResponse();
$this->arrCat = $this->lfGetMainCat(true);
var_dump($this->arrCat);
}

/**
* Page のアクション.
*
* @return void
*/
public function action()
{

}


/**
* メインカテゴリの取得.
*
* @param boolean $count_check 登録商品数をチェックする場合はtrue
* @return array $arrMainCat メインカテゴリの配列を返す
*/
public function lfGetMainCat($count_check = false)
{

$objQuery =& SC_Query_Ex::getSingletonInstance();
$col = '*';
$from = 'dtb_category left join dtb_category_total_count ON dtb_category.category_id = dtb_category_total_count.category_id';
// メインカテゴリとその直下のカテゴリを取得する。
$where = 'level <= 2 AND del_flg = 0';
// 登録商品数のチェック
if ($count_check) {
$where .= ' AND product_count > 0';
}

$objQuery->setOption('ORDER BY rank DESC');
$arrRet = $objQuery->select($col, $from, $where);
// メインカテゴリを抽出する。
$arrMainCat = array();

foreach ($arrRet as $cat) {
if ($cat['level'] != 1) {
continue;
}
// 子カテゴリを持つかどうかを調べる。
$arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray(
$arrRet,
'parent_category_id',
'category_id',
$cat['category_id']
);
$cat['has_children'] = count($arrChildrenID) > 0;
$arrMainCat[] = $cat;
}
return $arrMainCat;
}
}

$objPage = new LC_Page_User();
$objPage->init();
$objPage->process();
-------

テンプレートファイル側で
<!--{foreach item=arrCatItem from=$arrCat}-->
<!--{$arrCatItem.category_id}-->
<!--{$arrCatItem.category_name}-->
<!--{/foreach}-->
と記述したのですが、変数が無く表示がされませんでした。

試しに、LC_Page.phpに
function lfGetMainCat()、
function process()の中に
$this->arrCat = $this->lfGetMainCat(true);
を追記したところ、
正常に表示されました。
その為、コードは問題ないのかと考えております。

新規作成したページのphpの変数を
テンプレートファイルに出力するにはどのようにすればよろしいのでしょうか?

よろしくお願いいたします。
red
投稿日時: 2017/7/4 12:46
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1569
オンライン
Re: 新規ページの変数の表示につきまして
action内に$this->arrCat = $this->lfGetMainCat(true);
を書いたらどうでしょう?


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

ma-ma
投稿日時: 2017/7/11 18:25
対応状況: −−−
常連
登録日: 2014/9/22
居住地:
投稿: 55
Re: 新規ページの変数の表示につきまして
red様

ご返信遅れてしまい申し訳ございません。
ご教示頂いた通り修正しましたら、
正常に動作いたしました。
ありがとうございます。

こちらですが、
process()に記載せずに、
action()に記述するのはなぜでしょうか?

新規で作成したページに関しては、
変数に値を入れる際は、全てaction()内に記述するのでしょうか?

質問ばかりになり、恐縮ですが、ご教示頂ければ幸いです。
よろしくお願いいたします。
yuh
投稿日時: 2017/7/14 11:43
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 新規ページの変数の表示につきまして

$this->sendResponse();
$this->arrCat = $this->lfGetMainCat(true);
var_dump($this->arrCat);

この場合、$this->sendResponse();でデザインテンプレートにデータを送った後に変数に入れてるので、テンプレート側に追加した変数が反映されないという事になります。
なので、actionに書くとそのあとに$this->sendResponse();でデータを送るので、その方がいいっていう感じですー。


----------------


http://ec-lab.net/

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


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1637
8
red
1569
9
mcontact
1275
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.