템플릿언더바 에 관한..
2015-10-01 06:49
7,707
4
본문
한 이틀? 삼일 째, 템플릿 언더바와 싸우고 있습니다..
이제 대충 기본 문법(?) 은 어느정도 익숙해졌는데..
이윰 가이드를 보고,
템플릿언더바 공식문서들을 계속 보고 비교해보고 해도,
결론은 " 아, 이거 뭔가 다른데... " 입니다.
물론, 다르면 동작을 안하는게 맞지만.. 가이드라인만 보고선 절대 못할것 같다는 제 견해 입니다.
{@ menu} : menu array() 루프를 돌아라.. 뭐 이런건 가이드에 나와있어서
쉽게 적응할 수 있고, 또 질답 검색을 해봐도 어디 파일 몇번째줄에서 불러온다 라는게
적혀있어서 그런가보다.. 하는데
{config.~~~} 같은경우..
도대체 어디에 선언이 되어있는지 어느 파일을 열어봐야 되는지...
분명 어딘가에서 만들어져서
해당 html 파일에서 사용할 수 있는것인데.. 아무리 찾아봐도 그런건 보이지 않아서
(저만 못찾는건가요 ..^^;;;)
{config.~~} 뿐만아니라.. 다른 배열들..변수들도 그렇습니다.
뭔가 좀 가이드 외에 정리가 필요할 것 같다는 생각이 듭니다.
댓글목록4
이윰IN님의 댓글
- 이윰IN님의 홈
- 전체게시물
- 아이디로 검색
110.♡.52.32비웃는 것은 아니니 오해 없으시길 바랍니다. ^^
항상 새로운 무언가를 배운다는 것은 그에 수반되는 어색함과 이해하기 어려움에서 오는 답답함이 있기 마련인 것 같습니다.
템플릿 언더바의 기본 구조는 알고보면 상당히 심플합니다.
템플릿언더바의 역할은 PHP 프로그래밍을 조금 더 효율적으로 하기 위해 MVC 패턴을 만들어 주는 핵심 엔진이라고 보시면 될텐데요.
이윰빌더를 MVC 패턴으로 보면...
Model : eyoom 폴더의 theme를 제외한 모든 요소
View : 이윰빌더의 테마 영역
Control : 그누보드5
이런 형태로 이해하실 수 있습니다.
변수들의 활용에 대한 부분이 쉽게 이해하기 힘든 부분인데요.
그것은 Template_ 의 고유 템플릿(테마) 문법 때문일 거예요.
분명 주석인데 주석부분들이 프로그램으로 파싱되어 변수들을 잘도 뿌리거든요.
Model 및 Control 부분에서 생성된 모든 변수는 View 영역인 테마에서 Global변수 처럼 사용할 수 있답니다.
예를 들어
$config 변수는 Control영역인 그누보드5의 common.php 파일 212번째 줄에서 선언된 변수인데요.
테마 어느 곳에서든 {_config.xxx} 형식으로 사용이 가능하답니다.
특이한 점은 php의 변수를 의미하는 $가 _로 바뀌고 Array 표현 방식이 Object객체 표현 방식으로 바뀐 것이죠.
바로 위와 같은 형식으로 사용할 수도 있지만,
이렇게 되면 보안상 취약점이 생길 수도 있기에...
Model 영역 및 Control 영역에서 생성된 변수를 템플릿 영역(테마)에 다른 이름 형식으로 할당하여 변수를 활용하게 됩니다.
변수 할당 방식이 바로
$tpl->assign(array(
'config' => $config
));
위와 같이 할당해 주면 템플릿 영역인 테마에서는 {config.xxx} 형식으로 변수를 활용할 수 있답니다.
만일 위의 변수 할당을
$tpl->assign(array(
'user_config' => $config
));
위와 같이 할당하였다면 {user_config.xxx} 형식으로 사용할 수 있게 됩니다.
더 설명을 하면 너무 길어 지기에 궁금해 하시는 부분까지만 설명해 드릴게요.
오늘도 멋진 하루되세요.
감사합니다.
축하합니다. 첫댓글 포인트 3포인트를 획득하였습니다.
클라네스님의 댓글의 댓글
- 클라네스님의 홈
- 전체게시물
- 아이디로 검색
175.♡.217.84이제야 어떻게 돌아가는지 이해하겟네요!
shadow님의 댓글의 댓글
- shadow님의 홈
- 전체게시물
- 아이디로 검색
182.♡.102.157이윰IN님의 댓글
- 이윰IN님의 홈
- 전체게시물
- 아이디로 검색
110.♡.52.32이윰빌더의 거의 대부분의 변수할당은 /eyoom/inc/tpl.assign.php 파일이 담당하고 있습니다.
그누보드5에 핵심적이며 아주 중요한 역할을 담당하는 변수들은
/eyoom/classes/template.class.php 파일 56번째 라인 부분에서 변수 할당되고 있으니 참고해 주세요.
감사합니다.