免代码编辑站点风格布局之自定义模板(一)
大家一定在很多CMS里看到过这个东西:
在应用此功能的站点上我们往往会先登录到网站后台,点击模板管理并使用html编写模板代码,插入标签如:
<table>
<tr>
<td>{$文章列表(2,6)$}</td>
</tr>
</table>
<tr>
<td>{$文章列表(2,6)$}</td>
</tr>
</table>
其中{$文章列表(2,6)$}为自定义标签,意义:显示文章栏目ID为2的6条文章标题,我们将标签与模板代码一并提交到数据库中。
当我们访问此页面查看源代码时,看到了这样的现象:
<table>
<tr>
<td>
<table>
<tr>
<td><a href="content.aspx?showid=1">
文章标题1
</a></td>
</tr>
<tr>
<td>
<a href="content.aspx?showid=2">文章标题2</a> </td>
</tr>
<tr>
<td><a href="content.aspx?showid=3">文章标题3</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=4">文章标题4</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=5">文章标题5</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=6">文章标题6</a></td>
</tr>
</table>
</td>
</tr>
</table>
<tr>
<td>
<table>
<tr>
<td><a href="content.aspx?showid=1">
文章标题1
</a></td>
</tr>
<tr>
<td>
<a href="content.aspx?showid=2">文章标题2</a> </td>
</tr>
<tr>
<td><a href="content.aspx?showid=3">文章标题3</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=4">文章标题4</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=5">文章标题5</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=6">文章标题6</a></td>
</tr>
</table>
</td>
</tr>
</table>
这就意味着刚才的{$文章列表(2,6)$}被替换成了
<table>
<tr>
<td><a href="content.aspx?showid=1">
文章标题1
</a></td>
</tr>
<tr>
<td>
<a href="content.aspx?showid=2">文章标题2</a> </td>
</tr>
<tr>
<td><a href="content.aspx?showid=3">文章标题3</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=4">文章标题4</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=5">文章标题5</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=6">文章标题6</a></td>
</tr>
</table>
<tr>
<td><a href="content.aspx?showid=1">
文章标题1
</a></td>
</tr>
<tr>
<td>
<a href="content.aspx?showid=2">文章标题2</a> </td>
</tr>
<tr>
<td><a href="content.aspx?showid=3">文章标题3</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=4">文章标题4</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=5">文章标题5</a></td>
</tr>
<tr>
<td><a href="content.aspx?showid=6">文章标题6</a></td>
</tr>
</table>
当用户访问页面Template.ASPX时程序首先从模板数据库中读入模板代码,然后对标签稍加处理,最后编译标签将最终结果显示到页面上来,到此原理大家应该明白了吧,不明白请看下面的实例讲解:
一、需要掌握的方法
要实现上述功能应首先了解一下几个字符串处理方法
1.IndexOf:返回 String 对象内第一次出现子字符串的字符位置。
2.Substring:从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。
3.Replace:将此实例中的指定 Unicode 字符或 String 的所有匹配项替换为其他指定的 Unicode 字符或 String。
4.Split:返回包含此字符串中的子字符串(由指定的 String 数组的元素分隔)的 String 数组。
具体使用方法大家可以去msdn上查一下,对下一节课有所帮助。