1

首先:我确实意识到在视图中使用模型是违反 MVC 层次结构的——但这是迄今为止我找到的最流畅的解决方案。

我已将 Smarty 集成到我的 CodeIgniter CMS 应用程序中。它的功能之一是使用模板以及缩小静态内容,例如 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,根据我的使用经验,这两者都是矫枉过正的。Smarty 只是弄乱了您的代码,恕我直言,使用起来很麻烦。将 codeigniter 视图视为您的 smarty 模板的等价物。

如果你担心缩小,你可以尝试使用这样的东西:CSS Minification Library

希望这会有所帮助。

于 2012-04-21T16:18:46.920 回答
0

我认为你不应该在 Smarty-templates 中使用任何与 codeigniter 相关的函数。CSS 目录是恒定的,因此无需调用 php 函数。

如果您需要来自 CI 的一些信息,您将assign在控制器功能中使用 smarty-variable - 所以不会破坏 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 回答