バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

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

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

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

よろしくお願いいたします。
468
投稿日時: 2019/3/6 11:36
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
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
居住地:
投稿: 65
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
居住地: 大阪
投稿: 1818
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

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


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


http://ec-lab.net/

468
投稿日時: 2019/3/6 12:21
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
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
居住地:
投稿: 65
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公式 Amazon Payプラグイン

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.