虚位以待(AD)
虚位以待(AD)
首页 > CMS教程 > Discuz! > discuz教程:门户文章添加tag标签功能

discuz教程:门户文章添加tag标签功能
类别:Discuz!   作者:码皇   来源:互联网   点击:

由于discuz门户文章本身就没有标签功能,尽管自带了一个聚合标签,但是标签数量娿就只有8个,远远不够用。但是很多站长朋友们又非常想要实现这个功能。于是,魔客吧小编也在网上查找了下,看到了很多关于discuz用户都 ,魔客吧
由于discuz门户文章本身就没有标签功能,尽管自带了一个聚合标签,但是标签数量娿就只有8个,远远不够用。但是很多站长朋友们又非常想要实现这个功能。于是,魔客吧小编也在网上查找了下,看到了很多关于discuz用户都被这个问题困扰着,而解决的方法基本没有。大概看了下,小编找到了一个解决的方法,分享给大家。 第一步、修改文章添加Tag模版:/template/default/portal/portalcp_article.htm 
找到内容代码:
  1. <div class="bm bml">
  2.          <div class="bm_h cl">
  3.                  <h2>{lang article_description}</h2>
  4.          </div>
  5.         <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>
  6. </div>
复制代码 下面添加
  1. <div class="bm bml">
  2.         <div class="bm_h cl">
  3.                 <h2>Tag 标签</h2>
  4.         </div>
  5.         <div class="bm_c"><input type="text" id="tags" name="tags"  class="px" maxlength="120" size="80" value="$article[tags]" ></div>
  6.         <div class="bm_h cl">多个Tag 用空格隔开,例如:标签1 标签2 标签3,尾部不需任何符号</div>
  7. </div>
复制代码 第二步、添加pre_portal_article_title表字段
字段名:tags ,类型varchar(255), 默认为空。
在后台的站长->数据库->升级 下面的Discuz! 数据库升级,文本框,复制下面SQL:
或直接进入PHPMYADMIN数据库操作面板中,进入所在的表 点击SQL 输入如下语句 点击执行:
  1. alter table pre_portal_article_title add tags varchar(255)
复制代码 注意:1、操作前备份数据库,2、不论表前缀是不是默认的,都可以直接用此代码(我的表前缀不是默认的已经成功),如果没有升级成功,那就请用pre_portal_article_title
第三步、修改文章添加,修改,处理,函数/source/include/portalcp/portalcp_article.php
查找代码
  1. $_POST['pagetitle'] = censor($_POST['pagetitle']);
复制代码 在此代码下面添加
  1. $_POST['tags'] = censor(trim($_POST['tags']));
复制代码 继续查找
  1. $setarr = array(
  2.                 'title' => $_POST['title'],
  3.                 'author' => $_GET['author'],
  4.                 'from' => $_GET['from'],
  5.                 'fromurl' => $_GET['fromurl'],
  6.                 'dateline' => intval($_GET['dateline']),
  7.                 'url' => $_GET['url'],
  8.                 'allowcomment' => !empty($_POST['forbidcomment']) ? '0' : '1',
  9.                 'summary' => $summary,
  10.                 'catid' => intval($_POST['catid']),
  11.                 'tag' => article_make_tag($_POST['tag']),
  12.                 'status' => $article_status,
  13.                 'highlight' => $style,
  14.                 'showinnernav' => empty($_POST['showinnernav']) ? '0' : '1',
  15.         );
复制代码 替换为
  1. $setarr = array(
  2.                 'title' => $_POST['title'],
  3.                 'author' => $_GET['author'],
  4.                 'from' => $_GET['from'],
  5.                 'fromurl' => $_GET['fromurl'],
  6.                 'dateline' => intval($_GET['dateline']),
  7.                 'url' => $_GET['url'],
  8.                 'allowcomment' => !empty($_POST['forbidcomment']) ? '0' : '1',
  9.                 'summary' => $summary,
  10.                 'catid' => intval($_POST['catid']),
  11.                 'tag' => article_make_tag($_POST['tag']),
  12.                 'status' => $article_status,
  13.                 'highlight' => $style,
  14.                 'showinnernav' => empty($_POST['showinnernav']) ? '0' : '1',
  15.                 'tags' => $_POST['tags'],
  16.         );
复制代码 就是在最后一行前加一句以下代码
  1. 'tags' => $_POST['tags'],
复制代码 第四步、修改文章显示函数/source/module/portal/portal_view.php
找到代码
  1. include_once template("diy:portal/view:{$catid}", NULL, $tpldirectory, NULL, $articleprimaltplname);
复制代码 在此代码上面一行插入代码
  1. $tags=explode(" ",$article["tags"]);
  2. foreach($tags as $val) {        
  3.         $htmltags .= "<a href="/search.php?mod=portal&srchtxt=".$val."&searchsubmit=yes" target="_blank">".$val."</a>  ";
  4. }
复制代码 第五步、修改文章显示模版/template/default/portal/view.htm
可以自己选择要放的位置,例如放到内容下面:查找 $content[content]
然后在下面加入代码
  1. <div>
  2. <b>Tab标签:</b> $htmltags
  3. </div>
复制代码 OK. 进入后台->工具->更新缓存。只选择清理数据就可以了。
相关热词搜索: discuz教程:门户文章添加tag标签功能