MoreTags几个基本概念:

为了用户更好理解和使用MoreTags插件,有几个概念需要详细说明一下。

一、父信息和子信息

  • 信息:在帝国cms的栏目里,发布的一条记录,就叫做一条信息。
  • 父信息:包含其他信息的信息。
  • 子信息:被其它信息包含的信息。

例如:

一个帝国cms栏目里四条信息:学校、班级、学生A、学生B,存在以下关系:

(1)学校 是班级的父信息,班级 是学生A和学生B的父信息

(2)班级 是学校的子信息,学生A和学生B是班级的子信息

(3)班级 担当了父信息的角色,同时也担当子信息角色

二、关联

  • 关联:将一条信息推送给另一条信息,使之产生父子关系的过程。
  • 关联字段:在子信息数据表中,用于关联父信息的字段。
  • 关联数据表:记录信息父子关系的数据表。

三、关联数据表

(1)关联数据表名

数据表前缀moretags_子信息所在数据表名_关联字段名

(2)关联数据表结构

字段 类型 说明
tid int(10) 自增字段
tagid int(10) 父信息id
classid smallint(5) 子信息栏目id
id int(10) 子信息id
newstime int(10) 子信息索引时间,用于排序
mid smallint(5) 子信息模型id

为数据表添加关联字段

关联字段,是子信息所在的数据表中建立的一个特殊字段,用于与父信息关联。关联字段的名称不固定,可以自行确定。

添加关联字段有两个步骤,不仅要在系统数据表中添加字段,还要在插件设置中添加相应的记录。

步骤一、在子信息所在数据表中建立关联字段,并修改系统模型

项目 取值 补充说明
字段名: xxxxx
字段标识: XXXXX
字段类型: VARCHAR 长度:255
存放表: 主表
输入表单替换html代码:
<input name="xxxxx" type="text" value="<?=$ecmsfirstpost==1?ehtmlspecialchars(stripSlashes($_GET[xxxxx])):ehtmlspecialchars(stripSlashes($r[xxxxx]))?>" size="60">
<input name="oldxxxxx" type="hidden"  value="<?=$ecmsfirstpost==1?"":ehtmlspecialchars(stripSlashes($r[xxxxx]))?>">
其它选项默认即可

注意:

(1)输入表单替换html代码在新建字段时无法设置的,只有在修改字段时才能更改。

(2)上述html代码,其中的xxxxx是刚加的字段名,必须用这个字段名替换掉。

新增并修改好这个字段后,还要修改对应的数据模型,使整个字段为:录入项、可增加、可修改、列表模板、内容模板。

步骤二、在插件设置中添加关联字段记录

完成上述步骤一后,还须在插件设置中添加关联字段记录,才能使用关联字段功能。添加记录方法如下:

在帝国cms后台,打开网页:插件 》 MoreTags插件 》 设置 》 增加字段,按照以下说明,将步骤一中的字段记录在插件设置中。

项目 说明
字段名 就是在上述步骤一中增加的关联字段名
所属数据表 上述字段所在的数据表名
父信息默认栏目 父信息如果不存在,将新建一个父信息,此父信息默认的栏目

 

父信息页列表式显示方法

因为父信息是也帝国cms的内容页,所以不能按照分页列表的方式显示子信息。如果子信息很多,且需要分页显示,可以按照以下方法,用动态页的方式实现此功能。

一条父信息,根据子信息所在数据表不同、关联字段不同,可以有不同的分页链接。

第一步:选定一个列表模板

因为链接的参数中必须用到列表模板ID,因此必须先确定好列表模板ID.

第二步:确定好伪静态链接格式,并在模板中使用

例如:想用这个做tag,父信息位于栏目id是19的栏目,栏目目录是tags,那么伪静态链接确定为:


不带分页的链接格式:
/tags/[!--id--]/

带分页的链接格式:
/tags/[!--id--]/[!--page--].html

此功能要求必须确定好这两种链接格式。然后,在刚选定的模板顶部插入php代码:

<?
$url='/tags/[!--id--].html';
$url_page='/tags/[!--id--]-[!--page--].html';
?>

接着在模版正文合适的位置插入代码来调用分页条,如下代码所示:

<div class="epages"><?=MoreTags_FanYe($url,$url_page)?></div>

第三步:确定好动态链接

分页式父信息的动态链接的格式如下:


网址/e/dongpo/moretags/liebiao.php?classid=栏目ID&id=信息ID&ztbname=子信息所在数据表&zf=子信息表中用于关联父信息的字段&listtempid=列表模板ID&page=分页号&lenth=每页显示信息数

 lenth 表示每页显示信息数,可以不设置,默认20条
 page  表示分页号,首页时可以不设置

第四步:设置服务器伪静态规则

伪静态规则也必须是2条,一条是无分页的链接格式,一条是有分页的链接格式

伪静态规则请自行书写,我这里举个 .htaccess 的例子:


RewriteRule ^tags/([0-9]+).html e/dongpo/moretags/liebiao.php?classid=19&id=$1&ztbname=article&zf=zhuanti&listtempid=3 [L]
RewriteRule ^tags/([0-9]+)/([0-9]+).html e/dongpo/moretags/liebiao.php?classid=19&id=$1&ztbname=article&zf=zhuanti&listtempid=3&page=$2 [L]

第五步:为分页的html添加一个css样式

参考样式如下:

/*翻页*/
.epages{margin:20px 0; text-align:center}
.epages a{border:1px solid #ccc; background:#fff; padding:3px 6px; text-decoration:none; color:#333; border-radius:4px; margin:0 4px 0 0;}
.epages a:hover,.epages a.current-page{background:#dfdfdf; border-color:#dfdfdf; font-weight:bold;}
.epages a.no-link:hover{background:#fff; border-color:#ccc; font-weight:normal;}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。