2012-04-21 16 views
1

最初のオフ:ビュー内のモデルを使用することはMVC階層に反していることを認識していますが、これはこれまでに見つかった最もスムーズな解決策です。Smarty + CodeIgniter - モデルを使用する適切な方法

私はSmartyを私のCodeIgniter CMSアプリケーションに統合しました。その特徴の1つは、テンプレートの使用と、CSSやJavaScriptなどの静的コンテンツの縮小です。そこで、私は、テンプレートファイル内でこのような何かをしようとしている:最終テンプレートは、エンドユーザーが編集または類似していなければならないので

//Adding the static content 
<?php 
$this->content->css(array('my.css', 'style.css')); 
?> 

<html> 
    <head> 
     //Displaying the now minified static content 
     <?php $this->content->display() ? > 
    </head> 
</html> 

、私はこれが最も簡単な解決策であると信じています。

すべての入力を評価してください!

答えて

0

私はあなたがSmartyテンプレートでコード署名者関連の関数を使うべきではないと思います。 CSSディレクトリは定数なので、PHP関数を呼び出す必要はありません。

あなたはCIからいくつかの情報が必要になります場合は、あなたのコントローラ機能でSmartyの変数へassignよ - そうMVCを破壊しない:

$smarty->assign(array(
    "display" => $this->content->display(), 
    "css_include" => $this->content->css(array("my.css","style.css")) 
)); 

jcoは簡単な例で上に書いたようにCI &恐ろしいかもしれません。しかし、同じケースでは非常に便利です(例:template inheritanceblocksは同じフォームタイプを作成するために使用できます)。

+0

テンプレート継承の効果は、Smartyの助けを借りずにCIで再現することができます。 –

+0

まあ、私はデザイナーがテンプレートなどで自分のスタイルを直接出力できるようにしようとしています。コントローラーなどを編集する必要はありません。私は選択する必要があります。あなたの答えをありがとう! – Zar

+1

@KemalFadillah私はそれが作成することができることを知っているが、それはまだ準備ができています。そして私のために、スマートなコードは、HTMLコード内のPHPコードより読みやすくなります(私は非常に '')を嫌います。 – uzsolt

0

私はsmartyとcodeigniterの両方を使用していますが、私の経験ではどちらも使い過ぎです。 Smartyはあなたのコードをうんざりさせ、IMHOは使用するのが面倒です。 codeigniterビューをスマートテンプレートと同等のものと考えてください。これは便利ですCSS Minification Library

希望:あなたはこのようなものを使用して試みることができる縮小を心配している場合

+0

ええ、私は実際にはCIパーサークラスの条件しか必要としません。完璧です。あなたの答えをありがとう! – Zar

関連する問題