存档
【Discuz】上传图片界面“浏览”“上传”按钮不显示文字的解决办法
【Discuz】删除编辑器的某些工具按钮
把Discuz 7.2嵌入到iframe里进行使用,结果发帖和回帖时编辑器的撤销和重复按钮在IE下失效了,直接js运行出错,想到了干脆把这两个按钮给干掉。
修改方法其实很简单,打开templates\default\post_editor.html,找到以下代码直接删除,再删除一下模板缓存强制更新一下,搞定了。
<a id="{$editorid}_cmd_undo" title="{lang e_undo}">Undo</a>
<a id="{$editorid}_cmd_redo" title="{lang e_redo}">Redo</a>
简单说明一下原理:discuz在post_editor.html中生成编辑器需要的html,然后在include\js\post.js中加上事件处理机制,具体过程就不分析了,有兴趣的同学可参考浅入分析discuz编辑器
【Discuz】完美集成进现有系统(整合用户和版面增删)
之前写过《【Discuz】自动同步登陆的完美解决办法》,主要是解决Discuz的同步登陆问题,用户系统是采用UCenter进行管理的。
最近的一次应用是基本完成了业务系统,需要整合Discuz进去作为交流版块使用。于是,涉及到用户系统的整合和版面的增删操作。UCenter提供了API进行用户的增删管理,自然可以用,但为了保证用户id的统一性,暴力地绕过了UCenter API,而采用直接操作数据库的方式来完成用户增删,当然版面的增删也是操作数据库来完成。
1、增加用户到Discuz和UCenter的代码
$uid = 100; // 用户编号
$username = "maple"; // 用户名
$password = "mypassword"; // 用户密码
$salt = md5((string)rand()); // 随机字符用于加密
$password = md5(md5($pwd) . $salt); // 加密后的密码
$groupid = 10; // 用户组编号
$timestamp = time(); // 时间戳
$bbsemail = "i@witmax.cn"; // 注册邮箱,不能重复
execute_sql("INSERT INTO cdb_members (uid, username, password, secques, gender, adminid, groupid, regip, regdate, lastvisit, lastactivity, posts, credits, email, bday, sigstatus, tpp, ppp, styleid, dateformat, timeformat, showemail, newsletter, invisible, timeoffset) VALUES ('$uid', '$username', '$salt', '$password', '0', '0', '$groupid', 'Manual Acting', '$timestamp', '$timestamp', '$timestamp', '0', '0', '$bbsemail', '0000-00-00', '0', '0', '0', '0', '0', 'H:i', '1', '1', '0', '8')");
execute_sql("INSERT INTO cdb_memberfields (uid) VALUES ('$uid')");
execute_sql("INSERT INTO `cdb_uc_members` SET uid='$uid', username='$username', password='$password', email='$bbsemail', regip='Manual Acting', regdate='$timestamp', salt='$salt'");
execute_sql("INSERT INTO `cdb_uc_memberfields` SET uid='$uid'");
QQ邮件列表实现博客邮件订阅和Discuz回帖邮件通知
WordPress并没有博客更新的邮件订阅功能,一般是通过第三方的RSS托管服务(如FeedSky或FeedBurner)提供的RSS更新邮件提醒来实现的。
对于Discuz发帖和回帖来说同样默认没有邮件提醒的功能,系统只支持特定贴子回帖的站内信提醒功能。
以上两点想到的一个解决办法是通过QQ邮件列表的RSS更新提醒功能来实现。因为WordPress和Discuz都提供了RSS功能,将QQ邮件列表绑定到对应的RSS上即可实现内容更新就会发送邮件提醒的功能。两者的操作方法一样,只不过使用的是不同的RSS地址。
【Discuz】自动同步登陆的完美解决办法
Discuz很强大,安装、使用都很方便,能满足大部分论坛的需求,于是在做系统开发用到论坛的话几乎是毫不犹豫地会选择Discuz(对比过Discuz和PHPWind)。
但Discuz的同步登陆问题是个头疼的问题,网上搜搜,类似的文章、贴子无数,也参考过很多的文章,始终没能完美地解决自己系统登陆后同步登陆Discuz的问题;在开发机上正常的,放到服务器上就会出现无法同步登陆的情况。
无奈之下,自己看了一下UCenter、Discuz同步登陆的机制,提炼出了以下用于同步登陆Discuz的代码:
【Discuz】后台找不到邮件设置的解决办法
【Discuz 7.2】使用手记(头像上传出错、不显示头像等)
新装了一把Discuz 7.2,没有安装测试数据,发现各种问题,来记一记。
1、头像上传出错,提示“Access denied for agent changed”
解决办法:进后台管理》Ucenter》应用管理》Discuz应用提示“通信失败”》编辑》删除应用IP的内容(默认为127.0.0.1)》保存》回到应用管理界面,显示通信成功;测试头像上传功能,正常了
如仍有问题,参见Access denied for agent changed 的参考解决方法
2、帖子内容页面上,头像没有显示,如下图所示
Discuz X1.5和jQuery冲突的解决办法
主要是Discuz X1.5使用了$(id)作为dom节点的获取方法,而$符号刚好与jQuery的默认符号相冲突,一个是优秀的社区系统,一个是出色的js框架,自然希望做到兼容。
以下是基于之前的Discuz和jQuery冲突的解决办法在Discuz X1.5上应用,提供给大家做个参考,至于原理请参见前面的文章。
将jQuery的js文件jquery-1.4.min.js放到/static/js目录下,以下两个方法共用此文件,如不是放在该目录下,后面的代码请对应修改。
解决方法1:
Discuz和jQuery冲突的解决办法
Discuz和jQuery有两个冲突的地方。
冲突一、Array.prototype.push函数冲突
Discuz 7.0版本为了兼容低版本的IE,重写了Array的push方法,代码位于include/common.js中,如下:
Array.prototype.push = function(value) {
this[this.length] = value;
return this.length;
}
但以上代码没有做任何检测直接进行了覆盖导致冲突,解决办法是修改为如下代码:


近期评论