質問 > フロント機能 > 新規ページの変数の表示につきまして |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
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 居住地: 東京都 投稿: 1570 |
Re: 新規ページの変数の表示につきまして action内に$this->arrCat = $this->lfGetMainCat(true);
を書いたらどうでしょう?
|
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();でデザインテンプレートにデータを送った後に変数に入れてるので、テンプレート側に追加した変数が反映されないという事になります。 なので、actionに書くとそのあとに$this->sendResponse();でデータを送るので、その方がいいっていう感じですー。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |