本次提供了两个版本,一个是简洁板,一个是整合了ckeditor的加强版,请自行选择。
dede_tagindex
数据表新建tagms
字段,类型varchar
,长度255
,允许空值
,我用navicat建的/dede/tags_main.php
,
$dlist->SetParameter("tag", $tag);下面增加
$dlist->SetParameter("tagms", $tagms);
$query = "UPDATE `dede_tagindex` SET `count`='$count' WHERE id='$tid' ";修改为
$query = "UPDATE `dede_tagindex` SET `count`='$count',`tagms`='$tagms' WHERE id='$tid' ";
$query = " INSERT INTO `dede_tagindex`(`tag`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`) VALUES('$keyword','0','1','0','0','$timestamp','$timestamp','$timestamp');";修改为
$query = " INSERT INTO `dede_tagindex`(`tag`,`tagms`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`) VALUES('$keyword','$tagms','0','1','0','0','$timestamp','$timestamp','$timestamp');";
/dede/templets/tags_main.htm
找到更新的JS
function UpdateOne(tid) { location = "tags_main.php?action=update&count="+document.getElementById('count'+tid).value+"&tid="+tid;
增加描述的参数,代码修改为
function UpdateOne(tid) { location = "tags_main.php?action=update&count="+document.getElementById('count'+tid).value+"&tagms="+document.getElementById('ms'+tid).value+"&tid="+tid;
<td width="10%">标签</td>
下面增加
<td width="35%">描述</td>
<td> <a href="../tags.php?/<?php echo urlencode($fields['tag']); ?>/" target="_blank">{dede:field.tag /}</a> </td>
下面增加
<td> <textarea name="" rows="" cols="" id="ms<?php echo $fields['id']; ?>" ><?php echo $fields['tagms'];?></textarea> </td>
由于增加了一列,后台其他地方的样式就自行解决了。
位置templets\default
中的taglist.htm
模板中加入
{dede:sql sql="select * from dede_tagindex where tag=~title~"}[field:tagms/]{/dede:sql}
至此便可以完美显示了。
如果你觉得上面简洁版的不太适合你,可以看看下面的加强版的是不是适合。
如果只用textarea写普通的内容,我认为这在前台显示实在太丑了,所以这次我将ckeditor
进行了整合,所以下面的是最新的修改功能,修改完后如下显示
加强版的好处是:能使用一些html功能,这样可进行排版,表格处理等
在上面图中,除大编辑窗外还有个小编辑窗,这是为了看是否有内容,有内容说明我们编辑过,空的说明没编辑过。如果你感觉太丑,也可以采用个sql语句判断是否为空,用显示汉字的方式提示,另外,大编辑框默认是隐藏状态。
整合ckeditor编辑器
我没有在织梦其它页面整合过,这是第一次进行整合,吃了很多苦头
前面我们将tagms
设计成varchar
,因为我的网站的标签描述要放大量内容,甚至做成一个介绍单页,所以我们将varchar
改成mediumtext
。
ckeditor请在官网下载,我下载的是最新版的ckeditor5
在dede/templets
中找到上面的文件,并按下面的步骤加入
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
下方整体代码
因为一部分一部分引入太累,所以直接放入整体代码
|
接着我们将JS文件放上
function UpdateOne(tid,eid) { var editor = escape(eid.document.getBody().getHtml()); //接收ckeditor内容 location = "tags_main.php?action=update&count="+document.getElementById('count'+tid).value+"&tagms="+editor+"&tid="+tid; } function show(id) { var eid = id; var obt=document.getElementById("bt"+eid); var odiv=document.getElementById("sdiv"+eid); if(odiv.style.display=="none"){ odiv.style.display="block"; obt.value="隐藏编辑器"; } else{ odiv.style.display="none"; obt.value="显示编辑器"; } } |
其中上面修改的UpdateOne函数我们已经进入了修改,所以可以直接将其替换,同时将show放到下面。
至此tags_main.htm
已经处理完
在刚才的文件中我们使用了escape加密,这样不至于url传值时乱码,传到本文件中后,我们要进行解密处理
找到
/*解决js中escape加密,此处用unescape进行解密,这样原文存入数据库*/ function unescape($str) { $str = rawurldecode($str); preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r); $ar = $r[0]; foreach($ar as $k=>$v) { if(substr($v,0,2) == "%u") $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4))); elseif(substr($v,0,3) == "&#x") $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1))); elseif(substr($v,0,2) == "&#") { $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1))); } } return join("",$ar); } $tagms = unescape($tagms); |
include
下的datalistcp.class.php
是分页功能的类,但在内容传出时,会对内容进行一些过滤修改,因其过滤导致读取的""和style出错,我们进行相关修改datalistcp.class.php
是不是还有其它内容使用,我们将其复制一个文件改名为datalistcptag.class.php
$val = str_replace("\"","“",$val);
$val = str_replace("“","\"",$val);
$ra1 = array
里面的style
删除datalistcp.class.php
的文件名改了,tags_main.php
引用了该文件,所以在文件顶部将其改为datalistcptag.class.php
创始人微信
路漫漫其修远兮 吾将上下而求索添加创始人微信,一起交流心得
时间:2017年01月13日
时间:2017年02月22日
时间:2017年09月27日
时间:2017年10月10日
时间:2017年11月01日
评论