由于 discuz 门户文章本身就没有标签功能,尽管自带了一个聚合标签,但是标签数量就只有 8 个,远远不够用。
这个贴里给出一个解决的方法,就是添加一个 tag 模版。
1、首先打开 /template/default/portal/portalcp_article.htm 模板,查找:
- <div class=”bm bml”>
- <div class=”bm_h cl”>
- <h2>{lang article_description}</h2>
- </div>
- <div class=”bm_c”>
- <textarea id=”summary” name=”summary” cols=”80″ class=”pt” maxlength=”120″ style=”width: 98.7%; height: 51px;”>$article[summary]</textarea>
- </div>
- </div>
复制代码
在该代码下面添加:
- <div class=”bm bml”>
- <div class=”bm_h cl”>
- <h2>Tag 标签</h2>
- </div>
- <div class=”bm_c”>
- <input type=”text” id=”tags” name=”tags” class=”px” maxlength=”120″ size=”80″ value=”$article[tags]” >
- </div>
- <div class=”bm_h cl”>
- 多个Tag 用空格隔开,比如:a b c d ,尾部不需任何符号
- </div>
- </div>
复制代码
2、接下来是添加pre_portal_article_title表字段注意:
Ⅰ、操作前备份数据库,
Ⅱ、不论表前缀是不是默认的,都可以直接用此代码。
字段名为:tags ,类型 varchar(255), 默认为空。
进入后台/站长/数据库/升级 添加下面的代码:
- alter table pre_portal_article_title add tags varchar(255)
复制代码
3、打开 /source/include/portalcp/portalcp_article.php 模板,查找:
- $_POST[‘pagetitle’] = censor($_POST[‘pagetitle’]);
复制代码
在该代码下面添加:
- $_POST[‘tags’] = censor(trim($_POST[‘tags’]);
复制代码
再查找:
- ‘author’ => $_GET[‘author’],
- ‘from’ => $_GET[‘from’],
- ‘fromurl’ => $_GET[‘fromurl’],
- ‘dateline’ => intval($_GET[‘dateline’]),
- ‘url’ => $_GET[‘url’],
复制代码 [/code]
修改为:
- ‘author’ => $_G[‘gp_author’],
- ‘from’ => $_G[‘gp_from’],
- ‘fromurl’ => $_G[‘gp_fromurl’],
- ‘dateline’ => intval($_G[‘gp_dateline’]),
- ‘url’ => $_G[‘gp_url’],
- ‘tags’ => $_POST[‘tags’],
复制代码
4、打开 /source/module/portal/portal_view.php 模板,查找:
- include_once template(“diy:portal/view:{$catid}”, NULL, $tpldirectory, NULL, $articleprimaltplname);```
复制代码
在上面添加:
- $tags=explode(” “,$article[“tags”]);foreach($tags as $val) {
- $htmltags .= “<a href=\”/search.php?mod=portal&srchtxt=”.$val.”&searchsubmit=yes\” target=\”_blank\”>”.$val.”</a> “;
- }
复制代码
5、打开 /template/default/portal/view.htm 模板,查找:
在下面添加:
- <div>
- <b>Tab标签:</b> $htmltags
- </div>
复制代码
最后进入后台/工具/更新缓存。
|