Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 【原创】Discuz X3 门户云标签tags的功能实现插件

[复制链接]
yunsite 发表于 2014-2-25 14:03:56 | 显示全部楼层 |阅读模式
插件发布
插件名称: Discuz X3 门户云标签yuntags的功能实现插件
插件来源: 二次修改他人插件
适用版本: Discuz! X3
语言编码: GBK简体 UTF8简体 BIG5繁体 UTF8繁体 
最后更新时间: 2014-02-25
插件作者: 智慧旅游网(www.zhly.org)
插件简介: Discuz X3 门户云标签yuntags的功能实现插件,其他版本,没有测试。按照以下思路修改其他版本,应该问题不大。
本帖最后由 yunsite 于 2014-2-25 19:42 编辑

因为智慧旅游网(ZHLY.ORG)需要,自己研究了下,看论坛里面需求的人很多,特此分享下心得。
效果页面:http://www.zhly.org,欢迎站长交换友情链接
以下只适合 X3.1 门户,其他版本,没有测试。按照以下思路修改其他版本,应该问题不大。
参考贴:https://discuz.dismall.com/forum.php?mod=viewthread&tid=2893582
添加相关中文:
在\source\language\portal\lang_template.php(51)找到:   
  • 'article_description' => '摘要',

[color=rgb(51, 102, 153) !important]复制代码

添加
  • 'article_yuntags' => '云标签',
  • 'article_yuntags_note' => '用|隔开,尾部不需要,如:智慧旅游网|导览',

[color=rgb(51, 102, 153) !important]复制代码




修改文章添加云标签yuntags模版:template\default\portal\portalcp_article.htm(227)
找到内容代码:
  • <blockquote><font color="#002000"><span class="Apple-tab-span" style="white-space: pre;">                                </span><div class="bm bml"></font>

[color=rgb(51, 102, 153) !important]复制代码

在此代码下面添加
  •                                 <div class="bm bml">
  •                                         <div class="bm_h cl">
  •                                                 <h2>{lang article_yuntags}</h2>
  •                                         </div>
  •                                         <div class="bm_c">
  •                                                 <input type="text" id="yuntags" name="yuntags"  class="px" maxlength="120" size="80" value="$article[yuntags]" >{lang article_yuntags_note}
  •                                         </div>
  •                                 </div>

[color=rgb(51, 102, 153) !important]复制代码


添加数据库XXX_portal_article_title表字段

字段名:yuntags ,类型varchar(255), 默认为空。

如何查看数据库表名前缀:
在后台的站长->数据库->备份,选中“自定义备份”,就可以看到Discuz! 数据库带前缀的表名:XXX_portal_article_title

修改数据库: 进入Discuz! 数据库,执行如SQL语句:(XXX要修改成自己的表前缀)
  • alter table xxx_portal_article_title add yuntags varchar(255)

[color=rgb(51, 102, 153) !important]复制代码


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

[color=rgb(51, 102, 153) !important]复制代码

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

[color=rgb(51, 102, 153) !important]复制代码


继续查找代码        
  •         $setarr = array(
  •                 'title' => $_POST['title'],
  •                 'author' => $_GET['author'],
  •                 'from' => $_GET['from'],
  •                 'fromurl' => $_GET['fromurl'],
  •                 'dateline' => intval($_GET['dateline']),
  •                 'url' => $_GET['url'],
  •                 'allowcomment' => !empty($_POST['forbidcomment']) ? '0' : '1',
  •                 'summary' => $summary,
  •                 'catid' => intval($_POST['catid']),
  •                 'tag' => article_make_tag($_POST['tag']),
  •                 'status' => $article_status,
  •                 'highlight' => $style,
  •                 'showinnernav' => empty($_POST['showinnernav']) ? '0' : '1',
  •         );

[color=rgb(51, 102, 153) !important]复制代码

修改为
  •         $setarr = array(
  •                 'title' => $_POST['title'],
  •                 'author' => $_GET['author'],
  •                 'from' => $_GET['from'],
  •                 'fromurl' => $_GET['fromurl'],
  •                 'dateline' => intval($_GET['dateline']),
  •                 'url' => $_GET['url'],
  •                 'allowcomment' => !empty($_POST['forbidcomment']) ? '0' : '1',
  •                 'summary' => $summary,
  •                 'catid' => intval($_POST['catid']),
  •                 'tag' => article_make_tag($_POST['tag']),
  •                 'status' => $article_status,
  •                 'highlight' => $style,
  •                 'showinnernav' => empty($_POST['showinnernav']) ? '0' : '1',
  •                 'yuntags' => $_POST['yuntags'],
  •         );

[color=rgb(51, 102, 153) !important]复制代码


修改文章显示函数:\source\module\portal\portal_view.php(283)
找到代码
  • include_once template("diy:portal/view:{$catid}", NULL, $tpldirectory, NULL, $articleprimaltplname);

[color=rgb(51, 102, 153) !important]复制代码

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

[color=rgb(51, 102, 153) !important]复制代码


修改文章显示模版:template\default\portal\view.htm(64)
可以自己选择要放的位置,例如放到内容下面:查找
  • $content[content]

[color=rgb(51, 102, 153) !important]复制代码

然后在下面加入代码
  •                                         <div>
  •                                                 <b>{lang article_yuntags}</b> $htmlyuntags
  •                                         </div>

[color=rgb(51, 102, 153) !important]复制代码


复制代码
第六步进入后台->工具->更新缓存。只选择清理数据就可以了。

----------------------------------------------------------------------------------------------------------------------------------
预览如下:

----------------------------------------------------------------------------------------------------------------------------------




编辑页面

显示页面


点击云标签yuntags页面




1314学习网 发表于 2014-2-25 15:24:15 | 显示全部楼层
支持下分享。。。
回复

使用道具 举报

心灵刺客 发表于 2014-2-26 15:15:20 | 显示全部楼层
能自动修改就好了,不过支持
回复

使用道具 举报

xuekun2008 发表于 2014-12-16 14:39:21 | 显示全部楼层
是啊,能自动抓取就好了,就如日志的就能自动。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 09:08 , Processed in 0.049991 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表