2

テンプレートエンジン内では{php}タグを避ける必要があることはわかっていますが、それでも、この場合はそれが唯一の方法であると仮定しましょう。

これを考慮して、phpを消費するための賢い文字列を取得するためにいくつかの助けを求めたいと思います。

この場合、srtstrphp関数内の$video.yt_idにアクセスしたいと思います。

私は何が間違っているのですか?

PHPの消費のためにsmarty文字列{$video.yt_id}を取得する方法は?

{php}
$youtube    = new YouTube( 'I-WANT-THE-YOUTUBE-ID-HERE' );

$meta       = $youtube->get_meta();
$author     = $youtube->get_author();
$comments   = $youtube->get_comments();
{/php}

<p>
Duration: {php} echo sprintf( "%0.2f", $meta['duration'] / 60 ); {/php}mins | 
Rated: {php} echo $meta['rating']; {/php} out of 5 | 
Posted by {php} echo $author['username']; {/php} ( {php} echo $author['age']; {/php} y/o from {php} echo $author['location']; {/php} )
{php} echo nl2br( $meta['description'] ); {/php}
</p>
4

1 に答える 1

1

これは役立つはずです

{php}
    $video = $this->get_template_vars( 'video' );

    $youtube    = new YouTube( $video[ 'yt_id' ] );

    $meta       = $youtube->get_meta();
    $author     = $youtube->get_author();
    $comments   = $youtube->get_comments();

    $this->assign( 'meta', $meta );
    $this->assign( 'author', $author );
    $this->assign( 'comments', $comments );
{/php}

<p>
{assign var="format" value="%0.2f"}
{assign var="meta_duration60" value=$meta.duration/60}
Duration: {$format|sprintf:$duration}mins | 
Rated: {$meta.rating} out of 5 | 
Posted by {$author.username} ( {$author.age} y/o from {$author.location} )
{$meta.description|nl2br}
</p>

{php}を使用してタグ内のスマート変数にアクセスし、テンプレートの残りの部分で使用可能な$this->get_template_vars( $varname )変数内から変数を作成できます{php}$this->assign( 'varname', $varname )

出力への変更はテストされていませんが、うまくいくことを願っています

于 2012-10-27T18:59:32.913 に答える