バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ブロック設定で作成した「tpl」ファイルに変数を渡したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
non888
投稿日時: 2019/3/6 11:22
対応状況: −−−
常連
登録日: 2019/2/4
居住地:
投稿: 47
ブロック設定で作成した「tpl」ファイルに変数を渡したい
EC-CUBE:2.13.5

管理画面よりブロック設定で新規に作成したブロックの「tpl」ファイルに、phpの変数に格納したデータを渡したいのですが、この「tpl」ファイルがClassのどのPHPファイルから読み込まれているか分からない状態です。

ブロック設定で作成した、「tpl」ファイルに変数を渡す場合どのphpファイルを編集したらいいのでしょうか。

よろしくお願いいたします。
468
投稿日時: 2019/3/6 11:36
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2478
Re: ブロック設定で作成した「tpl」ファイルに変数を渡したい
管理画面のブロック設定で追加したブロックのtplには、そのままでは変数を渡す事が出来ません。
データベースの値を変更し、ご自身でphpファイルを追加する必要があります。

具体的には、
dtb_blocテーブルのphp_pathカラムにphpファイルのパスを設定し(phpmyadmin等で直接DBを操作します)、
上記php_pathカラムに指定したファイルをサーバに設置します。
(/data/class/pages/frontparts/bloc/以下にファイルを追加していく形になるかと思います。)

dtb_blocテーブルにある他のブロックを参考にしてみてください。
/data/class/pages/frontparts/bloc/以下にあるphpファイルも参考になるかと思います。


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

non888
投稿日時: 2019/3/6 12:03
対応状況: −−−
常連
登録日: 2019/2/4
居住地:
投稿: 47
Re: ブロック設定で作成した「tpl」ファイルに変数を渡したい
ご返答ありがとうございます。
php_pathを変更してみましたが、ブロックが表示されなくなってしましました。

やりたい事としては、下記プログラムでDBから取得した配列を、tpl側でforeachを使用し、画像のパスなどを出力したく思っております。

=========================================
<?php

require_once('common.php');

/**
* 登録済みスライド画像取得
**/
$sql = 'SELECT COUNT(*) FROM slide_img';
$arr = [];
$arr[':id'] = $s_id;
$rows = select($sql, $arr);
$row = reset($rows);

if($row["COUNT(*)"] != 0){
// データベースからレコードを取得
$sql = 'SELECT * FROM slide_img';
$pdo = connect_db();
$stmt = $pdo->query($sql);

//連想配列で取得
while($date = $stmt->fetch(PDO::FETCH_ASSOC)){
$dates[] = $date;
}
}

====================================

この場合どのように設定したらいいのでしょうか。
yuh
投稿日時: 2019/3/6 12:16
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1612
Re: ブロック設定で作成した「tpl」ファイルに変数を渡したい
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php
data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_News_Ex.php

とかを参考に作成してみてください。


----------------
商品点数100万件、0.1秒以下表示。
https://speedtest2.ec-lab.net/products/list.php?category_id=13
2系最速(自称)

468
投稿日時: 2019/3/6 12:21
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2478
Re: ブロック設定で作成した「tpl」ファイルに変数を渡したい
ブロックが表示されなくなったのは指定したphpでエラーが発生しているのではないでしょうか?

新しく追加されたPHPは、
LC_Page_FrontParts_Bloc_Exを継承したクラスになっていますか?
actionメソッドに実現したい内容を記載すれば良いかと思います。
連想配列を$this->変数に格納すればtpl側で取得できるかと思います。

本当はSQLの発行等は、ECCUBE内のルールに合わせて記載されたほうが統一性があって良いのではないかと思いますが、
(SC_Query_Exクラスを利用する方法)
絶対ではないので、実装しやすい形の対応でも問題ないと思います。


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

non888
投稿日時: 2019/3/6 13:43
対応状況: 解決済
常連
登録日: 2019/2/4
居住地:
投稿: 47
Re: ブロック設定で作成した「tpl」ファイルに変数を渡したい
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php
data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_News_Ex.php

上記を参考に作成したところうまくいきました。
ありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は64,347名です
総投稿数は97,197件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2478
4
nanasess
2088
5
umebius
1649
6
yuh
1612
7
red
1410
8
h_tanaka
1029
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.