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)} |
{$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} |
{$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#> |
<#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后台“分类管理”中分类前的ID数字。
</YT>
调用指定标签下的N篇文章:
<YT:Article DataSource=”GetArticleTag(5,1)”>
括号中的5为调用5篇文章。
括号中的1为ID为1的Tags,查询TagsID请查看zblog后台“分类管理”中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即可,如果需要其它字段自行查询数据库进行替换即可。
转自拓源博客