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

时间:2019-08-29   阅读:670

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
<!--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
{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
{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
{$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
<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
{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
<YT:类型 DataSource="数据源">循环体</YT>

类型包括:

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

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

1
<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
<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
<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即可,如果需要其它字段自行查询数据库进行替换即可。

转自拓源博客

上一篇:zblog后台管理缓存插件Preload

下一篇:zblog 2.x模板开发必备主题管理面板制作插件

网友评论