2011-01-15 7 views
3

안녕하세요, 몇 주 전부터 멋진 템플릿 솔루션으로 PHP 애플리케이션을 프로그래밍하려고합니다. 이제 모든 전문가에게 쉬운 질문 : 템플릿에서 템플릿을 얻으려면 어떻게해야합니까? 한 예 : {include file="$tpl_name.tpl"}템플릿 템플릿 (.tpl) smarty

그러나 어디 내 login.php입니다 : 의 index.php (page.tpl는) 내가이 기능을 발견 한 유식 문서에서 내 login.php (login.tpl)

포함 컨트롤러? 이 함수에 login.tpl 파일이 포함 된 경우 HTML 코드 만 있거나?

누군가 나에게 설명하거나 샘플/튜토리얼을 제공 할 수 있습니까? 내 나쁜 영어

안부

+0

프레임 워크를 사용하고 있습니까? – RobertPitt

답변

2

기본적으로 귀하의 경우에 login.tpl 파일은 일반 스마티 템플릿 수있다 : 당신이 어쩌면 당신은 대신이 기능을 원하고 있습니다 만 가진 HTML 코드에 대해 무슨 말을하는지

임 확실하지 (따라서 Smarty 태그뿐만 아니라 HTML 태그도 포함될 수 있습니다). Smarty의 다른 컨트롤러를 포함 할 수 없습니다.

내가 이해하는 한, 색인 페이지에 로그인 기능을 추가하려고합니다. 다음과 같은 방법으로이 작업을 수행 할 수 있습니다.
1) index.tpl에 login.tpl을 포함 시키십시오. 그러면 색인 페이지에 로그인 양식이 포함됩니다.
2) 로그인 양식에 다른 동작을 지정하십시오 (예 : "login.php"이므로이 login.php는 모든 로그인/로그 아웃 논리를 처리하는 로그인 컨트롤러가됩니다.
3) 사용자가 성공적으로 로그인하면 index.php (또는 원하는 페이지)로 리디렉션 할 수 있습니다.

이렇게 두 개의 분리 된 제어기가 있습니다. 색인 제어기에 대한 책임이있는 주 제어기와 로그인/로그 아웃을 담당하는 로그인 제어기입니다. 이 경우 login.tpl 파일은 로그인 양식을 렌더링하는 일부 HTML 및 Smarty 태그가 포함 된 템플릿 일뿐입니다.

5

그 코드에 대한 죄송합니다

은 당신이 원하는 것을 정확히이다. 그것은 당신이 템플릿 내에서 다른 똑똑한 템플릿을 포함시킬 것입니다.

<html> 
<head> 
    <title>{$title}</title> 
</head> 
<body> 
{include file='login.tpl'} 

원본 템플릿에서 사용할 수있는 모든 변수는 방금 포함시킨 템플릿에서 사용할 수 있습니다.

{include_php file='/path/to/login.php'}