大家对wordpress都比较熟悉,wp的列表页文章摘要并不是独立的,我们需要使用more标签来告诉系统我们打算从哪里截开文章并形成摘要。相对于wp手动生成摘要的方式,DLE则采用了独立的摘要模块,也就是说:我们向DLE站点提交一篇文章,我们必须专门提交一次文章摘要内容Short Story。另外如果Full Story没有填写时,Short Story这个必填项会做为Full Story内容来显示。

一、为什么要用Short Story这个模板

有些同学认为:为什么要独立出short story?专门提交short story并不便利,而是增加了用户的工作量?
首先这是一个习惯问题,目前国外有大批专业作者供稿于Datalife Engine系统,而且随着所见即所得编辑器的不断完善,制作一个文章摘要并不困难,而且相对于WP的后台添加文章,DLE的用户参与性和友好性是显而易见的。

第二点也是对我们站长最重要的一点,独立出short story和full story等内容,再加上文章自定义字段xfield,我们可以做出非常棒的广告模板,如果能将一些广告隐匿于字里行间,我想不赚钱也难了吧。

第三点是针对v9.6的一些新特性,针对short story提供了{image-x},{shortstory limit=x}等标签。这些标签的含义很容易理解,就是自动提取shortstory内的图片为我所用以及自动输出shortstory的文本内容并限 制字符数量。通过这两个标签,我们的站点甚至可以去掉full story内容的添加,直接依靠short story来完成文章内容(不建议这么做)。当然,通过v96提供的这两个标签,我们也可以摆脱之前版本必须通过自定义字段来完成摘要的图文效果。

另外我们还要注意一点:本文的shortstory.tpl服务于大部分文章列表页,比如:主页文章列表、分类下文章列表、收藏夹文章列表、作者发表的文章列表、最新文章列表、注册用户未读文章列表等,但是搜索结果页文章列表是有searchresult.tpl来控制的。

二、shortstory.tpl可用标签及释义(v96 更新至48个/组)

因为本文涉及的标签比较多,为了更便于浏览、查询和相似标签的对比,本文将标签分为:内容相关、功能相关、用户相关、日期相关、分类相关、评级/投票相 关、评论相关、二次编辑相关等8部分。本文涉及到多个范围标签,如果对范围标签了解和应用不是特别清楚,可以参考之前写的《 1.4 理解Datalife Engine模板的标签模式 》、《 1.5 Datalife Engine模板原理及全局标签/基础标签解析 》、《 1.6 举例说明Datalife Engine的范围标签的使用方法 》 等文。

(1)内容相关标签
{title}数据值标签 局部标签
- 即文章的标题,输出的是一个字符串。在Datalife Engine专属分类的一些文章,我们会灵活用到{title}来进行SEO优化。{short-story}数据值标签 局部标签
- 即由用户添加文章摘要内容。输出的是一个段落(包括html代码等)。
{short-story limit="x"}功能标签 局部标签  
- 系统自动将shortstory的内容进行提取,输出指定字符的无HTML的字符串。其中x表示系统提取Short Story的字符数量。 {image-x}数据值标签 局部标签
- 系统自动将Short Story内容中图片网站提取出来,输出的是第X幅图片的网址。其中x表示系统提取Short Story中的第几幅图片。 [image-x] text [/image-x]范围标签 局部标签
- 即{image-x}的辅助范围标签,把{image-x}涉及的范围都包括起来,如果{image-x}值为空时,本范围标签内的内容都不显示。[xfvalue_x]数据值标签 局部标签  
- 即在后台》文章自定义字段 添加的自定义字段,下划线后的x表示设定的自定义字段的名称。 [xfgiven_x] [xfvalue_x] [/xfgiven_x]范围标签 局部标签
- 即[xfvalue_x]的辅助范围标签,[xfvalue_x] 涉及的范围都包括起来,如果[xfvalue_x] 值为空时,本范围标签内的内容都不显示。[xfnotgiven_X] [/xfnotgiven_X]范围标签 局部标签
-[xfvalue_x]为空时,模板留给[xfvalue_x]的位置就会空出来,我们可以设定一个备选值来填充这个空位。本标签就是用来确定备选值的辅助范围,备选值涉及的范围都包括起来,如果 [xfvalue_x] 值为空时,本范围标签内的内容才会显示。

(2)功能相关标签{news-id}数据值标签局部标签
- 即文章在DLE系统中的唯一id号,也是数据库中文章表的主键。输出的是一个数字。 {views}数据值标签局部标签
- 即文章被浏览过的次数,输出的是一个数字。   {favorites}功能标签局部标签
- 直接输出收藏夹的选择与反选图标。如果想编辑收藏夹的样式,可以参考一下位置:dleimages/minus-fav.png, dleimages/plus-fav.png,engine/modules/favorites.php等文件。   [edit] text [/edit]范围标签局部标签
- 即文章前台即时编辑按钮的范围标签,本标签组内可以写文字,也可以是html代码(如布置一个编辑按钮等)。
[complaint] text [/complaint]范围标签局部标签
- 即文章前台在线投诉按钮的范围标签,本标签组内可以写文字,也可以是html代码(如布置一个编辑按钮等)。
{tags}数据值标签局部标签
- 即添加文章的同时,添加的tags。输出的为字符串,字符串中不同的tags词用逗号分隔。注意与整站的{tags}标签不同。   [tags] text [/tags]范围标签局部标签
- 即输出{tags}的辅助范围标签,把{tags}涉及的范围都包括起来,如果{tags}值为空时,本范围标签内的内容都不显示。 {full-link}数据值标签局部标签
- 即文章的全文静态链接,输出的是一个链接。   [full-link] text [/full-link]范围标签 局部标签
- 区别于其他的范围标签,本标签既是输出{full-link}的辅助范围标签,负责把{full-link}涉及的范围都包括起来,同时本标签包括的内容会自动变成文章正文的可点击链接。  {approve}功能标签 局部标签
- 本标签仅在用户查看自己的账户信息页,且有未审核通过的文章时才会有效果,输出“Wating Approve”(即等待审核)类似字样。其他情况均不输出任何内容。 [fixed] text [/fixed]范围标签 局部标签
- 本标签内可以设定置顶文章的样式。通过本标签,可以使站点的置顶文章更鲜明,有特色。没有置顶文章时不输出任何内容。 [not-fixed] text [/not-fixed]范围标签 局部标签
- 本标签与上一组标签相对,为普通文章的样式。
值得注意的是,如果使用了[fiexd][/fiexd]范围标签设定了置顶文章的样式,必须再定义好普通文章的样式放入[not-fiexd][/not-fiexd],否则普通文章将不会输出。 如果你不想区分置顶与普通文章的样式,直接不使用这两组标签即可。

(3)用户相关标签    {login}数据值标签局部标签
- 即添加文章的作者用户名,输出的只有作者用户名,为一个字符串,没有匹配链接。
{author}数据值标签 局部标签
- 即添加文章的作者,输出的是锚文本为作者用户名的链接,点击链接,会弹出(profile_popup.tpl)设置的用户简介界面。   [profile] text [/profile]范围标签局部标签
- 即{author}的辅助范围标签,把{author}涉及的范围都包括起来的整体内容作为简介(profile_popup.tpl)链接的锚文本   [group=X] text [/group]范围标签 全局标签
- 即用户组范围标签,可以针对不同用户组设定不同的内容,其中x表示用户组id。当然[not-group=x] text [/not-group]也是可用的。
(4)日期相关标签
{date}
数据值标签局部标签
- 输出文章发布日期,输出的是一个日期值,日期格式由后台》系统设定》文章 部分设定。 {date=j-m-Y,H:i}功能标签局部标签
- 有时使用不同形式的日期样式对文章展示有特殊的作用,通过本标签我们就可以自定义输出的日期样式。注意本标签中j-m-Y,H:i这些字符是一个日期样式实例,请根据实际情况更改。关于可用的日期样式参数,可以参考《Datalife Engine程序日期格式设定参数说明》一文。  [day-news] text [/day-news]范围标签局部标签 - 即{date} 或{date= j-m-Y,H:i}的辅助范围标签,把{date}{date=j-m-Y,H:i} 涉及的范围都包括起来,如果{date}{date=j-m-Y,H:i} 值为空时,本范围标签内的内容都不显示。

(5)分类相关标签
{category}
数据值标签局部标签
- 即文章所属的分类名称,输出的为分类的名称字符串,如“Graphics”,没有连接,注意,如果你的站点支持多分类或子分类且文章归于多个分类,那么输 出的是所有分类且按照分类添加的顺序输出,并用逗号分隔,如站点有Graphics大类,下面有Vector小类,用户按大类小类的顺序选择分类,那么输 出的是“Graphics,Vector”,如果用户添加分类时先添加的Vector,然后才添加Graphics大类,那么输出就变成 了"Vector,Graphics"。 {category-icon}数据值标签局部标签
- 即文章所属分类的分类图标,输出的分类图标的网址。输出的是一个连接。关于分类图标,我们可以在后台》分类管理中添加或编辑图标时设置。  {category-url}  数据值标签局部标签
- 即文章所属分类的分类链接,输出分类顺序第一的分类的链接,注意只有一个链接。与{category}类似,如果是单一分类,这里直接输出分类链接,如果 站点支持同一文章归入多个分类,那么根据添加分类的顺序不同,输出的链接也不一样。当文章归入多分类时,本标签只输出分类添加顺序第一的分类的链接,如用 户添加分类时先添加的Vector,然后才添加Graphics大类,那么输出就变成了"http://bbs.dleseo.com/graphics /vector/"  {link-category}数据值标签局部标签
- 即文章所属分类,注意区别于{category},本标签会按顺序输出所有分类(锚文本)并对应生成可点击的分类链接。

  1. <a href="/graphics/">Graphics</a>,<a href="/graphics/vector/">Vector</a>

[category=X] text [/category]范围标签局部标签
- 当用户处于x分类中时,显示text内容。其中x表示分类的id,多个分类请使用逗号分隔。注意:这里指的是用户所处的文章列表页位置,而不是文章所属的分类。 [catlist=1,2....] text [/catlist]范围标签局部标签
- 当文章归入指定的分类中时,显示text内容。其中1,2表示分类的id,多个分类请使用逗号分隔。注意:这里指的是文章归入的分类,注意与上组标签区分。 [not-catlist=1,2....] text [/not-catlist]范围标签局部标签
- 当文章归入指定的分类中时,不显示text内容,其中1,2表示分类的id。

(6)评级/投票相关标签
{rating}功能标签局部标签
- 输出5级评级条,相关文件:模板/dleimages/rating.png, 模板/styles/engine.css,/engine/modules/funtions.php等 [rating] text [/rating]范围标签局部标签
- 即{rating}的辅助范围标签,把{rating}涉及的范围都包括起来,如果{rating}值为空时,本范围标签内的内容都不显示。   {vote-num}数据值标签局部标签
- 输出参与过rating评级的用户人数,输出的是一个数字。   [poll] text [/poll]范围标签局部标签
- 当文章包含投票时,本标签组内的内容才会出现,可以放置文字或图标提示用户文章内包含投票。注意:本模板文件不支持{poll}标签。  [not-poll] text [/not-poll]范围标签局部标签
- 当文章不包含投票时,本标签组内的内容才会出现。注意:本模板文件不支持{poll}标签。

(7)评论相关标签
{comments-num}
数据值标签局部标签
- 即文章评论的数量,输出的是一个数字。  [com-link] text [/com-link]范围标签局部标签
- 即文章评论的链接,点击链接直接到达文章评论开始的位置。
[comments]text[/comments]范围标签局部标签
- 当文章有评论时,本标签组内的内容才会出现,可以放置文字或图标提示用户文章内包含评论。
[not-comments]text[/not-comments]范围标签局部标签
-当文章没有评论时,本标签组内的内容才会出现,可以放置文字或图标提示用户文章还没有评论。

(8)二次编辑相关标签
{editor}数据值标签局部标签
- 即二次编辑的编辑人的用户名,如果作者本人,站点的总编辑,站点管理员等。  {edit-date}数据值标签局部标签
- 即二次编辑的时间,输出格式为系统设定的格式。  [edit-date] text [/edit-date]范围标签 局部标签
- 即{edit-date}的辅助范围标签,把{edit-date}涉及的范围都包括起来,如果{edit-date}值为空时,本范围标签内的内容都不显示。  {edit-reason}数据值标签局部标签
- 即二次编辑的编辑理由,在进行编辑时会要求编辑者填写。   [edit-reason] text [/edit-reason]范围标签局部标签
- 即{edit-reason}的辅助范围标签,把{edit-reason}涉及的范围都包括起来,如果{edit-reason}值为空时,本范围标签内的内容都不显示。