2012-04-21 2 views
1

Прежде всего: я понимаю, что использование моделей в представлении противоречит иерархии MVC - но это самое гладкое решение, которое я нашел до сих пор.Smarty + CodeIgniter - правильный способ использования модели

Я включил 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> 

Поскольку окончательный шаблон должен быть редактируемым конечным пользователем или подобным, я считаю, что это самое простое решение.

Оценка всех входных данных!

ответ

0

Я думаю, что вы не должны использовать какую-либо функцию, выражающую код, в шаблонах Smarty. Каталог 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 может быть «перехитрить». Но такие же случаи очень полезны (например, template inheritance и blocks могут использовать для создания тех же форм-типов).

+0

Эффект наследования шаблона может быть воссоздан в CI без помощи Smarty. –

+0

Ну, я пытаюсь позволить дизайнеру выводить свои стили непосредственно в шаблон, без необходимости редактировать контроллеры и т. Д. Угадай, что мне нужно будет выбирать .. Спасибо за ваш ответ! – Zar

+1

@ KemalFadillah Я знаю, что он может быть создан, но в smarty он еще готов. И для меня смарт-код более читабельный, чем PHP-код внутри html-кода (я очень ненавижу ''). – uzsolt

0

Я использовал как smarty, так и codeigniter, и по моему опыту использование обоих является излишним. Smarty просто скручивает ваш код, и IMHO громоздко использовать. Подумайте о представлениях codeigniter в качестве эквивалента ваших шаблонов smarty.

Если вы беспокоитесь о минификация вы можете попробовать использовать что-то вроде этого: CSS Minification Library

Надеется, что это полезно.

+0

Да, на самом деле мне нужны условия только для класса парсеров CI, и это было бы прекрасно .. Спасибо за ваш ответ! – Zar

Смежные вопросы