[Maple-user: 91] Re: maple での smarty へのアクセス方法について

Back to archive index

TAKAHASHI Kunihiko takah****@knosp*****
2005年 10月 13日 (木) 02:11:18 JST


高橋(kunit)です。

On Thu, 13 Oct 2005 00:51:58 +0900 (JST)
あ ああ <gulic****@yahoo*****> wrote:

> はじめまして、gulic です。
>
はじめまして。これからもよろしくお願いします。

> mapleを使いはじめたのですが、smarty関連で分からない事が
> ありますので質問させて下さい。
> 
> sample 等を見たのですが、 smartyに変数を assign している
> 所が見当たりませんでした。
> 
> execute メソッドの中で行うのかなと思いましたが、どのよう
> にしてsmartyにアクセスするのでしょうか?
>
Mapleでは「いちいちテンプレートエンジンを初期化するコードを
書くのめんどくさくない?」というポリシーでそのあたりを隠蔽
しちゃってます。

具体的には以下のような形です。

 - Viewフィルタを使うことにより、Smartyの初期化を行い、
   テンプレートからActionの関数を呼べるようにする
   (Actionに出力したい値を返却する関数を準備する)

ただし、そうはいってもSmartyに対して assign するという方法も
行いたいという場合には、以下のようなやり方になると思います。
(このやり方でも間接的に assign することにはなります)

(1) 独自のSmarty制御クラスを準備する

  標準のSmarty制御クラス(maple/core/Smarty4Maple.class.php)を
  ベースに独自クラスを準備する。
 (例えば、maple/core/MySmarty.class.phpのようにする)
  こちらで今まで行われていたような「delimiter変更」や
  「pluginディレクトリ」の制御を行う。

(2) 独自のViewフィルタを準備する

  標準のViewフィルタ(maple/filter/Filter_View.class.php)を元に
  別フィルタをつくる。
 (例えば、maple/filter/Filter_CustomView.class.phpのようにする)
  そのときに、標準のSmarty制御クラスの変わりに(1)で作った
  独自Smarty制御クラスを使うようにする。

(3) Actionからのフックを準備

  Actionで関数を準備すれば assign できるようなフックを準備する。
  これは(1)(2)でつくったクラスを修正することによって実現する。

  どのようなものをいれるかは以前熊倉さんのblogでかかれたものが
  大変参考になると思います。

  http://hatotech.org/kumatch/archives/000442.html

(4) maple.iniの記述を変更

  普段は[View]セクションとしていたものを[CustomView]にする。
  そうすることにより、標準のViewフィルタではなくて、独自の
  Viewフィルタが使用される。

--- ここから

[CustomView]
success = xxx/yyy/zzzz/index.html

--- ここまで

こんな感じで実現できると思いますが、お望みのものになりますでしょうか。

Mapleで準備している各種Filterとかは拡張したり差し替えたりしていって
使いやすいものにしていってもらえればいいかなと思います。
(といっても、Filter周りのドキュメントがなくて・・・ってのはあるで
  しょうね。がんばります)

もし、すごい便利なものができたぞーってことになれば、フィードバック
していただければありがたいです。
---
TAKAHASHI Kunihiko
KNOSPEAR Inc.




Maple-user メーリングリストの案内
Back to archive index