2014-06-30 2 views
0

나는 스마티 템플릿 엔진에 웹 사이트가 지금은슬림 프레임 워크 + 스마티 템플릿 영어는

$template->assign(array('BASE' => $CONF['url.base'], 'THEME' => $SET['template'], 'CONTENT' => $CONTENT)); 

을 한편, index.tpl 콘텐츠를 할당 한 HTML의 내용을 변경, 라우팅 슬림 프레임 워크를 추가하고 난 $을 설정하려면 경로 i의 CONTENT 값이이 코드로 시도했지만 작동하지 않습니다.

어떻게 할 수 있습니까?

내 스마티 코드입니다 : 당신이 $CONTENT 변수를 전달하고 추가로 당신은 당신의 코드는 아래처럼 보일 것이다, 그래서 $CONTENT 변수를 사용하기 전에 응용 프로그램을 실행하는 데 필요한 참조를 사용해야 할 것 같다

/// INCLUDE SMARTY AND CONFIGURE 
    require_once(CORE_DIR.'Smarty/Smarty.class.php'); 
    $template = new Smarty(); 
    $template->setTemplateDir(THEME_DIR.$WEBSITE['template']); 
    $template->setCompileDir(THEME_DIR.'/templates_c/'); 
    $template->setCacheDir(CACHE_DIR); 

답변

0

:

(경우에 당신이 그것을 필요로)
$CONTENT = ''; 
$app->get('/', function() use ($template, &$CONTENT){ 
$CONTENT = $template->fetch('Route/home.tpl'); 
}); 
$app->run(); 
echo $CONTENT; // here you have modified $CONTENT variable 

내 전체 테스트 코드 :

<?php 

require 'Slim/Slim.php'; 

\Slim\Slim::registerAutoloader(); 


$app = new \Slim\Slim(array (
    'view' => new \Slim\Views\Smarty() 
) 
); 

$template = $app->view(); 
$template->parserDirectory = dirname(__FILE__) . '/smarty'; 
$template->parserCompileDirectory = dirname(__FILE__) . '/compiled'; 
$template->parserCacheDirectory = dirname(__FILE__) . '/cache'; 
$template->setTemplatesDirectory(dirname(__FILE__) . '/smarty/templates'); 

$CONTENT = ''; 
$app->get('/', function() use ($template, &$CONTENT){ 
$CONTENT = $template->fetch('Route/home.tpl'); 

}); 

$app->run(); 
echo $CONTENT; 
+0

그리고 Smarty를 등록해야하는 곳은 어디입니까? (나는 나의 codequestion을 편집했고 거기에 내 현명한 레지스터 코드를 추가했다) –

+0

내 대답 좀 봐. 모든 것이 거기에있다. –