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;}
评论(0)