MTのダイナミックパブリッシングでは $this は $ctx(class MTViewer)である。
公開日 : 2013-09-02 11:31:15
表題の通り(超久しぶりにトラックバックを送ろうと思ったがトラックバックアドレスが見つからず...)。MTのダイナミックパブリッシング(Not DynamicMTML)では、$this は class MTViewer( extends Smarty )なので、このページ(MTタグとphpで変数の受け渡しをする。)で紹介した方法は、ダイナミックパブリッシングではもっとシンプルに、こう書けます。
<?php
// var_dump( $this );
// $this は Class MTViewer (つまり、$ctxにあたる)
$blog = $this->stash( 'blog' );
$this->__stash[ 'vars' ][ 'blog_name' ] = $blog->name;
?>
<mt:var name="blog_name">
<mt:BlogURL setvar="blog_url">
<?php
//MTタグでsetvarした値を取得
echo $this->__stash[ 'vars' ][ 'blog_url' ];
?>
二重括弧にしなくても動くのは僕の手元環境が特殊なのだろうか...?