dasBlog有自己的一套模板引擎,最近研究了它的模版引擎的实现.

      先解释一下跟它的模板引擎相关的两个概念。

      Theme(主题):就是一套模版,包括所有界面。包括以下几个文件:

         template:暂时不知在何处使用(可能在当前版本中并未使用)

         hometemplate:首页界面

         destopWebsitetmeplate:也是不知在何处使用(可能在当前版本中并未使用)

         itemTemplate:单个文章显示模板

         dataTemplate:以天为单位的文章列表显示模板

      Macros(宏):一个模版页是由多个宏还有一些其它的HTML代码组成的。以下列举了一些宏及其作用

         <%BlogStats%>:Blog状态

         <%FrontPageTitleList%>:首页文章标题列表

          <%PopularList(int numEntiries, int maxLength)%>:最受欢迎文章列表,可传入相应的参数

          <%newtelligence.search()%>:搜索框

          <%newtelligence.aspnetcontrol("themecombo.ascx")%>:主题转换的ComboBox,可以显示任何一个用户控件

          从以上的几个宏,我们可以看到dasBlog的宏功能是很强大的.

      以下是一个itemTemplate文件的示例:

<div class="item">
    
<div class="itemTitle">
    
<img src="images/array.gif" onclick="{if((document.getElementById('<%ItemGuid%>')).style.display=='none') {(document.getElementById('<%ItemGuid%>')).style.display='block'; this.src='images/array.gif'} else {(document.getElementById('<%ItemGuid%>')).style.display='none'; this.src='images/array_2.gif'}}" />
<%ItemTitle%></div>
    
<div class="itemContents">
        
<div class="itemBody" id="<%ItemGuid%>"><%ItemBody%></div>
        
<div class="categoryLinks"><%categoryLinks%></div>
        
<div class="itemFooter">
            posted on 
<%when%>&nbsp;
        
<href="javascript:d=document;t=d.selection?(d.selection.type!='None'?
                                    d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');
                                    void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit',
                                    'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();"
 
                                    title
="Store it to 365Key">365Key</a>&nbsp;
            
<%permalink%>&nbsp;
            
<%editButton%>&nbsp;
            
<%commentLink%>
            
<%trackbackLink%><br>
            
<%RelatedPostList%>
            
<%trackbackList%>
            
<%ReferralList%>
            
<%enclosure%>
        
</div>
    
</div>
</div>

 

         

posted on 2006-03-29 13:01  Lupin  阅读(684)  评论(0编辑  收藏  举报