システム開発者の実験記 このページをアンテナに追加 RSSフィード

2010-12-09

[][]CakePHP/Smartyとのつきあい方 - CakePHP Advent Calendar 2010 9日目

CakePHP Advent Calendar2010 9日目です。


軽い気持ちで参加したので、みなさんが濃いネタでがっつり書かれているので、

おびえてます。。。


さて、今まで、Smartyをさんざん使ってきたので、

癖でCakePHPでも、SmartyViewClassを使って、

Viewの部分は、Smartyを使って書いてます


ヘルパーの呼び出しなんかも楽で、

{$html->css('home', null, null, false)}
{$javascript->link('jquery', false)}

こんな感じで、さくさくっと呼び出しができちゃいます


でも、ヘルパー配列を渡すとなると、困ったことになってしまます

{assign_assoc var='ArrayImage' value='class=>image'}
{$html->image('image/image.gif', $ArrayImage)}

と、事前に配列を作らないといけないんです。


2つも渡すとなると、さらに大変。

{assign_assoc var='ArrayImage' glue="::" value='class=>image::alt=>test'}
{$html->image('image/image.gif', $ArrayImage)}

見た目もきれいではないし、間違いそうで嫌なのです。


そこで、必要な部分はヘルパー拡張しています

<?php
class ExhtmlHelper extends HtmlHelper {
    function img ($path, $class = null) {
		$opt = Array();
        if ($class) {
            $opt['class'] = $class;
        }
        return $this->image($path, $opt);
    }
}

といったヘルパー作成して、コントローラーに追加し、

ビューで呼び出します。


{$exhtml->img('image/image.gif', 'image')}

ちょっとすっきり。

必要な物が出来ると、都度拡張しないといけないので、

悩ましいのですが。


かいい方法があれば、伝授してください。


すいません、もう少し深いネタを用意しておくべきでした・・・


次のCakePHP Advent Calendar 2010の担当は、mon_satさんです。

よろしくお願いしま〜す。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/ixcy/20101209/p1
リンク元