웹마스터 팁
javascript template parser for xe (난이도 중급)
2013.10.09 17:48
<!--// 귀찮은 관계로 전 이 방법을 채택. -->
<div id="TPL"><!--{@ echo file_get_contents($tpl_path.'_list.html'); }--></div>
실 서비스에 적용한다면 ajax-html 선호할 듯..
<!--// 이렇게 쓰이겠죠? -->
<script>//<![CDATA[
(function($){$.get('{$tpl_path}_list.html', function(data){ window.some_init_ajax(data); });
})(jQuery);//]]></script>
_list.html
<tr class="no_{$val->no}">
<td class="type_">{$val->type}</td>
<td class="quality_">
<a href="javascript:_Filter({name:'{$val->quality}'});">{$val->quality}</a>
</td>
<td class="name_">
<a href="javascript:_Filter({name:'{$val->name}'});">{$val->name}</a> ({$val->level})
</td>
<td class="regdate_">
<a href="javascript:_Filter({regdate:'{$val->regdate}'});">{$val->regdate}</a>
</td>
<td class="hello_">{$val->hello}</td>
<td class="user_name_">{$val->user_name? 'O':'-'}</td>
<td class="nick_name_">{$val->nick_name? 'O':'-'}</td>
</tr>
그리고 javascript 소스입니다.. 요게 제~~~일 중요한 핵심이죠! (코드 피융신같이 나와서 파일로 첨부)
// xe template regex
var tpl_regex = /{(@[\s\S]+?|(?=\$\w+|_{1,2}[A-Z]+|[!\(+-]|\w+(?:\(|::)|\d+|[\'\"].*?[\'\"]).+?)}/;
var render = function()
{
var _tpl = tpl, matches;
var val = this;
while(matches = _tpl.match(tpl_regex))
{
_tpl = _tpl.replace(matches[0], (function(){
matches[1] = matches[1]
.replace(/->(?=[a-z])/ig, '.')
.replace(/\$([a-z]+)/i, '$1')
;
matches[1] = eval(matches[1]);
return matches[1]==undefined? '' : matches[1];
})());
}
$(tbody).append(_tpl);
// for client memory
matches = undefined;
_tpl = undefined;
}
$.exec_json('some.getSomeList', params, function(p){
if(p.error)
{
alert(p.message);
return;
}
$.each(p.data, render);
});
제목 | 글쓴이 | 날짜 |
---|---|---|
게시판을 활용한 페이지 생성 및 관리 아이디어...(참고) [5] | 빨간발 | 2009.03.27 |
홈페이지 접속 속도에 미치는 에드온. [2] | jih449 | 2009.03.27 |
1.2 업데이트후, 모듈 업데이트를 클릭해도 계속 업데이트 버튼이 남는 경우 [4] | heesang | 2009.03.27 |
특정 도메인의 메일 주소로만 가입 인증 메일 보내기 [3] | 박정욱 | 2009.03.28 |
특정그룹 멤버 표시 위젯에서 이름 순 정렬하기 [2] | 이재한744 | 2009.03.30 |
Firebug와 FirePHP를 통한 XpressEngine의 디버깅 [6] | mooo | 2009.04.01 |
xe 설치시 다음과 같은 오류가 생깁니다. | Seung Hur | 2009.04.02 |
팁이라기엔 좀 그렇구요.. 초보자를 위한 파일업로드FTP보다 훨씬좋은.. [2] | 레드카라스 | 2009.04.02 |
위지윅 테이블 컴포넌트 (테이블 수정 기능) [3] | 개돌 | 2009.04.02 |
Cafe 운영시 조그만한 팁... [2] | 부푸러 | 2009.04.03 |
관리자 아이디로 작성한 비밀글을 특정인이 볼수있도록 해주는 팁 [13] | Dreami | 2009.04.03 |
클릭마다 조회수 올리기 [1.4.0] [12] | 지B | 2009.04.04 |
게시판 스타일이 안바뀌는 경우에 해보실 사항 [4] | coolsushi | 2009.04.04 |
호스팅업체에서 rewrite mod를 지원하는데 사용할 수 없는 경우 [1] [1] | 엔하늘 | 2009.04.05 |
이메일이 2개씩 보내질때 처치방법 [7] | 얼터1 | 2009.04.08 |
게시판형태를 달력게시판으로 못하나요? [1] | 오늘하루는느느느 | 2009.04.09 |
요청하신 모듈을 찾을 수 없습니다 문제해결 방법 [2] | 반도체맨 | 2009.04.09 |
IIS + PHP + MySQL5 설치 시 버젼 주의 [1] | 개돌 | 2009.04.10 |
최근 이미지 위젯 noimage 표시.. [6] | 개돌 | 2009.04.10 |
주민등록 입력 폼 1.2.0 [55] | 개돌 | 2009.04.10 |
anizone 구동 방식이 정말 궁금했는데 MVC 방식이었군요!
전 pjax 같은 걸 쓰는 줄 알았습니다. 이 걸 쓰려면 잘 설계해서 써야겠네요.
좋은 팁 감사합니다.