多组投票模块基于官方投票模块开发仅学校交流使用请勿商业用途本人不承担任何责任有好的建议或者bug请发邮件!安装前先备份投票模块数据。安装本模块会清空原来投票的所有表默认后台文件夹dede关闭系统配置里面的模块缓存选项。缓存更新一遍打开投票模块可查看。强烈建议使用以下单页模板生成../templets/default/singlepage.htm测试页面可单页生成需编译选项勾上原来投票标记dede:vote功能不变在此基础上添加{dede:votelistvotelist='testetest'}根据tag名调用组投票{/dede:votelist}功能添加添加用户联系方式统计新加表vote_tel保存用户联系方式用户联系可后台管理ajax异步提交保存联系方式完成相关验证及中文乱码问题前台投票投票结果分组后台投票添加分组显示括号内为调用tag投票分类管理界面经测试,发现该插件为gbk插件,utf不可以用还经过测试,该插件的封装后的后台路径不对,需要把0576admin里面的文件覆盖到自己的后台文件中(注意备份)。然后投票页面需要有以下js才能正常,注意路径:<scriptlanguage="javascript"src="/include/js/jquery/jquery-1.7.1.min.js"></script><scriptlanguage='javascript'type='text/javascript'>functionvotesubmit(){varmid=0;varfocusid='';varnum=document.getElementById("countshiti").value;for(i=1;i<=num;i++){varvotemsg="votemsg_"+i;varvismore=(document.getElementById("ismore_"+i).value==0?'':'[]');varvoteid="vote_"+document.getElementById("voteid_"+i).value+vismore;varvoteinput=document.getElementById(voteid).value;vardaanvalue=document.getElementsByName(voteid);vark=0for(h=0;h<daanvalue.length;h++){if(daanvalue[h].checked==true){k++;}}if(k==0){mid++;$('#'+votemsg).html("该项不能为空");}else{$('#'+votemsg).html("");}if(mid==1){focusid=voteid;}}if(mid==0){document.getElementById("votemid").value=0;document.getElementById("votelist").submit();}else{alert('某项为空,请检查!');$("#"+focusid).focus();}}functionontouch(){varmid=0;varnum=document.getElementById("countshiti").value;for(i=1;i<=num;i++){varvotemsg="votemsg_"+i;varvismore=(document.getElementById("ismore_"+i).value==0?'':'[]');varvoteid="vote_"+document.getElementById("voteid_"+i).value+vismore;varvoteinput=document.getElementById(voteid).value;vardaanvalue=document.getElementsByName(voteid);vark=0;for(h=0;h<daanvalue.length;h++){if(daanvalue[h].checked==true){k++;}}if(k==0){mid++;}}varres=(num-mid)*100/num;varloadprogressleft=58+(num-mid)*140/num;varfen=formatFloat(res,2);$('#loadcss').css({width:fen+'%'});$('#loadprogress').html(fen+'%');$('.tips').css({left:loadprogressleft+'px'});}functionformatFloat(src,pos){returnMath.round(src*Math.pow(10,pos))/Math.pow(10,pos);}functionopenWebBox(){varbg=window.document.getElementById("bg");varwebbox=window.document.getElementById("webbox");bg.style.visibility="visible";webbox.style.display="block";}</script>最后,根据自己的需求修改/templets/plus/votelist.htm以及:plus/votelist.php多组投票dede的插件目前就找到这一个,所以必须要用到的时候,经过一番修改也还不错。
本方法主要针对,自动内链的时候有关键词包含关键词的情况,而导致自动内链发生错误。方法一:找到/include/arc.archives.class.php中的1199行查找:"SELECT*FROM#@__keywordsWHERErpurl<>''ORDERBYrankDESC"替换为"SELECT*FROM#@__keywordsWHERErpurl<>''ORDERBYaidASC";//让他按添加顺序排列,越晚添加越早被替换比如,这里hdparm和rm导致了连接混乱,就把rm这个词删除再重新添加上.问题就解决了方法二:找到/include/arc.archives.class.php中的1199行查找:"SELECT*FROM#@__keywordsWHERErpurl<>''ORDERBYrankDESC"替换为"SELECT*FROM#@__keywordsWHERErpurl<>''ORDERBYBIT_LENGTH(keyword)ASC"实际上是MYSQL查询的时候,对关键字的排序变成“按关键字长度排序,短的靠前”修改后,再多的关键词也不会出错了。经过测试推荐使用第二种方法,不容易出错。
一、以超级管理员身份登录后台,依次选择[核心]à[定时审核管理],输入定时审核的时间段,如下图所示:功能说明:1、可以设置若干时间段,在这些时间段内,每天自动审核和生成指定篇数的未审核文章,每个时间段每天只会更新一次。2、自动更新网站首页和需要更新的栏目页,需要更新的栏目页是有新文章生成的栏目,没有新文章更新的栏目不会更新,提高了更新的性能。3、可以按照栏目或者总数更新文章。按照栏目更新文章,每个栏目更新指定篇数文章。按照总数更新文章,将按照id从小到大更新指定篇数文章。4、文章更新都是按照文章id从小到大的顺序,保证先添加的文章先更新。5、文章发布时间为审核时间。6、附加功能:全站更新,添加一个时间段,设置审核数量为0时,将进行全站更新实例说明:上图每个时间段内一天只审核一次。例如:3时至5时这个时间段,3时、4时(不包括5时)这段时间内只要有用户访问了网站首页就每个栏目审核和生产2篇文章,并且发布时间变成当时审核的时间。注意:假如这段时间没有用户访问网站首页,将不会审核。14时至16时,假如有用户访问网站首页,就更新10篇文章,不按照栏目更新,按照文章id从小到大更新10篇。修改说明:注意:修改有一定风险,请注意备份,测试没问题后再使用。版本:5.7utf-8一、在dede目录下添加附带目录dede里面的文件:times_man.php二、在dede\templets目录下添加附带目录dede\templets里面的文件:times_man.htm三、在plus目录下添加附带目录plus里面的文件:timing_check.php四、修改文件templets\default\index.htm,参照附带文件templets\default\index.htm,(这里面所说的文件是dede默认的首页模板文件,如果模板大改动,请根据下面括号里的提示操作。)修改如下:1、在第30至36行处添加如下代码(如果你的模板大改过,请把下面代码放到<script></script>之间):functionTiming_Check(){vartaget_obj=document.getElementById('say_hello');myajax=newDedeAjax(taget_obj,false,false,'','','');myajax.SendGet2("{dede:global.cfg_cmspath/}/plus/timing_check.php");DedeXHTTP=null;}2、在44至46行处添加如下代码(此地方的代码放在<body></body>之间即可。):<divid="say_hello"style="display:none;"></div><scriptlanguage="javascript"type="text/javascript">Timing_Check();</script>五、修改文件dede\inc\inc_menu.php,参照附带文件dede\inc\inc_menu.php,修改如下:1、在第93行处添加如下代码:<m:itemname='定时审核管理'link='times_man.php'target='main'/>六、修改文件plus\timing_check.php,修改如下:1、第4行代码:“define('DEDEADMIN',DEDEROOT.'/dede');”,将dede修改为你后台的文件夹名称七、以超级管理员身份登陆后台,主菜单依次选择[系统]-[SQL命令工具],在“运行SQL命令行:”的文本框下输入如下内容:(输入后点击“确定”)。CREATETABLE`dede_check_time`(`id`MEDIUMINT(8)UNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEY,`start_time`TINYINT(2)UNSIGNEDNOTNULLDEFAULT'0',`end_time`TINYINT(2)UNSIGNEDNOTNULLDEFAULT'0',`amount`SMALLINT(5)UNSIGNEDNOTNULLDEFAULT'0',`check_time`INT(10)UNSIGNEDNOTNULL)ENGINE=MYISAM;ALTERTABLE`dede_check_time`ADD`lmorzs`TINYINT(1)UNSIGNEDNOTNULLDEFAULT'0',ADD`maxpagesize`SMALLINT(5)UNSIGNEDNOTNULL;ALTERTABLE`dede_check_time`ADD`typeid`SMALLINT(5)UNSIGNEDNOTNULL;注意:表名前缀如果修改过请把"dede_"改成你的"前缀_",共有三处。注:定时更新插件for5.7GBK.rar未亲测试,请自行测试。转载自:http://www.dedecms.com/addons/other/2012/0531/1122.html
打开/include/taglib/arclist.lib.php,我目前用的最新版5.7SP1,代码约位于295-296行。查找以下两行代码。if($CrossID=='')$orwheres[]='arc.typeidIN('.GetSonIds($typeid).')';else$orwheres[]='arc.typeidIN('.GetSonIds($typeid).','.$CrossID.')';将其替换成以下代码。if($CrossID=='')$orwheres[]='(arc.typeidIN('.GetSonIds($typeid).')ORarc.typeid2IN('.GetSonIds($typeid).'))';else$orwheres[]='(arc.typeidIN('.GetSonIds($typeid).','.$CrossID.')ORarc.typeid2IN('.GetSonIds($typeid).','.$CrossID.'))';适用于dede5.7
用iframe调用分两种方法,一种是调用自己可控的网页,另一种是调用不可控的网页。如果是自己调用自己的,那我们直接用锚连接就可以。具体方法:<iframesrc=你的网址#锚点></iframe>这样就可以了。在这其中可以设置自己的样式大小和宽度。另一种是调用别人的网页,我们不可控,没办法加锚点,怎么办呢?我们用下面的方法。<IFRAMEvspace=300hspace=”300″src=”你的网址”frameBorder=0scrolling=nowspace=”200″></IFRAME>这里面的内容都是什么呢?vspace是垂直方向移动;向上移动100像素格式是vspace=-100hspace是水平方向移动;向左移动100像素格式是hspace=-100width和marginWidth都是嵌入框架的宽度height和marginheight都是嵌入框架的高度scrolling是,是否显示下拉标识,”no”是隐藏,”yes”是显示leftmargin是距离左端的距离topmargin是距离上端的距离js操作iframe的一些知识1.打印iframeeg.frameName.document.execCommand(‘print’);2.获取iframeeg.varifr_window=window.frames["frameName"];3.获取iframe中的元素eg1.将iframe中id为elementId的元素置为不显示:varifr_window=window.frames["frameName"];ifr_window.elementId.style.display=‘none’;eg2.获取iframe中id为listTable的表格varoTable=window.frames["myFrame"].document.all.listTable;4.隐藏或显示表格的某列js函数:functionsetHiddenOrShowCol(oTable,iCol,type){for(i=0;i<oTable.rows.length;i++){oTable.rows[i].cells[iCol].style.display=type;}}调用举例,将id为listTable的表格元素的第4列置为不显示:varoTable=window.frames["myFrame"].document.all.listTable;setHiddenOrShowCol(oTable,3,‘none’);调用举例2,将id为listTable的表格元素的第4列置为显示:varoTable=document.frames.myFrame.document.all.listTable;setHiddenOrShowCol(oTable,3,‘block’);JS部分是在网上看到的,还没试呢,我正在和同事商量用JS+CSS来空间,用iframe调用,看会不会更人性化,对浏览器的兼容性好点。有试过的也可以来分享分享啊。可能看到上面不是很清楚,下面有个列子,可以更清楚的查看:<IFRAMEwidth="1010"height="2870"src="http://www.xyxdxl.com/guestbook/"frameBorder=0scrolling=novspace=-380hspace=-240></IFRAME>上面的width,height为宽高,vspace为把网页上面的部分去掉380像素,hspace左边去掉240像素,得到网页。
首次上传缩略图不加水印方法:dede/article_add.php这是添加时搜$litpic=GetDDImage('none',$picname,$ddisremote);之下加if($cfg_album_mark=="Y")WaterImg($cfg_basedir.$litpic);dede/article_edit.php这是编辑时搜$litpic=GetDDImage('none',$picname,$ddisremote);之下加if($cfg_album_mark=="Y")WaterImg($cfg_basedir.$litpic);完美解决方法:dede5.7缩略图无论是否打勾都自动加水印的解决方法dede5.7缩略图无论是否打勾都自动加水印,在未启动水印功能前可能不会出现这个问题,但启用后,只要是想上传超过后台设定的最小宽高的图片,都会自动带上水印.缩略图的上传过程不是启用SWF上传的,所以,需要找到相应的PHP上传过程,经Sundy网上搜索后,无解决方案,最后自己查找原因.问题出在\include\dialog\select_images_post.php文件里,因为\include\dialog\select_images.php文件里有一个勾选是否加上水印的复选框,但相应提交到的PHP没有处理这一个表单项,故解决方案出现.找到if(in_array($imgfile_type,$cfg_photo_typenames)){WaterImg($fullfilename,'up');}修改成if(in_array($imgfile_type,$cfg_photo_typenames)){if($needwatermark==1){WaterImg($fullfilename,'up');}}问题解决,这样后台可以对单独上传的任何一个缩略图指定是否添加水印.