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;}