discuz 视频模块之特殊主题

discuz特殊主题的处理

1,插件的编写.

2,编写类的基本结构

 下载: mtvideo 打包了一个基本的结构做参考

3、函数

函数名 含义
newthread 发主题时页面新增的表单项目,通过 return 返回即可输出到发帖页面中
newthread_submit 主题发布后的数据判断  (通过showmessage进行数据的提示,即表示中止,不进行提交)
newthread_submit_end 主题发布后的数据处理 (表示基础文章添加后之后的回调函数)
editpost 编辑主题时页面新增的表单项目,通过 return 返回即可输出到编辑主题页面中
editpost_submit 主题编辑后的数据判断
editpost_submit_end 主题编辑后的数据处理
newreply_submit_end 回帖后的数据处理
viewthread 查看主题时页面新增的内容,通过 return 返回即可输出到主题首贴页面中

4、设置

版块开启

 

用户组开启

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

gbk页面传输json中文字符丢失问题

编码不统一,在项目开发中经常碰到。

主要问题除了显示乱码,就是在传输的过程中,数据丢失。

php 使用json_encode utf-8时,没有问题。

但gbk时,会导致在编码的过程,无法识别而数据丢失。

即json_encode过程,中文字符,和其它需要uXXX表示的字符是会丢失的。

解决方案:

①只是简单的显示。建议直接打印出页面。

不通过json_encode而直接使用页面。可以正常显示。

②使用扩展cjson.可以通过简单的修改指定的编码,导出

json. gbk测试通过。

因为yii中有自带,所以,只是简单的修改。CJSON

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

IE6 透明png脚本 DD_belatedPNG_0.0.8a.js 的冲突问题

ie6是最为中国前端和奶妈式程式员所痛恨的。

无耐,你boss说ok,你就不能说不ok。

这文章并无处理的完美的方法,只能说,只是另辟路径解析问题。

因为,做事。别人只看result . process对别人而言,是浮云。

以下列出冲突的文件列表,后面会在开发的过程中不断的完善它:

DD_belatedPNG_0.0.8a.js

一、弹出框的冲突

1.wbox1.0

解决方式,换别的弹出框。测试过,兼容的有

XY_Tips

效果非常接近,但不会和该透明脚本冲突,完美的兼容。

jquery.reveal

这个可以模拟出弹出框。但是各种特效有待完善。令人非常期待。

jquery.pngFix.pack反过来尝试解决的方式,更换透明的脚本。这种是比较好的。因为一个项目ok了。为了透明,把弹出框给换了,还得再调整。这是很不划算的。悔啊。。。怎么没有早点发现

原地址 http://jquery.andreaseberhard.de/pngFix/

注意使用的jquery为1.3

需要透明的对象img div需由外层的div进行指定。如

<!--[if IE 6]>
<script type="text/javascript" src="jquery.pngFix.pack.js" ></script>
<script type="text/javascript">
$((function(){
$('div.test').pngFix();
});
</script>
<![endif]-->
<div class="test"><img src=""></div>

 

 

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

快速检查文件bom头。

bom是用utf-8 一个很容易忽视的问题。
小小问题,如果对不了症下不了药是很麻烦的。

常见问题。生成的页面在浏览的过程中有莫名奇妙的空格。
因为bom在文件中是充当结束的标志,在一个完整的文件中,就成了一个奇怪的空格(回车)

如,一个文件,从头到尾引了那么多次,我怎么知道它在哪里拈花惹草了呢?
呵呵。其实很简单。
因为bom 在 utf-8下的标志。
如果一个文章很长,我该怎么快速定位处理呢。
只要将文件的编码,查看的方式替换成gbk或者别的编码。
这样,bom标识就原形毕露了。

这样在下次的开发中,如果出现。就可以快速解决问题了。
转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

详解discuz 之 *_ctrl_menu

默认的html中的select标签默认的样式太一般了。discuz提供了一个自动将select转换成一个js的select函数。
原理是将select隐藏,在原位置生成一个标签,对应的,当点击时,显示对应生成的

形式的新列表。这个看起来就好看多啦。


方法原js:staticjscommon.js
 
方法名:function simulateSelect(selectId, widthvalue)
 

只需将当前的select的id放入该函数。如:simulateSelect(‘types’),就生成了。

显示和隐藏菜单的方法是:function showMenu(v)

隐藏菜单的方法是:function hideMenu(attr, mtype)

这两个方法主要通过JSMENU[‘active’] 进行关联(也就是说可以多个),在显示时,插入数据,在不显示时,再从集合中删除数据。

如何实现动态的显示这个菜单插件?

因为生成只要套方法,是很容易的。

但是动态生成时,得注意几个东西。

1.discuz中,该东西是以一次执行为前提的。即是,一个select只能执行一次,多次执行转换是不成功的。

2.注要问题是相关的id重复,导致相关的事件对象异常。

知道原因的问题,现在好处理啦。

只要在执行前将原对象抹杀,数据清除就ok了。

如有不懂。可以查看martoo.cn的发贴。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

主题分类

一、表结构
二、设置
三、数据提取
1、$_G[‘forum’][threadtypes][types](当前模块中类型的集合)
2、原数据获取
//获取当前的板块的数据
$forum = C::t(‘forum_forum’)->fetch_info_by_fid($fid);
//将序列化后的主题类型进行反序列化。即得到了对应的该板块的主题类型
$types=!empty($forum[‘threadtypes’]) ? dunserialize($forum[$key]) : array();
四、代码剖析

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827