제7장: [UCHome 2차 개발] 템플릿 구문 설명

6700 단어
어떻게 시스템이 매번 자동으로 캐시를 업데이트하도록 합니까? 템플릿을 수정할 때마다 백그라운드에 가서 캐시를 업데이트하지 않도록 해야 합니다. 모든 문제를 해결한 후에 다시 고쳐야 합니다. 그렇지 않으면 서버의 부담을 대폭 높일 수 있습니다.오픈소스/function_common.php 파일, 찾기:
if(!file_exists($objfile)){

include_once(S_ROOT.’./source/function_template.php’);
parse_template($tpl);

}

다음으로 수정:
//if(!file_exists($objfile)) {

include_once(S_ROOT.’./source/function_template.php’);

parse_template($tpl);
//}

이렇게 하면 템플릿을 수정한 후에 백그라운드에 가서 캐시를 업데이트할 필요가 없다. 캐시 파일이 있든 없든 템플릿 파일을 포함하고 새로운 캐시 파일을 생성한다는 뜻이다.
UCHome을 2차 개발할 때 템플릿의 문법을 이해하는 것은 필수적이다. 다음은 그 문법에 대해 하나하나 소개한다.
1. 다른 템플릿 호출
<!--{template header}-->

설명: 템플릿 헤더를 사용합니다.htm로 이 코드를 바꿉니다
2. 프로필 사진 호출
템플릿 코드:
<!--{avatar($value[uid],small)}-->

해결된 코드:
<?php echo avatar($value[uid],small); ?>

3. 광고 호출
템플릿 코드:
<!--{ad/header}-->

해결된 코드:
<?php adshow('header'); ?>

4. 호출 시간
템플릿 코드:
<!--{date('Y-m-d H:i', $value[dateline], 1)}-->

해결된 코드:
<?php echo sgmdate('Y-m-d H:i', $value[dateline], 1); ?>

5, PHP 코드 내보내기
템플릿 코드:
<!--{eval echo formhash();}-->

해결된 코드:
<?php echo formhash(); ?>

설명: 사이에는 실행해야 하는 PHP 코드가 있습니다. 문장이 완전해야 합니다.
6. 변수 호출
템플릿 코드:
<a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a>

해결된 코드:
<ahref="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a>

설명: {와} 사이에는 출력이 필요한 변수가 있습니다.
7. 출력 논리 선택
if 라벨과else 라벨은 주로 판단 라벨입니다. 형식은 다음과 같습니다.
<!—{if  }–>

//Your code here…

<!—{else}–>

//Your code here…

<!—{/if}–>

이상의 조건은 변수 및 합법적인 PHP 함수 및 사용자 정의 함수일 수 있습니다.
템플릿 코드:
<!--{if empty($mtag['ismember']) && $mtag['joinperm'] <2}-->

<li><ahref="cp.php?ac=mtag&op=join&tagid=$mtag[tagid]"id="a_mtag_join_$mtag[tagid]" onclick="ajaxmenu(event, this.id,99999)"> </a></li>

<!--{elseif $mtag['allowpost']}-->

<li><a href="cp.php?ac=thread&tagid=$mtag[tagid]"> </a></li>

<!--{/if}-->

해결된 코드:
<?php if(empty($mtag['ismember']) && $mtag['joinperm'] <2) { ?>

<li><ahref="cp.php?ac=mtag&op=join&tagid=<?=$mtag['tagid']?>"id="a_mtag_join_<?=$mtag['tagid']?>"onclick="ajaxmenu(event, this.id,99999)"> </a></li>

<?php } elseif($mtag['allowpost']) { ?>

<li><ahref="cp.php?ac=thread&tagid=<?=$mtag['tagid']?>"> </a></li>

<?php } ?>

설명: 물론 여기에elseif가 없을 수 있습니다. 그 문법은 VB와 약간 유사하고 엔딩 문자가 필요합니다.
8. 순환 출력 논리
템플릿 코드 1:
<!--{loop $list $key $value}-->

<tr <!--{if $key%2==1}--><!--{/if}-->>

<td>

   <!--{if$value[displayorder]}--> [ ] <!--{/if}-->

   <!--{if$value[digest]}--> [ ] <!--{/if}-->

   <ahref="space.php?uid=$value[uid]&do=thread&id=$value[tid]">$value[subject]</a></td>

<td><a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a><br>$value[replynum]/$value[viewnum]</td>

<td><a href="space.php?uid=$value[lastauthorid]"title="{$_SN[$value[lastauthorid]]}">{$_SN[$value[lastauthorid]]}</a><br><!--{date('m-dH:i',$value[lastpost],1)}--></td>

</tr>

<!--{/loop}-->

해결된 코드 1:
<?php if(is_array($list)) { foreach($list as $key => $value) {?>

<tr <?php if($key%2==1) { ?><?php } ?>>

<td>

   <?phpif($value['displayorder']) { ?> [ ] <?php } ?>

   <?php if($value['digest']){ ?> [ ] <?php } ?>

   <ahref="space.php?uid=<?=$value['uid']?>&do=thread&id=<?=$value['tid']?>"><?=$value['subject']?></a></td>

<td><ahref="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a><br><?=$value['replynum']?>/<?=$value['viewnum']?></td>

<td><a href="space.php?uid=<?=$value['lastauthorid']?>"title="<?=$_SN[$value['lastauthorid']]?>"><?=$_SN[$value['lastauthorid']]?></a><br><?phpecho sgmdate('m-d H:i',$value[lastpost],1); ?></td>

</tr>

<?php } } ?>

설명:loop 뒤에 세 개의 매개 변수가 있을 때 첫 번째 매개 변수는 순환에 사용되는 수조이고, 두 번째와 세 번째 매개 변수는 각각 수조의 모든 순환 항목에 대한 키 이름과 값입니다.
템플릿 코드 2:
<!--{loop $memberlist $value}-->

<li>

<div><a href="space.php?uid=$value[uid]"><imgsrc="<!--{avatar($value[uid],small)}-->"alt="{$_SN[$value[uid]]}" /></a></div>

<p><a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a></p></li>

<!--{/loop}-->

해결된 코드 2:
<?phpif(is_array($memberlist)) { foreach($memberlist as $value) { ?>

<li>

<div><ahref="space.php?uid=<?=$value['uid']?>"><imgsrc="<?php echo avatar($value[uid],small); ?>" alt="<?=$_SN[$value['uid']]?>"/></a></div>

<p><ahref="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a></p></li>

<?php } } ?>

설명:loop 뒤에 두 개의 매개 변수가 있을 때 첫 번째 매개 변수는 순환하는 수조이고, 두 번째 매개 변수는 수조의 모든 순환 시항의 값입니다.
참고: 위의 모든 인스턴스는 UCHome 1.5 기본 템플릿에서 발췌됩니다.템플릿 코드와 해석된 코드를 비교해 보면 문법의 효과를 알 수 있기 때문에 문장에 설명이 많지 않다.개인 자습 결과, 잘못된 점이 있으면 벽돌을 치는 것을 환영합니다.
모든 장 다운로드:http://download.csdn.net/source/3579636기사 발췌문:http://wenku.baidu.com/view/ffd8a5c14028915f804dc2e0.html

좋은 웹페이지 즐겨찾기