質問 > フロント機能 > テンプレート内へのブロックのインクルード方法について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tonton |
投稿日時: 2008/12/22 13:26
対応状況: −−−
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
テンプレート内へのブロックのインクルード方法について VER.2.3.3です。
ブロックを管理画面から1つカスタムに作成し(仮称:blocA.tpl)、それを既存のメインテンプレートやヘッダーテンプレートにインクルードしたいと考えており、その配置位置が、管理画面から配置できる部分ではないので、コードを記述して、インクルードしようと試みているのですが、上手く行かず。。。 どのようにコードを記述したらいいのか、アドバイスいただけませんでしょうか。 下記のように記述してみたのですが、 <!--{include file=`$smarty.const.USER_TEMPLATE_PATH`default/bloc/blocA.tpl}--> エラーが、 Smarty.class.php on line 1095 ということで、 なんだか、上手くいかないのです。 テンプレ内にテンプレはインクルードできないのでしょうか。 どこかにあったような気がして、検索してみたのですが、見つけられませんでした。 ブロック内には、HTMLで手書きソースを入れるので、phpやDBの関係はありません。 テンプレートファイル内にblocA.tplをインクルードしたいだけです。 宜しくお願いします。 |
seasoft |
投稿日時: 2008/12/22 21:11
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: テンプレート内へのブロックのインクルード方法について 多分文法エラーだと思います。
Smarty は詳しくないので、どのように書くのが正しいか、分からないですが… <!--{include file=`$smarty.const.USER_TEMPLATE_PATH`default/bloc/blocA.tpl}--> 赤字部分が、ヤバい予感。
|
homan |
投稿日時: 2008/12/22 21:24
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: テンプレート内へのブロックのインクルード方法について う〜ん、一度アサインしてから、includeのfileに指定するといいかもしれません(試したことはないですが・・・)。
例えば、 <!--{assign var=blocA value=$smarty.const.USER_TEMPLATE_PATH|cat:"default/bloc/blocA.tpl"}--> <!--{include file=$blocA}--> とか・・・? ↑でうまくいけば、同じような指定で↓もいけるかな? <!--{include file=$smarty.const.USER_TEMPLATE_PATH|cat:"default/bloc/blocA.tpl"}--> ちなみに、上記でエラーが表示されないけど、うまく表示されない場合は、TPL_DIRを使うといいかも?これはWEBディレクトリ以下でテンプレートパッケージ名まで含む形で拾ってきます。 TPL_DIR = /user_data/packages/default(パッケージ名)/
|
tonton |
投稿日時: 2008/12/23 17:31
対応状況: 解決済
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
Re: テンプレート内へのブロックのインクルード方法について >seasoft様
いつも、いつも、本当にありがとうございます(T_T) すみません、ご迷惑ばっかりかけて・・・ おっしゃるとおり、赤字部分含め、記述が間違ってました; homanさんのおっしゃるように修正してみたらできました! >homan様 できました!すごいです! 1つ目に記述いただいた、 <!--{assign var=blocA value=$smarty.const.USER_TEMPLATE_PATH|cat:"default/bloc/blocA.tpl"}--> <!--{include file=$blocA}--> の形で表示することができました。 急いでやったので、もしかしたら、どこか間違えたせいかもしれませんが、2つめと3つ目は、少しエラーの形が変わったりしましたが、表示はできませんでした。 TPL_DIRでの指定のほうは、多分、カスタムブロックなので、違う場所を探してきてしまったのかもしれませんね。(つまり後ろのブロックの指定パスが間違っていたのかも・・・) ともあれ、自分では思いつかないアイデアで、本当にすごく助かりました! ありがとうございました。 その分、自分で役に立ちそうなトピックのところに、還元して帰ります(*^^*);; |
seasoft |
投稿日時: 2008/12/23 22:27
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: テンプレート内へのブロックのインクルード方法について ちなみに
<!--{include file="`$smarty.const.USER_TEMPLATE_PATH`default/bloc/blocA.tpl"}--> とかは、無理ですかね。 いや、根拠も何も無い勘ですので… 暇なときに、実験程度に試してみてください (他力本願でスイマセン)
|
tonton |
投稿日時: 2008/12/24 0:04
対応状況: −−−
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
Re: テンプレート内へのブロックのインクルード方法について >seasoft様
試してみましたよ。(^^// こっちでも、大丈夫でした。 お二方のおかげで、問題解決できた上に勉強にもなりました。 ありがとうございます。 |
homan |
投稿日時: 2008/12/24 9:33
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: テンプレート内へのブロックのインクルード方法について アサインするのは他の箇所でも同じ変数$blocAを使うときに都合がいいと思うのですが、今回は一か所だけだと思うので、seasoftさんのやり方が直接的で分かりやすいですね。
こちらこそ勉強になりました
|
rz3 |
投稿日時: 2009/8/21 16:24
対応状況: −−−
|
新米 登録日: 2009/6/22 居住地: 投稿: 10 |
Re: テンプレート内へのブロックのインクルード方法について お世話になっております。
新規に作ったサブカテゴリを表示するブロックを、 商品一覧のメインの中に表示させたいと思っています。 それでこちらのスレッドがあてはまるのかと思い、 管理画面から商品一覧のメイン部分に <!--{include file="`$smarty.const.USER_TEMPLATE_PATH`default/bloc/subcategory.tpl"}--> 入れてみたのですが、うまくいきません。 エラーはなく、表示されたページのソースを見てみると追加したソースは消えてしまっています。 メインの上や下のブロックを表示する部分では、 きちんと表示されています。 根本的に何か違うような気もするのですが、見当がつきませんので、どうかよろしくお願いします。 |
rz3 |
投稿日時: 2009/8/27 17:11
対応状況: −−−
|
新米 登録日: 2009/6/22 居住地: 投稿: 10 |
Re: テンプレート内へのブロックのインクルード方法について 自己解決しましたので、ご報告します。
<!--{include file="`$smarty.const.USER_TEMPLATE_PATH`default/bloc/subcategory.tpl"}--> ではなく、 <!--{include_php file=`$smarty.const.HTML_PATH`frontparts/bloc/subcategory.php}--> で好きな場所にブロックを表示させることができました。 ありがとうございました。 |
masashi |
投稿日時: 2010/10/14 11:52
対応状況: −−−
|
新米 登録日: 2009/9/1 居住地: 投稿: 3 |
Re: テンプレート内へのブロックのインクルード方法について ちなみに
自分で作ったカスタムブロックを表示するには <!--{include file="`$smarty.const.USER_TEMPLATE_PATH``$smarty.const.TEMPLATE_NAME`/`$smarty.const.BLOC_DIR`subcategory.tpl"}--> で表示させられました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |