템플릿언더바 에 관한..
클라네스
175.♡.217.84
2015-10-01 06:49
5,883
4
본문
한 이틀? 삼일 째, 템플릿 언더바와 싸우고 있습니다..
이제 대충 기본 문법(?) 은 어느정도 익숙해졌는데..
이윰 가이드를 보고,
템플릿언더바 공식문서들을 계속 보고 비교해보고 해도,
결론은 " 아, 이거 뭔가 다른데... " 입니다.
물론, 다르면 동작을 안하는게 맞지만.. 가이드라인만 보고선 절대 못할것 같다는 제 견해 입니다.
{@ menu} : menu array() 루프를 돌아라.. 뭐 이런건 가이드에 나와있어서
쉽게 적응할 수 있고, 또 질답 검색을 해봐도 어디 파일 몇번째줄에서 불러온다 라는게
적혀있어서 그런가보다.. 하는데
{config.~~~} 같은경우..
도대체 어디에 선언이 되어있는지 어느 파일을 열어봐야 되는지...
분명 어딘가에서 만들어져서
해당 html 파일에서 사용할 수 있는것인데.. 아무리 찾아봐도 그런건 보이지 않아서
(저만 못찾는건가요 ..^^;;;)
{config.~~} 뿐만아니라.. 다른 배열들..변수들도 그렇습니다.
뭔가 좀 가이드 외에 정리가 필요할 것 같다는 생각이 듭니다.
댓글목록4
이윰IN님의 댓글
비웃는 것은 아니니 오해 없으시길 바랍니다. ^^
항상 새로운 무언가를 배운다는 것은 그에 수반되는 어색함과 이해하기 어려움에서 오는 답답함이 있기 마련인 것 같습니다.
템플릿 언더바의 기본 구조는 알고보면 상당히 심플합니다.
템플릿언더바의 역할은 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포인트를 획득하였습니다.
클라네스님의 댓글의 댓글
이제야 어떻게 돌아가는지 이해하겟네요!
shadow님의 댓글의 댓글
이윰IN님의 댓글
이윰빌더의 거의 대부분의 변수할당은 /eyoom/inc/tpl.assign.php 파일이 담당하고 있습니다.
그누보드5에 핵심적이며 아주 중요한 역할을 담당하는 변수들은
/eyoom/classes/template.class.php 파일 56번째 라인 부분에서 변수 할당되고 있으니 참고해 주세요.
감사합니다.