zblog插件YTCMS字段标签使用技巧集合

zblog插件 5074

YTCMS是Z-Blog程序中相当强悍的一个插件,通过该插件可以对zblog进行各种扩展,实现模板需要的各项数据调用。YTCMS插件在后台提供了数据调用的各项标签在线生成的功能,但为了更好地使用该插件,网友整理了YTCMS2.0和YTCMS1.8版本标签查询手册以及插件的使用技巧,博客吧将其转载过来分享给需要的zblog博主!

注:1.8版本的YTCMS语法使用尖括号”<>”格式的语句,升级到2.0后插件名改为“Content Manage System”,且语法统一使用大括号“{}”语法格式。

日志调用

日志数据源信息(本文以5篇为例,可根据自身需求将”5″修改为相应篇数即可)
调用ID为5的文章 {YT:Article DataSource=”GetArticleModel(‘5’)”}YTCMS代码{/YT:Article}
除前1篇文章后的5篇全站文章(参数1不能为0) {YT:Article DataSource=”GetArticleLimit(5,1)”}YTCMS代码{/YT:Article}
除前3篇文章后分类ID为1的5篇文章(参数1不能为0) {YT:Article DataSource=”GetArticleCategorysLimit(5,3,’1′)”}YTCMS代码{/YT:Article}
5篇最新文章列表 {YT:Article DataSource=”GetArticleRandomSortNew(5)”}YTCMS代码{/YT:Article}
5篇随机文章列表 {YT:Article DataSource=”GetArticleRandomSortRand(5)”}YTCMS代码{/YT:Article}
5条本月评论排行 {YT:Article DataSource=”GetArticleRandomSortComMonth(5)”}YTCMS代码{/YT:Article}
5条本年评论排行 {YT:Article DataSource=”GetArticleRandomSortComYear(5)”}YTCMS代码{/YT:Article}
5篇本月排行文章 {YT:Article DataSource=”GetArticleRandomSortTopMonth(5)”}YTCMS代码{/YT:Article}
5篇本年排行文章 {YT:Article DataSource=”GetArticleRandomSortTopYear(5)”}YTCMS代码{/YT:Article}
5篇热文排行文章 {YT:Article DataSource=”GetArticleRandomSortTopHot(5)”}YTCMS代码{/YT:Article}
5篇分类ID为1的文章 {YT:Article DataSource=”GetArticleCategorys(5,’1′)”}YTCMS代码{/YT:Article}
5篇分类为1的随机文章 {YT:Article DataSource=”GetArticleCategorysRandomSortRand(5,’1′)”}YTCMS代码{/YT:Article}
5篇分类为1的热门文章 {YT:Article DataSource=”GetArticleCategorysTophot(5,’1′)”}YTCMS代码{/YT:Article}
5篇TAGSID为1的文章列表 {YT:Article DataSource=”GetArticleTag(5,0)”}YTCMS代码{/YT:Article}
5篇TAGSID为3且分类ID为1的文章列表 {YT:Article DataSource=”GetArticleCategoryTag(5,3,’1′)”}YTCMS代码{/YT:Article}
5篇置顶文章列表 {YT:Article DataSource=”GetArticleTop(5)”}YTCMS代码{/YT:Article}
5篇分类ID为1的置顶文章列表 {YT:Article DataSource=”GetArticleCategoryTop(5,’1′)”}YTCMS代码{/YT:Article}
日志字段信息
编号 {$Article.ID}
权限 {$Article.Level}
标题 {$Article.HtmlTitle}
摘要 {$Article.HtmlIntro}
全文 {$Article.HtmlContent}
时间 {$Article.PostTime}
评论数 {$Article.Commnums}
浏览数 {$Article.Viewnums}
引用数 {$Article.Trackbacknums}
引用链接 {$Article.TrackBack}
链接 {$Article.Url}
分类字段信息
编号 {$Article.CateID}
名称 {$Categorys(Article.CateID).HtmlName}
序号 {$Categorys(Article.CateID).Order}
文章数 {$Categorys(Article.CateID).Count}
链接 {$Categorys(Article.CateID).HtmlUrl}
作者字段信息
编号 {$Article.AuthorID}
名称 {$Users(Article.AuthorID).Name}
等级 {$ZVA_User_Level_Name(Users(Article.AuthorID).Level)}
Email {$Users(Article.AuthorID).Email}
网站链接 {$Users(Article.AuthorID).HomePage}
文章数 {$Users(Article.AuthorID).Count}
链接 {$Users(Article.AuthorID).HtmlUrl}
其他字段信息
日志评论RSS {$Article.WfwCommentRss}
日志别名 {$Article.StaticName}
TAGS {$Article.TagToName}
第一个TAG摘要 {$Article.FirstTagIntro}

评论调用

评论数据源信息(本文以5条为例,可根据自身需求将”5″修改为相应条数即可)
5条最新回复列表 {YT:Comment DataSource=”GetCommentComments(5)”}YTCMS代码{/YT:Comment}
5条分类ID为1的最新回复列表 {YT:Comment DataSource=”GetCommentCategorysComments(5,’1′)”}YTCMS代码{/YT:Comment}
5条文章ID为1的评论列表 {YT:Comment DataSource=”GetCommentArticleComments(5,’1′)”}YTCMS代码{/YT:Comment}
评论字段信息
编号 {$Comment.ID}
序号 {$Comment.Count}
名称 {$Comment.Author}
网址 {$Comment.HomePage}
Email {$Comment.SafeEmail}
时间 {$Comment.PostTime}
内容 {$Comment.HtmlContent}
作者编号 {$Comment.AuthorID}
首要联系 {$Comment.FirstContact}
Email的MD5码 {$Comment.EmailMD5}

标签调用

标签数据源信息(本文以5个为例,可根据自身需求将”5″修改为相应个数即可)
5个标签列表 {YT:Tag DataSource=”GetTagLists(5)”}YTCMS代码{/YT:Tag}
5个随机标签 {YT:Tag DataSource=”GetTagListsRandomSortRand(5)”}YTCMS代码{/YT:Tag}
标签字段信息
编号 {$Tag.ID}
名称 {$Tag.HtmlName}
摘要 {$Tag.HtmlIntro}
文章数 {$Tag.Count}
链接 {$Tag.HtmlUrl}
经过编码的名称 {$Tag.EncodeName}

YTCMS 2.0常用语法技巧

调用一条置顶文章摘要里面的第一张图片:(需要安装MiniTu插件

1
2
3
{YT:Article DataSource="GetArticleTop(1)"}
{$MiniTu_Build(article.title,article.intro,article.url)}
{/YT:Article}

调用一条置顶文章内容里面的第一张图片:(需要安装MiniTu插件

1
2
3
{YT:Article DataSource="GetArticleTop(1)"}
{$MiniTu_Build(article.title,article.content,article.url)}
{/YT:Article}

调用分类目录名:

1
2
3
4
5
6
7
8
<!--YT调用分类 前6个,想调用几个 就改下面的6-->
{for i=1 ubound(Categorys)}
	{if Categorys(i).ParentID = 0}
	<li class="linav"><a href="{$Categorys(i).Url}">{$Categorys(i).Name}</a></li>
	{/if}
	{if i=6}{eval exit for}{/if}
{/next}
<!--YT调用分类 End-->

取正文前80字去掉HTML代码后的一个描述:

1
<meta name="description" content="{eval set art = new TArticle}{if art.LoadInfoByID(<#article/id#>)}{$left(replace(TransferHTML(art.Content,"[nohtml]")," ",""),80)}{/if}{eval set art = nothing}" />

限制摘要文字在100字以内,多余部分用省略号显示:

1
2
3
4
5
{eval set art = new TArticle}
	{if art.LoadInfoByID(<#article/id#>)}
	{$left(replace(TransferHTML(art.Content,"[nohtml]")," ",""),100)}
	{/if}
{eval set art = nothing}...

或使用以下代码:

1
{$left(replace(TransferHTML(Article.intro,"[nohtml]")," ",""),100)&"..."}

指定前三篇文章样式的YTCMS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{eval i=0}
{YT:Article....}
{if i=0}
<!--这是第一篇文章第一种样式-->
{/if}
{if i=1}
<!--这是第二篇文章第二种样式-->
{/if}
{if i=2}
<!--这是第三篇文章第三种样式-->
{/if}
{if i>2}
<!--这是第N篇文章第N种样式-->
{/if}
{eval i = i + 1}
{/YT:Article}

调用大分类ID为1的小分类列表:

1
2
3
4
5
6
7
8
{eval aryCateInOrder=GetCategoryOrder()}
	{if isArray(aryCateInOrder)}
	{for i=lbound(aryCateInOrder)+1 ubound(aryCateInOrder)}
	{if Categorys(aryCateInOrder(i)).ParentID=1}
		<li class="cat-item cat-item-3"><a href="{$Categorys(aryCateInOrder(i)).Url}">{$Categorys(aryCateInOrder(i)).Name}</a></li>
	{/if}
{/next}
{/if}

常用日期格式:

1
2
3
4
5
6
7
{$Year(Article.PostTime)&"年"&Month(Article.PostTime)&"月"&Day(Article.PostTime)}日
年{$year(Article.PostTime)}
月{$month(Article.PostTime)}
日{$day(Article.PostTime)}
时{$hour(Article.PostTime)}
分{$minute(Article.PostTime)}
秒{$second(Article.PostTime)}

显示N个随机标签,如显示5个,请将下面的N改为5,或者可将N设置为<#TEMPLATE_INCLUDE_TAGSNUM#>,方便在后台主题插件中修改:

1
2
3
4
5
6
{eval i=N}
	{if i>0}
	{YT:Tag DataSource="GetTagListsRandomSortRand(i)"}
		<a href="{$Tag.HtmlUrl}">{$Tag.HtmlName}</a>
	{/YT:Tag}
{/if}

调用子分类,将代码中的0改成你当前的分类ID即可:

1
{if Categorys(aryCateInOrder(i)).ParentID=0}

ZBlog二级下拉菜单代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<ul>
{eval aryCateInOrder=GetCategoryOrder()}
    {if isArray(aryCateInOrder)}
    {for i=lbound(aryCateInOrder)+1 ubound(aryCateInOrder)}
    {if Categorys(aryCateInOrder(i)).ParentID=0}
          <li><a href="{$Categorys(aryCateInOrder(i)).Url}">{$Categorys(aryCateInOrder(i)).Name}</a>
          <ul class="ul-subcates">
    {for j=lbound(aryCateInOrder)+1 ubound(aryCateInOrder)}
    {if Categorys(aryCateInOrder(j)).ParentID = Categorys(aryCateInOrder(i)).ID}
            <li><a href="{$Categorys(aryCateInOrder(j)).Url}">{$Categorys(aryCateInOrder(j)).Name}</a></li>
    {/if}
    {/next}
          </ul></li>
    {/if}
    {/next}
    {/if}
</ul>

Zblog2.0实现24小时内发布的文章加new图标的方法:

1
2
3
4
{YT:Article DataSource="GetArticleRandomSortNew(7)"}
<li><span class="you">{$month(Article.PostTime)}月{$day(Article.PostTime)}日</span>[ {$Categorys(Article.CateID).HtmlName} ]  <a href="{$Article.Url}">{$Article.HtmlTitle}</a>
{if (DATEDIFF("h",Article.PostTime,now()) < 24)} <img src="/zb_users/THEME/主题名称/STYLE/images/new.gif" border="0" />{/if}</li>
{/YT:Article}

注意:new.gif部分是NEW图片地址,你可以进行修改,另外,{if (DATEDIFF(“h”,Article.PostTime,now()) < 24)} 这段函数里面的24表示24小时内的文章,可以改成你想要的任何数字,最后上面的样式根据现有项目酌情修改。

YTCMS 1.8常用语法示例

YT.CMS使用的格式为:

1
2
3
<YT:类型 DataSource="数据源">
循环体
</YT>

类型包括:

说明 代码
日志 Article
评论 Comment
标签 Tag
自定义 Cmd

此示例调用类型为日志,且调用的数据源为最新文章,调用10条。

1
2
3
<YT:Article DataSource="GetArticleRandomSortNew(10)">
<a href="<#article/url#>"><#article/title#></a>
</YT>

支持的内置数据源

说明 代码 参数(数字类型)
最新文章 GetArticleRandomSortNew (行数)
随机文章 GetArticleRandomSortRand (行数)
本月评论排行 GetArticleRandomSortComMonth (行数)
本年评论排行 GetArticleRandomSortComYear (行数)
本月排行 GetArticleRandomSortTopMonth (行数)
本年排行 GetArticleRandomSortTopYear (行数)
热文排行 GetArticleRandomSortTopHot (行数)
分类文章列表 GetArticleCategorys (行数,文章类别)
分类热门文章列表 GetArticleCategorysTophot (行数,文章类别)

循环体内支持的标签

说明 代码
编号 <#article/id#>
链接 <#article/url#>
权限 <#article/level#>
标题 <#article/title#>
别名 <#article/staticname#>
摘要 <#article/intro#>
全文 <#article/content#>
时间 <#article/posttime#>
评论数 <#article/commnums#>
浏览数 <#article/viewnums#>
引用数 <#article/trackbacknums#>
引用链接 <#article/trackback_url#>
评论RSS <#article/commentrss#>
tags <#article/tagtoname#>
第一个tag摘要 <#article/firsttagintro#>
全文第一张图片 <#article/picture#>

此示例调用类型为评论,且调用的数据源为最新回复列表,调用10条,调用类别为1,文章类型可在后台分类中获取。

1
2
3
<YT:Comment DataSource="GetCommentCategorysComments(10,1)">
评论:<a href="<#article/comment/commenturl#>"><#article/title#></a>
</YT>

支持的内置数据源

说明 代码 参数(数字类型)
最新回复列表 GetCommentComments (行数)
分类最新回复列表 GetCommentCategorysComments (行数,文章类别)

循环体中支持的标签

说明 代码
编号 <#article/comment/id#>
序号 <#article/comment/count#>
名称 <#article/comment/name#>
网址 <#article/comment/url#>
Email <#article/comment/email#>
时间 <#article/comment/posttimei#>
内容 <#article/comment/content#>
作者编号 <#article/comment/authorid#>
首要联系 <#article/comment/firstcontact#>
Email的MD5码 <#article/comment/emailmd5#>
经过编码的URL链接 <#article/comment/urlencoder#>
文章标题 <#article/title#>
链接 <#article/comment/commenturl#>

此示例调用类型为标签,且调用的数据源为标签列表,调用8条。

1
2
3
<YT:Tag DataSource="GetTagLists(8)">
关键字调用:<a href="<#article/tag/url#>"><#article/tag/name#></a>
</YT>

支持的内置数据源

说明 代码 参数(数字类型)
标签列表 GetTagLists (行数)

循环体内支持的标签

说明 代码
编号 <#article/tag/id#>
名称 <#article/tag/name#>
摘要 <#article/tag/intro#>
文章数 <#article/tag/count#>
链接 <#article/tag/url#>
经过编码的名称 <#article/tag/encodename#>

调用模型标签:

<#article/model/字段名#>

如果模型字段为title,则调用标签为:<#article/model/title#>

调用指定分类:

<YT:Cmd DataSource=”SELECT 1″>//数字1为调用分类数,无需修改

分类链接:<#eval/Categorys(1).HtmlUrl#> //将括号中的1改为分类ID

分类名称:<#eval/Categorys(1).HtmlName#> //将括号中的1改为分类ID

分类别名:<#eval/Categorys(1).Staticname#> //将括号中的1改为分类ID

</YT>

调用指定分类下的N篇文章:

<YT:Article DataSource=”GetArticleCategorysLimit(5,3,’1′)”>

括号中的5为调用5篇文章。

括号中的3为分类文章索引值,即忽略前三篇文章,从第4篇文章开始调用;如果从第N篇文章开始调用则填N;该参数不能为0。

括号中的1 为分类ID,查询分类ID请查看zblog后台&ldquo;分类管理&rdquo;中分类前的ID数字。

</YT>

调用指定标签下的N篇文章:

<YT:Article DataSource=”GetArticleTag(5,1)”>

括号中的5为调用5篇文章。

括号中的1为ID为1的Tags,查询TagsID请查看zblog后台&ldquo;分类管理&rdquo;中Tags前的ID数字。

</YT>

调用全站置顶文章:

<YT:Article DataSource=”GetArticleTop(3)”>

该代码实现YT调用全站的前3篇置顶文章。

</YT>

调用分类置顶文章:

<YT:Article DataSource=”GetArticleCategoryTop(10,’1′)”>

该代码实现YT调用分类ID为1的前10篇置顶文章。

</YT>

调用单篇文章:

<YT:Article DataSource=”GetArticleModel(‘1’)”>

该代码实现YT调用ID为1的文章。如企业站首页调用关于我们模块,则需调用关于我们文章的ID即可。

</YT>

控制显示输出文字的个数:

<YT:Article DataSource=” GetArticleCategorysLimit (5,3,’1′)”>

注释:控制文章标题的显示个数是用{left:N},N为输出的字符数,如果将标题控制在10个字符,则为:{left:10}。

<li><a href=”<#article/url#>” target=”_blank”><#article/title{left:10}#></a></li>

</YT>

标签页与留言页调用文章链接、标题、摘要以及首图无效时,请使用以下标签进行调用。

文章标题:<#eval/row(2)#>

文章摘要:<#eval/row(3)#>

文章链接:<#eval/row(10)#>

文章首图:<#eval/row(11)#>

使导航上的分类显示指定个数,超出则不显示。注:不能在include文件夹下的文件使用,否则失效,此方法容易造成新建分类提示下标越界的错误并且停用YT.CMS插件容易造成数据清空,请谨慎使用。

<YT:Cmd DataSource=”select top 6 * from blog_Category order by cate_Order asc”>

<li><a href=”<#eval/Categorys(DataSource(0,i)).HtmlUrl#>”><#field/cate_Name#></a></li>

数字6为调用分类的个数,超出6个分类则不显示。

<#eval/Categorys(DataSource(0,i)).HtmlUrl#> 为分类的链接

<#field/cate_Name#> 为分类的名称

<#field/cate_Intro#> 为分类的别名

</YT>

利用YT.CMS调用某个用户的所有文章

<YT:Cmd DataSource=”select * from blog_Article WHERE log_AuthorID=作者ID order by log_PostTime asc”>

<li><#field/log_Title#></li>

</YT>

使用YT的Cmd模式,替换为用户ID即可,如果需要其它字段自行查询数据库进行替换即可。

转自拓源博客

精品推荐: