今天给各位分享i春秋discuz全家桶的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、我用的是discuz论坛,为什么论坛中“主题”,“贴数”没有显示出来?http://bbs.3iwan.com/forum.php
- 2、【请求帮助】如何在discuz分类信息这个摸块里添加;省市关联的下拉选框?
- 3、discuz 3.2板块标题重复,有些好着,有些重复
代码各是什么?' title='论坛里的个人签名的图片怎么弄的啊?Discuz代码和
代码各是什么?'>4、论坛里的个人签名的图片怎么弄的啊?Discuz代码和
代码各是什么?
- 5、Discuz! 文字过滤
- 6、discuz 3.4 上传头像时提示文件上传过程中发生I/O错误
1、我用的是discuz论坛,为什么论坛中“主题”,“贴数”没有显示出来?http://bbs.3iwan.com/forum.php
有可能是数据调用错误。。
如果是一直有这样的情况,建议你检查文件是否有缺失。。
2、【请求帮助】如何在discuz分类信息这个摸块里添加;省市关联的下拉选框?
为了考虑在同一个页面中多处使用,因些使用了对象的思想进行设计,为了实现各个多级联动的内容不同,所以把内空数据结构与程序进行了分离,因此设计最终调用方法如:
var city=new LightManAddressTree;
city.selectshow(obj,0); //obj为要添加到的dom结点,
如有html代码如下div id="abc"/div
那么调用方法就应该为
obj=document.getElementById("abc");
var city=new LightManAddressTree;
city.selectshow(obj,0);
这样多级联动内容就为显示在闭合的div标签内的位置
其js设计代码如下:
复制代码 代码如下:
//定义地址数据开始
var AddressTree={};
AddressTree["a_row"]=new Array(); //存所有记录
with(AddressTree){
a_row["1"]=["北京市",0,1];
a_row["2"]=["上海市",0,1];
a_row["3"]=["天津市",0,1];
a_row["4"]=["重庆市",0,1];
a_row["5"]=["河北",0,0];
a_row["6"]=["山西",0,0];
a_row["7"]=["内蒙古",0,0];
a_row["8"]=["辽宁",0,0];
a_row["9"]=["吉林",0,0];
a_row["10"]=["黑龙江",0,0];
a_row["11"]=["江苏",0,0];
..............
}
var j=0;
AddressTree["a_record"]=new Array();//存储记录的记录号
for(i in AddressTree["a_row"]){AddressTree["a_record"][j++]=i;}
AddressTree.ObjNumber=1;
//地址选择构造函数
function LightManAddressTree(){
var Data = AddressTree; //数据记录数据变量
this.noselectshow=["--请选择省份--","--请选择城市--","--请选择区县--"];//各级不选择显示值
this.grade=0; //级数
this.idvalue=0; //地址选择值的id号
this.text=""; //地址字符串
this.listseparator=" "; //地址字符串中的分隔符号
this.selectName="a_tree"+(AddressTree.ObjNumber++)+"_";
//定义地址数据结束
this.getfontpath = function(id){ //取得指定记录号的上级路径
var path = "",upid;
try{
upid=(isNaN(id)?0:id);
while(upid!=0){
var upid=Data["a_row"][upid][1];
if(path!="")path=upid+","+path;else path=upid;
}
}
catch(e){};
return eval("["+path+"]");
}
//建立下列表
this.selectshowlevel=function(obj,upid,def){
var selectobj,optionobj,havedef;
selectobj=document.getElementById(this.selectName+this.grade);
if(selectobj){
document.getElementById(this.selectName+this.grade).options.length=0;
}else{
selectobj=document.createElement("select");
selectobj.id=this.selectName+this.grade;
selectobj.grade=this.grade;
selectobj.obj=this;
selectobj.onchange=function(){
if(this.options[this.selectedIndex].value!=""){
this.obj.selectshow(obj,this[this.selectedIndex].value);
}
else{
if(this.obj.grade0){
for(var i=this.grade+1;ithis.obj.grade-1;i++){
var df=document.getElementById(this.obj.selectName+i);
df.options.length=0;
defaultoption(this.obj,df,i);
}
//最得值
getvalue(this.obj);
}
}
}
}
defaultoption(this,selectobj,this.grade);
//显示级别下数据
if(upid=0){
for(var j=0;jData["a_record"].length;j++){
thisrecord=Data["a_row"][Data["a_record"][j]];
if(thisrecord[1]==upid){
optionobj=document.createElement("option");
optionobj.text=thisrecord[0];
optionobj.value=Data["a_record"][j];
selectobj.options.add(optionobj);
if(def==Data["a_record"][j]) havedef=true;
}
}
}
if(havedef)selectobj.value=def;
return selectobj;
}
this.selectshow = function(obj,id){ //显示选中记录号
var selectobj,optionobj,thisrecord;
var lastgrade,tempid=id,tempgrade;
var fontpath=this.getfontpath(id);
tempgrade=this.grade;
this.grade=0;
//显示选中前部分内容
for (var i=0;ifontpath.length;i++){
if(!document.getElementById(this.selectName+this.grade)){
if(ifontpath.length-1)
this.Add(obj,this.selectshowlevel(obj,fontpath[i],fontpath[i+1]));
else
this.Add(obj,this.selectshowlevel(obj,fontpath[i],id));
}
this.grade++;
}
//显示选中后部分内容
do{
lastgrade=this.selectshowlevel(obj,tempid);
tempid=lastgrade.value;
if (tempid=="")tempid=-1;
this.Add(obj,lastgrade);
this.grade++;
}
while(lastgrade.options.length0);
//删除多余选项
for(i=this.grade-1;itempgrade-1;i++){
obj.removeChild(document.getElementById(this.selectName+i));
}
//最得值
getvalue(this);
}
this.Add=function(obj,s){
if(s.options.length0!document.getElementById(s.id))obj.appendChild(s);
}
//获取选择值
function getvalue(obj){
var sel
obj.text="";
obj.idvalue=0;
for(var i=0;iobj.grade-1;i++){
sel=document.getElementById(obj.selectName+i);
if(sel.value!=""){
obj.text+=(obj.text.match("\\S")==null?"":obj.listseparator)+sel.options[sel.selectedIndex].text;
obj.idvalue=sel.options[sel.selectedIndex].value;
}else{break;}
}
}
//级别显示数据
function defaultoption(obj,sobj,g){
try{
if(obj.noselectshow[g]){
optionobj=document.createElement("option");
optionobj.text=obj.noselectshow[g];
optionobj.value="";
sobj.options.add(optionobj,0);
}
}
catch(e){}
}
} address_test.htm
复制代码 代码如下:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
" "
html
head
titleUntitled Document/title
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/head
body
script type="text/javascript" src="Address.js"/script
/body
/html 本文来自: 脚本之家() 详细出处参考: 希望对你有帮助
3、discuz 3.2板块标题重复,有些好着,有些重复
为了避免发布重复的帖子,我们可以手动修改一下Discuz!的源代码来实现:
1、打开 include\newthread.inc.php
2、查找:
复制代码
3、在后面一行添加:
if($subject == '' || $message == '') {
showmessage('post_sm_isnull');}
复制代码
* 添加提示信息(可选择加与不加,加了后当发重复的帖子的时候会有温馨提示增加用户体验)
1、打开:templates\default\messages.lang.php
2、查找:
//Refuse repeated post. Code by KaijuanStudio , Optimization by phytist
$repeated = 4; //设置防范重复发贴的级别,0=关闭,1=防范相同ID发布相同标题的新主题,2=防范发布相同标题的新主题,3=防范发布相同标题且内容部分相同的新主题,4=防止内容一致或标题和部分内容相同的主题。
if($repeated == 1) {
$query = $db-query("SELECT tid, subject FROM {$tablepre}threads WHERE authorid='$discuz_uid' AND subject='$subject'");
if($db-num_rows($query)) {
$repeat = $db-fetch_array($query);
showmessage('post_repeated', 'index.php');
}
} elseif ($repeated == 2) {
$query = $db-query("SELECT tid, subject FROM {$tablepre}threads WHERE subject='$subject'");
if($db-num_rows($query)) {
$repeat = $db-fetch_array($query);
showmessage('post_repeated', 'index.php');
}
} elseif ($repeated == 3) {
$query = $db-query("SELECT tid, authorid, subject, message FROM {$tablepre}posts WHERE first='1' AND subject='$subject'");
if($db-num_rows($query)) {
$repeat = $db-fetch_array($query);
if($repeat['authorid'] == $discuz_uid) {
showmessage('post_repeated', 'index.php');
}
function SubString($str, $start, $len = 0xFFFFFFFF) {
if($start 0) {
$start = strlen($str) + $start;
}
if($len 0) {
$len = strlen($str) - $start + $len;
}
$tmp = '';
$result = '';
$strlen = strlen($str);
$begin = 0;
$subLen = 0;
for($i = 0; $i $start + $len $i $strlen; $i++) {
if($i $start) {
if(ord($str[$i]) = 161 ord($str[$i]) = 247 ord($str[$i+1]) = 161 ord($str[$i+1]) = 254) $i++;
} else {
$begin=$i;
for(; $i$start+$len $i$strlen; $i++) {
if(ord($str[$i]) = 161 ord($str[$i]) = 247 ord($str[$i+1])=161 ord($str[$i+1])=254) $i++;
}
return substr($str,$begin,$i-$begin);
}
}
}
if(strlen($message) 60) {
if(SubString($message, -100) == SubString($repeat['message'], -100) || SubString($message, 50, 100) == SubString($repeat['message'], 50, 100)) {
showmessage('post_repeated', 'index.php');
}
} else {
if($message == SubString($repeat['message'], 0, 60)) {
showmessage('post_repeated', 'index.php');
}
}
}
}elseif ($repeated == 4) {
$query = $db-query("SELECT tid, authorid, subject, message FROM {$tablepre}posts WHERE first='1' AND (subject='$subject' OR message='$message')");
if($db-num_rows($query)) {
$repeat = $db-fetch_array($query);
if($repeat['authorid'] == $discuz_uid) {
showmessage('post_repeated', 'index.php');
}
function SubString($str, $start, $len = 0xFFFFFFFF) {
if($start 0) {
$start = strlen($str) + $start;
}
if($len 0) {
$len = strlen($str) - $start + $len;
}
$tmp = '';
$result = '';
$strlen = strlen($str);
$begin = 0;
$subLen = 0;
for($i = 0; $i $start + $len $i $strlen; $i++) {
if($i $start) {
if(ord($str[$i]) = 161 ord($str[$i]) = 247 ord($str[$i+1]) = 161 ord($str[$i+1]) = 254) $i++;
} else {
$begin=$i;
for(; $i$start+$len $i$strlen; $i++) {
if(ord($str[$i]) = 161 ord($str[$i]) = 247 ord($str[$i+1])=161 ord($str[$i+1])=254) $i++;
}
return substr($str,$begin,$i-$begin);
}
}
}
if(strlen($message) 60) {
if(SubString($message, -100) == SubString($repeat['message'], -100) || SubString($message, 50, 100) == SubString($repeat['message'], 50, 100)) {
showmessage('post_repeated', 'index.php');
}
} else {
if($message == SubString($repeat['message'], 0, 60)) {
showmessage('post_repeated', 'index.php');
}
}
}
}
//Refuse repeated post. Code End
复制代码
'post_net_price_iszero' = '您的主题售价扣除积分交易税后为 0,请返回修改。',
复制代码
3、在后面一行添加
复制代码
'post_repeated' = '您所发布的主题或内容已存在:《a href=\"viewthread.php?tid=$repeat[tid]\" target=\"_blank\"$repeat[subject]/a》请勿重复发布。',
4、论坛里的个人签名的图片怎么弄的啊?Discuz代码和
代码各是什么?
Discuz代码不是什么语言也不是可以实现什么功能的东西, 他是论坛的名称,是由一个公司开发的,只是一个名字而已。 就好像bbsxp和动网,只是一个名字,Discuz代码是用PHP语言开发的。
如果支持的话,可在个人签名档里写入代码如:
图片地址[/img]注意:一般来说论坛的图片地址只支持网上图片。获取网页图片地址的方法:在网上找到你喜欢的那张图片,然后点右键--属性,里面会有一个"地址(url)"。把它复制到
图片地址[/img]代替"图片地址"。
你可以查看下自己所在用户组权限,然后再看看你用户组的下一用户组的权限 对比看看差别咯。或许最高用户组(等级影响)才能使用IMG。
5、Discuz! 文字过滤
方法一:
替换前的内容可以使用限定符 {x} 以限定相邻两字符间可忽略的文字,x 是忽略字符的个数。如 "a{1}s{2}s"(不含引号) 可以过滤 "ass" 也可过滤 "axsxs" 和 "axsxxs" 等等。
这个是Discuz官方提供的
方法二:
我安装了discuz7.0,在他的文件中找到了过滤函数并改写了它,使其能在过滤前先把所有的空格删掉。
具体改法:
1.用记事本打开include目录下的discuzcode.func.php文件
2.找到
if(preg_match($_DCACHE['censor']['banned'], @preg_replace(array("/\[($bbcodes)=?.*\]/iU", "/\[\/($bbcodes)\]/i"), '', $message).$message)) {
showmessage('word_banned');
}
在52行,你可以使用搜索功能(Ctrl+F)找到
3.在其前面增加一行
$message = str_replace(' ', '', $message);
这就是用来替换空格的
变成这样
$bbcodes = 'b|i|u|color|size|font|align|list|indent|url|email|hide|quote|code|free|table|tr|td|img|swf|attach|payto|float'.($_DCACHE['bbcodes_display'] ? '|'.implode('|', array_keys($_DCACHE['bbcodes_display'])) : '');
$message = str_replace(' ', '', $message);
if(preg_match($_DCACHE['censor']['banned'], @preg_replace(array("/\[($bbcodes)=?.*\]/iU", "/\[\/($bbcodes)\]/i"), '', $message).$message)) {
showmessage('word_banned');
}
4.保存即可
6、discuz 3.4 上传头像时提示文件上传过程中发生I/O错误
确保头像相关的目录有写入的权限,还有UCenter配置正确,还有上传头像主要是通过一个swf文件,现在有一些浏览器禁止Flash的执行,还要检查一下浏览器是否支持Flash 。。您也可以在应用中心搜索“csdn123”安装任何一款插件,里面有一个“批量注册用户”的功能,可以用那个功能试一下是否正常显示头像,如果用那些插件正常,那就是Flash的问题多一点。
i春秋discuz全家桶的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、i春秋discuz全家桶的信息别忘了在本站进行查找喔。