1

まず、ビューでモデルを使用することは MVC 階層に反していることを認識していますが、これは私がこれまでに見つけた中で最もスムーズな解決策です。

CodeIgniter CMS アプリケーションに Smarty を統合しました。その機能の 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>

最終的なテンプレートはエンド ユーザーなどが編集できるようにする必要があるため、これが最も簡単な解決策だと思います。

すべての入力に感謝します!

4

2 に答える 2

0

Smartyテンプレートでcodeigniter関連の関数を使用するべきではないと思います。CSSディレクトリは一定であるため、php関数を呼び出す必要はありません。

CIからの情報が必要な場合はassign、コントローラー関数のsmarty変数を使用します。MVCを壊さないでください。

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

jcoが単純なケースでに書いたように、CI&Smartyはおそらく「やり過ぎ」です。ただし、同じ場合は非常に便利です(たとえば、テンプレートの継承ブロックを使用して同じフォームタイプを作成できます)。

于 2012-04-22T14:25:59.797 に答える
0

私は smarty と codeigniter の両方を使用しましたが、私の経験では両方を使用するのはやり過ぎです。Smarty はコードをめちゃくちゃにするだけで、IMHO は使いにくいです。codeigniter ビューは、スマートなテンプレートに相当すると考えてください。

縮小が心配な場合は、次のようなものを使用してみてください: CSS Minification Library

これが役に立てば幸いです。

于 2012-04-21T16:18:46.920 に答える