템플릿언더바 에 관한.. > 시즌3 버그 & 건의

본문 바로가기

시즌3 버그 & 건의

템플릿언더바 에 관한..

본문

한 이틀? 삼일 째, 템플릿 언더바와 싸우고 있습니다..

이제 대충 기본 문법(?) 은 어느정도 익숙해졌는데..

 

이윰 가이드를 보고,

템플릿언더바 공식문서들을 계속 보고 비교해보고 해도,

 

결론은 " 아, 이거 뭔가 다른데... " 입니다.

물론, 다르면 동작을 안하는게 맞지만.. 가이드라인만 보고선 절대 못할것 같다는 제 견해 입니다.

 

{@ menu} : menu array() 루프를 돌아라.. 뭐 이런건 가이드에 나와있어서

쉽게 적응할 수 있고, 또 질답 검색을 해봐도 어디 파일 몇번째줄에서 불러온다 라는게

적혀있어서 그런가보다.. 하는데

 

{config.~~~} 같은경우..

도대체 어디에 선언이 되어있는지 어느 파일을 열어봐야 되는지... 

분명 어딘가에서 만들어져서

해당 html 파일에서 사용할 수 있는것인데.. 아무리 찾아봐도 그런건 보이지 않아서

(저만 못찾는건가요 ..^^;;;)

{config.~~} 뿐만아니라.. 다른 배열들..변수들도 그렇습니다.

 

뭔가 좀 가이드 외에 정리가 필요할 것 같다는 생각이 듭니다.

 

댓글목록4

이윰IN님의 댓글

profile_image
이른 아침부터 Template_ 로 고심하고 있을 클라네스님을 생각하니 입가의 미소가 번집니다. ㅎㅎ
비웃는 것은 아니니 오해 없으시길 바랍니다. ^^

항상 새로운 무언가를 배운다는 것은 그에 수반되는 어색함과 이해하기 어려움에서 오는 답답함이 있기 마련인 것 같습니다.
템플릿 언더바의 기본 구조는 알고보면 상당히 심플합니다.

템플릿언더바의 역할은 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포인트를 획득하였습니다.

클라네스님의 댓글의 댓글

profile_image
와우.. 간지러운곳을 정확히 짚으셔서 긁어준 느낌입니다.
이제야 어떻게 돌아가는지 이해하겟네요!

shadow님의 댓글의 댓글

profile_image
소중한 가르침 감사합니다.이모티콘

이윰IN님의 댓글

profile_image
아 참고로 변수 할당에 대한 부분을 말씀해 주셨는데요.
이윰빌더의 거의 대부분의 변수할당은 /eyoom/inc/tpl.assign.php 파일이 담당하고 있습니다.

그누보드5에 핵심적이며 아주 중요한 역할을 담당하는 변수들은
/eyoom/classes/template.class.php 파일 56번째 라인 부분에서 변수 할당되고 있으니 참고해 주세요.
감사합니다.
사이트 내 전체검색