源码

一、修改文件:\include\taglib目录下的channel.lib.php,请将以下代码全部复制替换上述文件<?phpfunctionlib_channel(&$ctag,&$refObj){global$_sys_globals,$envs,$dsql;$attlist="typeid|0,reid|0,row|100,col|1,type|son,currentstyle|";FillAttsDefault($ctag->CAttribute->Items,$attlist);extract($ctag->CAttribute->Items,EXTR_SKIP);$innertext=$ctag->GetInnerText();$cacheid=trim($cacheid);if($cacheid!=''){$likeType=GetCacheBlock($cacheid);if($likeType!='')return$likeType;}$reid=0;$topid=0;if(empty($typeid)&&$envs['typeid']!=0){$typeid=$envs['typeid'];$reid=$envs['reid'];}else{$reid=0;}if($type==''||$type=='sun')$type="son";if($innertext=='')$innertext=GetSysTemplets("channel_list.htm");if($reid==0&&$typeid>0){$dbrow=$dsql->GetOne("SelectreidFromdede_arctypewhereid='$typeid'");if(is_array($dbrow))$reid=$dbrow['reid'];}$likeType='';if($type=='top'){$sql="Selectid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFromdede_arctypewherereid=0Andishidden<>1orderbysortrankasclimit0,$row";}elseif($type=="son"){//if($_sys_globals['typeid']>0)$typeid=$_sys_globals['typeid'];if($typeid==0){return'';}$sql="Selectid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFromdede_arctypewherereid='$typeid'Andishidden<>1orderbysortrankasclimit0,$row";}elseif($type=="self"){if($reid==0){return'';}$sql="Selectid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFrom`dede_arctype`wherereid='$reid'Andishidden<>1orderbysortrankasclimit0,$row";}//Andid<>'$typeid'$needRel=false;$dtp2=newDedeTagParse();$dtp2->SetNameSpace("field","[","]");$dtp2->LoadSource($innertext);$dsql2=clone$dsql;$dsql->SetQuery($sql);$dsql->Execute();$line=$row;//检查是否有子栏目,并返回rel提示(用于二级菜单)if(ereg(':rel',$innertext))$needRel=true;if(empty($sql))return'';$dsql->SetQuery($sql);$dsql->Execute();$totalRow=$dsql->GetTotalRow();$GLOBALS['autoindex']=0;for($i=0;$i<$line;$i++){if($col>1)$likeType.="<dl>\r\n";for($j=0;$j<$col;$j++){if($col>1)$likeType.="<dd>\r\n";if($row=$dsql->GetArray()){$row['sonids']=$row['rel']='';if($needRel){$row['sonids']=GetSonIds($row['id'],0,false);if($row['sonids']=='')$row['rel']='';else$row['rel']="rel='dropmenu{$row['id']}'";}//处理同级栏目中,当前栏目的样式if(($row['id']==$typeid||($topid==$row['id']&&$type=='top'))&&$currentstyle!=''){if($currentstyle!=''){$linkOkstr=$currentstyle;$row['typelink']=GetOneTypeUrlA($row);$linkOkstr=str_replace("~rel~",$row['rel'],$linkOkstr);$linkOkstr=str_replace("~id~",$row['id'],$linkOkstr);$linkOkstr=str_replace("~typelink~",$row['typelink'],$linkOkstr);$linkOkstr=str_replace("~typename~",$row['typename'],$linkOkstr);$likeType.=$linkOkstr;}}else{$row['typelink']=$row['typeurl']=GetOneTypeUrlA($row);if(is_array($dtp2->CTags)){foreach($dtp2->CTagsas$tagid=>$ctag){if(isset($row[$ctag->GetName()])){$dtp2->Assign($tagid,$row[$ctag->GetName()]);}elseif(preg_match('/^sonchannel[0-9]*$/',$ctag->GetName())){$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql2));}}}$likeType.=$dtp2->GetResult();}}if($col>1)$likeType.="</dd>\r\n";$GLOBALS['autoindex']++;}//LoopColif($col>1){$i+=$col-1;$likeType.="</dl>\r\n";}}//Loopfor$ireset($dsql2);$dsql->FreeResult();return$likeType;}functionlib_channel_son($ctag,$typeid=0,$dsql2){$attlist="row|100,col|1,currentstyle|";FillAttsDefault($ctag->CAttribute->Items,$attlist);extract($ctag->CAttribute->Items,EXTR_SKIP);$innertext=$ctag->GetInnerText();$dsql3=clone$dsql2;$likeType='';//if($_sys_globals['typeid']>0)$typeid=$_sys_globals['typeid'];if($typeid==0){return'';}$sql="Selectid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFromdede_arctypewherereid='$typeid'Andishidden<>1orderbysortrankasclimit0,$row";//Andid<>'$typeid'$dtp2=newDedeTagParse();$dtp2->SetNameSpace("field","[","]");$dtp2->LoadSource($innertext);$dsql2->SetQuery($sql);$dsql2->Execute();$line=$row;for($i=0;$i<$line;$i++){if($col>1)$likeType.="<dl>\r\n";for($j=0;$j<$col;$j++){if($col>1)$likeType.="<dd>\r\n";if($row=$dsql2->GetArray()){$row['typelink']=$row['typeurl']=GetOneTypeUrlA($row);if(is_array($dtp2->CTags)){foreach($dtp2->CTagsas$tagid=>$ctag){if(isset($row[$ctag->GetName()])){$dtp2->Assign($tagid,$row[$ctag->GetName()]);}elseif(preg_match('/^sonchannel[0-9]*$/',$ctag->GetName())){$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql3));}}}$likeType.=$dtp2->GetResult();}if($col>1)$likeType.="</dd>\r\n";}//LoopColif($col>1){$i+=$col-1;$likeType.="</dl>\r\n";}}//Loopfor$ireset($dsql3);$dsql2->FreeResult();return$likeType;}?>二、在模板调用实例:{dede:channeltype='son'typeid='7'}[field:typename/]<ul>[field:sonchannel0]<li><ahref="[field:typename/]http://www.skyey.com.cn/[field:typelink/]">---[field:typename/]</a></li>[field:sonchannel2]<li><ahref="===[field:typename/]http://www.skyey.com.cn/[field:typelink/]">===[field:typename/]</a></li>[/field:sonchannel3][/field:sonchannel2][/field:sonchannel1][/field:sonchannel0]</ul>{/dede:channel}模板调用[field:sonchannel0][/field:sonchannel0]这个是用来取子栏目用得(使用[sonchannel+数字]作为标签名是为了防止嵌套的时候无法正确解析标签)这个的作用就是当你的栏目有很多子栏目无限分级的时候方便你取子栏目的转自:http://www.cnblogs.com/seaven/archive/2012/12/02/2798000.html

源码

很多网友在论坛发帖询问如何增加自定义属性,论坛中也有网友发帖解惑,采用的是服务器数据库后台管理的方式,这种方法对于大部分不熟悉操作的朋友来说,根本看不明白。呵呵~下面我将帮助文档中提及到的一种很简单的方法,用文字加图示的方式展现给大家,希望对这些朋友有所帮助。第一步:在织梦后台左栏点击“系统”;第二步:选择“系统”菜单下的“SQL命令行工具”;第三步:输入如下代码;insertinto`dede_arcatt`(sortid,att,attname)values(9,'d','评论');altertable`dede_archives`modify`flag`set('h','c','p','f','s','j','a','b','d')defaultNULL;第四步:点击“确定”。需要说明的是:代码第1行:values(9,'d','评论')是根据我们需要自行定义的,其中9是sortid的值,是不可重复的,也就是每添加一个自定义属性,sortid的值就应该递增到10,11,12...,以此类推!d是alt的值,是自定义属性的标记,与已存在的标记符号不能重复,“评论”是中文名称,是方便人们直观地勒戒自定义属性的含义的,可以根据需要改为“网络”、“新闻头条”等。代码第2行:set('c','h','p','f','s','j','a','b','d'),括号中的字母对应已存在的标记符号和您需要添加的标记符号,并按顺序录入,不得改变先后顺序。例如,d排序第9位,则对应第一行代码中添加的自定义属性““评论d”。

2013-2-21 2869 0
源码

这几天找安卓在线生成工具,找了很久没有找到好的。不是有广告就是不保险,再就是国外的很多不支持,今天发现一个还不错的,html+js开发后生成为安卓,支持二次开发,有自己的函数方法,扩展性强,有时间研究研究。http://www.rexsee.com/http://www.phonegap.cn/下面转载的一篇文章,介绍了目前各种安卓开发的方式:想同时搞多个移动平台开发的人已许会听到phonegaprexseeappcanTitanium这些东西,因为Titanium与前面三个有实质的区别,前面三个都是HTML+JS+各自己的框架,Titanium是把我们的代码重写后编译(应该是这样吧)不对也不要骂我。我是一个开发WEB出身的人,所以一听到HTML+Js能搞移动开发当然是很兴奋的了。声明,本人文笔不如小学6年级的小朋友,所以。。看到的人你们懂的。phonegGAPhttp://phonegap.com改名了叫ApacheCallback,已经被ADOBE收购,目前最高版本是1.5而且到8月前一个月一个版本的加,三个中间件中最熟悉的是phonegap.但是对一个初学者来说特别是没有开发经验的人来说这货很难办,因为他没有单独的IDE,所以开发ANDROID你要用ANDROID的IDEeclipse这是我用的,苹果XCODE我想这个是最没有异议的,symbian用~~~~我好像还没搭好,.IDE搞完之后。还有很多很多问题。REXSEEhttp://www.rexsee.com 没听说改名,不改名就是暂时还没被别人收购 最简单的东西,需要SDK或IDE吗?SDK??IDE??自己在开发WEB的时候用什么就用什么~~然后看下他们的API,高兴可以全部看完,不高兴知道自己要的那个功能看下调用,比如你要拍照你就看下摄像头那一部份就行了,短信那一部份你就有空看看也行就和JQ那的使用,里面有比PHONEGAP强大N陪的API,基本上ANDROID有的他都有,但是你不用管ANDROID要怎么做,这一部份是他们的管的,就是自己在做网页的时候多了一个手机版的,做得像APP那样,如果你高兴改都不要改也行。而且你不用管资源文件啊,配XML啊,策略文件,给他们一个图标,一个首页URL,一个APPNAME,别的事你就不要管了。然后就可以在线生成APK了,这么爽有什么弊端,没有跨平台,只做ANDROID,IOS,想都不要想。而且,他们目前只能是在线生成,要看控制台里的东西看不到,log.i,log.e.log...NO一边去,建义他们做多一个像中国移动那样的在线调试的东西,可以把控制台输出。而且开发都也不用去买那么多手机,只要网站那边有,丢上去运行下就行了。像这货http://www.mobiletest.cc/rts/rts/rts-home.do#appcan3月6号才公测的东西,没改名,没被人收购,http://www.appcan.cn 有三个方式你选择,easy模式,你可以什么都不会就能开发APP,会玩QQ空间吗?会,那你就会了,一个是WEB模式,与REXSEE一样,一个是NATIVE模式,他们提供SDK,而且他们的IDE 是eclipse,不管是苹果还是ANDROID。就用他们。因为eclipse在苹里也能用。所以你不想管那些环境的搭建,而且他们现在在搞扶植计划~~计划内容是什么,我也不知道。去他们那里看下就知道。总结下现在的移动Web工具:PhoneGapSenchaTouchjQueryTouchjQtouchAdobeAIRTitaniumrexseeappcanTitanium

2013-1-28 3439 0
2013-1-25 4317 0
源码

多组投票模块基于官方投票模块开发仅学校交流使用请勿商业用途本人不承担任何责任有好的建议或者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的插件目前就找到这一个,所以必须要用到的时候,经过一番修改也还不错。

2013-1-25 10389 0