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 템플릿에서 codeigniter 관련 함수를 사용하지 말아야한다고 생각합니다. CSS 디렉토리는 상수이기 때문에 PHP 함수를 호출 할 필요가 없습니다. 당신이 CI에서 몇 가지 정보가 필요합니다 경우

, 당신은 당신의 컨트롤러 기능의 똑똑한-변수에 assign거야 - 그래서 MVC를 중단하지 않습니다 jco으로

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

은 간단한 경우에 위 썼다 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

관련 문제