crx349 发表于 2015-5-28 22:55:23

Discuz 门户 tags 标签的制作

第一步修改文章添加Tag模版:/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</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" ></div>
      <div class="bm_h cl">多个Tag 用|隔开,例如:西部报道|西部新闻,尾部不需要|.</div>
</div>


第二步添加pre_portal_article_title表字段
字段名:tags ,类型varchar(255), 默认为空。

在后台的站长->数据库->升级 下面的Discuz! 数据库升级,文本框,复制下面SQL:
alter table pre_portal_article_title add tags varchar(255)


注意:1、操作前备份数据库,2、查看表前缀是不是默认的,表前缀_portal_article_title。

第三步修改文章添加,修改,处理,函数/source/include/portalcp/portalcp_article.php
查找代码
$_POST['pagetitle'] = censor($_POST['pagetitle']);


在此代码下面添加
$_POST['tags'] = censor(trim($_POST['tags']));


继续查找代码
      $setarr = array(
                'title' => $_POST['title'],
                'shorttitle' => $_G['gp_shorttitle'],
                'author' => $_G['gp_author'],
                'from' => $_G['gp_from'],
                'fromurl' => $_G['gp_fromurl'],
                'dateline' => intval($_G['gp_dateline']),
                'url' => $_G['gp_url'],
                'allowcomment' => !empty($_POST['forbidcomment']) ? '0' : '1',
                'summary' => addslashes($summary),
                'catid' => intval($_POST['catid']),
                'tag' => article_make_tag($_POST['tag']),
                'status' => $article_status,
                'highlight' => $style,
                'showinnernav' => empty($_POST['showinnernav']) ? '0' : '1',
      );


修改为
       $setarr = array(
                'title' => $_POST['title'],
                'shorttitle' => $_G['gp_shorttitle'],
                'author' => $_G['gp_author'],
                'from' => $_G['gp_from'],
                'fromurl' => $_G['gp_fromurl'],
                'dateline' => intval($_G['gp_dateline']),
                'url' => $_G['gp_url'],
                'allowcomment' => !empty($_POST['forbidcomment']) ? '0' : '1',
                'summary' => addslashes($summary),
                'catid' => intval($_POST['catid']),
                'tag' => article_make_tag($_POST['tag']),
                'status' => $article_status,
                'highlight' => $style,
                'showinnernav' => empty($_POST['showinnernav']) ? '0' : '1',
                'tags' => $_POST['tags'],
      );


第四步修改文章显示函数/source/module/portal/portal_view.php
找到代码
include_once template("diy:portal/view:{$catid}", NULL, NULL, NULL, $cat['articleprimaltplname']);


在此代码上面一行插入代码
$tags=explode("|",$article["tags"]);
foreach($tags as $val) {      
      $htmltags .= "<a href=\"/search.php?mod=portal&srchtxt=".$val."&searchsubmit=yes\" target=\"_blank\">".$val."</a>";
}


第五步修改文章显示模版/template/default/portal/view.htm
可以自己选择要放的位置,例如放到内容下面:查找
$content

然后在下面加入代码
<div>
                                                <b>Tab标签:</b> $htmltags
                                        </div>


第六步进入后台->工具->更新缓存。只选择清理数据就可以了。
页: [1]
查看完整版本: Discuz 门户 tags 标签的制作