又学会一招:DEDE处理多个字段

0 个评论
比如我有一个字段叫推荐(tuijian) 我想当这个字段为空的时候就替换成其他字段的内容,比如要替换成aid的内容 直接[field:tuijian runphp=’yes’]处理代码[/field:tuijian]貌似无法取得其他字段的内容的 找了一下解决办法 实际上我们可以采用这个 [field:array runphp=’yes’]@me=@me[‘title’];[/field:array]处理多个字符 比如刚才的功能可以写成 [field:array runphp=’yes’] $aa=@me[‘tuijian’]; if(empty($aa)){ @me=@me[‘aid’]; }else{ @me=@me[‘tuijian’]; } [/field:array] 这个功能非常有用~记录一下 顺便附上找到的文章 关于dede模板文件里面的编程总结 我们用dede最常见的就是模板的制作.下面列举一些制作dede模板文件的时候里面的一些编程总结 一 .字段调用函数 : 1. artlist标签里面: [field:pubdate function=MyDate(‘Y-m-d H:i’,@me)/] 2. 文章页面里面(article_article.htm): {dede:field.pubdate function=”MyDate(‘Y-m-d H:i’,@me)”/} 或者这样写 {dede:field name=’pubdate’ function=”MyDate(‘Y-m-d H:i’,@me)”/} 上面的@me代表pubdate这个字段值,函数返回处理后的值 二.字段值用PHP处理的 1. artlist标签里面: 处理单个字段:[field:title runphp=’yes’]@me ;[/field:title] 处理多个字符: [field:array runphp=’yes’]@me=@me[‘title’];[/field:array] 2. 文章页面里面(article_article.htm): 处理单个字段: {dede:field.title runphp=’yes’} @me;{/dede:field.title} 或者 {dede:field name=’title’ runphp=’yes’} @me;{/dede:field} 处理多个字符: {dede:field.array runphp=’yes’} @me=@me[‘title’];{/dede:field.array} 或者 {dede:field name=’array’ runphp=’yes’} @me=@me[‘title’];{/dede:field} 三.模板文件里面直接写PHP带码 {dede:php} $flag=1; if($flag==1) { echo ‘111′; }else{ echo ‘22′; } {/dede:php} 四.其它 1.在文章列表中,显示当前文章的评论数量: [field:ID runphp=’yes’]$dsql = new dedesql(false);$dsql -> SetQuery(“Select count(id) as c from dede_feedback where aid=”.@me);$row = $dsql -> getone();@me=$row[‘c’];[/field:ID] 2.文章收藏次数 [field:ID runphp=’yes’]$dsql = new dedesql();$dsql -> SetQuery(“select count(*) as c from dede_member_stow where aid=”.@me);$nic_row = $dsql -> getone();@me=$nic_row[‘c’];[/field:ID] 3. {dede:field.id runphp=’yes’} $tsql = new DedeSql(false); $gname = ”; $row = $tsql->GetOne(“Select 字段名 From 表名 where aid=’@me’”); $gname .= “进入游戏”; @me=$gname; {/dede:field.id} 4. 列表页调用会员任意字段信息. [field:mid runphp=yes] $tsql = new DedeSql(false); $mid = ”; $tsql->SetQuery(“Select m.mid,m.userid,c.company,c.address,c.url FROM dede_member m left join dede_member_company c on m.mid = c.mid where m.mid=’@me’”); $tsql->Execute(‘t’); while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)) { $mid .= “ 公司名:” .$row[‘company’].” ”.” 公司网址:” .$row[‘url’].” ”; } @me=$mid; [/field:mid] 或简单一个表: 公司地址: [field:mid runphp=yes] $tsql = new DedeSql(false); $mid = ”; $tsql->SetQuery(“Select mid,company,address From dede_member_company where mid=’@me’”); $tsql->Execute(‘t’); while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)) { $mid = $row[‘address’]; } @me=$mid; [/field:mid]
2011-05-09 / dedecms / 696,764 views浏览
阅读全文

PW8.3的头像截取不好改啊

0 个评论
客户需要把头像设置成比较大的竖的长方形 我看了一下,8.3的头像分成3种,一种是原始尺寸,一种是中等大小,一种是小的 原始尺寸是客户直接上传的大小 中等尺寸和小尺寸却是由截取头像那个FLASH生成的 我发现截取大小是直接在FLASH里面固定好了~ 没办法修改,除非能编辑那个FLASH文件 尝试破解了一下,因为我的FLASH版本是8,比较低,没有修改成功 有些郁闷 那么最快捷的方法是直接显示上传的原始图了 修改read.php里面找到 list($read[‘face’],,$httpWidth,$httpHeight,,,,$read[‘facesize’]) = showfacedesign($read[‘micon’], true, ‘m’); 后面的m就是读取中等尺寸的头像 我们把他留空就是直接读取原始的头像 list($read[‘face’],,$httpWidth,$httpHeight,,,,$read[‘facesize’]) = showfacedesign($read[‘micon’], true, ”); 就可以了
2011-05-08 / phpwind / 4,741 views浏览
阅读全文

不小心把水杯打翻了

0 个评论
键盘进水了~ 某些键失去作用,变成其他键了· 看着刚买没几天的键盘,有点心痛 没办法,花了一个多小时拆开来清理里面的积水~ 最后终于恢复正常了
2011-05-04 / 生活 / 3,441 views浏览
阅读全文

今晚花了3个小时拆我的笔记本

0 个评论
前几天发现用转接口的PS/2键盘频繁出错了 我明白是由于转接口的问题 可能天气热,里面某些元件受不了高温吧 于是我上街买了个USB口的键盘 接着下了CS玩了一下,结果过不了几分钟就死机 想起机子买了2年了,还从来没清过灰尘 现在天气热了,不能正常散热的话肯定还会继续死机 即使CPU有温度监控什么的,会自动关机 但是瞬间的关机对硬盘损害也是很大啊 频繁死机的话,硬盘迟早会挂掉 于是我上网找可一下教程,果然有两篇 都是我这个型号机子的拆机教程 我匆匆抄了一些,自己画了一些简易图,然后就开始动手拆机了 根据教程,慢慢摸索,还真的把机子拆开了 有些经验非常有用,记录一下: 首先是螺丝钉的问题,由于笔记本背面螺丝很多,还长度不一,一不注意就乱成一团,所以拿张纸,大概画一下位置,然后把卸下来的螺丝钉给直接插在图上相关位置,最后装回机子的时候对号入座就可以了 还有就是卡座问题,我们的指甲不够长,或者怕直接掰的话会掰烂,可以使用一些电话卡,银行卡什么的代替指甲去掰卡座 其他的就没什么值得记录的了 由于没经验,最后拆主板的时候弄了好久,最后才发现竟然还有线没拔下来,难怪拆不下来~看来细心是非常需要的 等下再玩玩半条测试一下,看看是不是恢复稳定状态了
2011-05-01 / 生活 / 4,626 views浏览
阅读全文

为了个联合查询语句弄了1个小时

0 个评论
记录一下,以防以后又碰到相同情况又要找来找去 select count(*) as a from ( (SELECT aid,typeid,linkman,xiaoqu,fangxing,mianji,jiage,shijian,senddate FROM dede_addoninfos WHERE arcrank>=0 AND state=0 and typeid0) UNION (SELECT aid,typeid,linkman,xiaoqu,fangxing,mianji,jiage,shijian,senddate FROM dede_addoninfos9 WHERE arcrank>=0 AND state=0 and typeid0) ORDER BY aid desc)as temp; 中间是一个联合查询 外面是统计总查询数 我在网上搜索到了一些语句,按照那种模式却老是遇到错误 最后突发奇想这样写,竟然通过了 因为也是用到了UNION,所以DEDE中使用的时候先得把安全检测关掉 不然会提示安全警告
2011-04-30 / dedecms / 4,961 views浏览
阅读全文

今天路考过了

0 个评论
下个月拿证 想想去年8月份就报名的~ 到现在都差不多一年了才得拿证 也真是够久的 一方面是我自己去年没空 另一方面是考试时间间隔比较长 倒桩还补考了一次 浪费了一个多月 不过还好,后面都比较顺利
2011-04-29 / 生活 / 4,421 views浏览
阅读全文

竟然遇见这个问题Safe Alert: Request Error step 1 !

0 个评论
今天给客户弄站,需要联合查询两个表 要用到union,我用了SQL标签去查询,结果不能运行 提示Safe Alert: Request Error step 1 ! 一看到就知道是安全警告,也就是SQL语句里不能用union 主要是为了防止注入 但是我现在必须使用啊,怎么办呢? 有人提出可以 include下的dedesql.class.php找到如下构造函数 1. function __construct($pconnect=false,$nconnect=true) 2. { 3. $this->isClose = false; 4. $this->safeCheck = true; 5. if($nconnect) 6. { 7. $this->Init($pconnect); 8. } 9. } 把其中的$this->safeCheck = true;改为$this->safeCheck = false; 但是将“true”修改为false即可屏蔽掉安全检测。当然,这样存在一定的安全隐患 那么只能使用PHP标签了,直接写PHP语句 用 {dede:php} 标签进行完全的编程 下面就是我写的 {dede:php } $sql_tag=”(SELECT aid,typeid,linkman,xiaoqu,fangxing,mianji,jiage,shijian,senddate FROM dede_addoninfos WHERE arcrank>=0 AND state=0 and typeid0) UNION (SELECT aid,typeid,linkman,xiaoqu,fangxing,mianji,jiage,shijian,senddate FROM dede_addoninfos9 WHERE arcrank>=0 AND state=0 and typeid0) ORDER BY aid desc LIMIT 10;”; if(!isset($dsql)||!is_object($dsql)){ $dsql=new DedeSql(false);} $dsql->safeCheck = false; $dsql->SetQuery($sql_tag); $dsql->Execute(); while($row=$dsql->GetArray()){ $url=GetOneArchive($row[‘aid’]); $url[‘typeurl1’]=GetTypeUrl($row[‘typeid’],$url[‘typedir’],1,$defaultname=’index.html’,0,$namerule2='{typedir}/list_{tid}_{page}.html’,$moresite=0,$siteurl=”,$url[‘typedir’]); echo “ “.$url[‘typename’].”“; echo “ “.$row[‘linkman’].”“; echo “ “.$row[‘xiaoqu’].”“; echo “ “.$row[‘fangxing’].”“; echo “ “.$row[‘mianji’].”“; echo “ “.$row[‘jiage’].”“; echo “ “.$row[‘shijian’].”“; echo “ “.MyDate(‘y-m-d’,$row[‘senddate’]).”“; } {/dede:php} 其中的$dsql->safeCheck = false; 就是把检测关掉了 测试通过
2011-04-28 / dedecms / 5,532 views浏览
阅读全文

转:织梦cms/dedecms提示“xx has not allow words”的解决办法

0 个评论
序版本:DEDEv5.3 gbk 问题原因:用户发布的内容中含有系统中设置的非法字符,但系统没有明确提示非法文字,造成用户十分茫然。 解决办法:明确提示非法文字,方便用户修改。 修改文件:inclide/fileter.inc.php,大约19行左右 if($cfg_notallowstr!=” && eregi($cfg_notallowstr,$svar)) { preg_match_all(“@{$cfg_notallowstr}@”,$svar,$me); $me = array_unique($me[0]); $notallowkeys = ”; foreach($me as $v){ $notallowkeys .= $v . ‘, ‘; } $msg =??’您发布的内容中带有不被允许的文字 :’ . $notallowkeys; ShowMsg($msg,’-1′); exit(); }
2011-04-21 / dedecms / 4,218 views浏览
阅读全文

药吧一直被垃圾营销软件注册垃圾帐号

0 个评论
今天看了一下,都是以mx8168.net为邮箱后缀注册的,到他们站点一看,果然是个叫虫虫营销助手的垃圾营销软件,注册了近千个垃圾帐号 前段时间我开启了邮箱验证,不过SMTP没设置成功,然后注册的垃圾帐号都处于未验证阶段 我再仔细看了一下,发现也有用其他邮箱注册的,应该是正常的用户,不过大部分都没验证成功 想起我设置SMTP的时候,没成功就默认用主机的MAIL函数发送,貌似也能发送成功,不过速度慢得要死,恐怕要半分钟才发送成功,很多人会员注册的时候恐怕等不了那么久,于是才会出现那么多未验证的帐号 想起前几天才给客户设置SMTP,也是用QQ的,是成功了的 然后我进后台检查了一下,发现端口写错了,上QQ邮箱帮助那里查了一下,原来一般的用端口25,SSL加密的才用465 再仔细一看,我连密码都弄错了,难怪前次测试没成功 今天再仔细改了一下,测试了一下终于成功了 然后我想着怎么屏蔽那个垃圾营销软件的骚扰 找到reg_new.php修改其中的$dopost==’regok’这个地方 找到邮箱验证 if(!CheckEmail($email)) { ShowMsg('Email格式不正确!', '-1'); exit(); } 添加我们自己的验证 //判断EMAIL是否包含有某个垃圾广告软件的EMAIL if (preg_match( "/mx8168/i ",$email)){ print "怀疑你是由垃圾营销软件注册的,请换个注册邮箱"; exit(); } 直接过滤含有mx8168字符的邮箱 然后到后台删除帐号~ 不过竟然提示错误,貌似是UCAPI出错,没有相关函数 直接找到相关文件去掉那个函数的调用就可以了 反正我也没整合UC  
2011-04-21 / 网站制作技术 / 4,396 views浏览
阅读全文

很久没叙写生活了

0 个评论
最近也没什么重大的事情发生,所以一直都不怎么想写生活 前段时间回了她的家,看到的是惨不忍睹的老人、老屋 顿时心情一落千丈,有种上当受骗的感觉,几分凄苦几分愁 唉,只怪自己一时糊涂,不过登记的时候我都已经有种预感 那时候的心情也是非常不好,有种想哭却哭不出来的感觉 貌似自己一辈子就要毁了一样 前几天她和老妈去看婚纱照展览,回来就兴致勃勃地提条件了 我心里一点想照的欲望都没有,肯坚决地拒绝了 没想到她发脾气了 好吧,发就发吧,大家一起发 于是乎~~~~~~~~~~~~~~~~~~~~~~~ 往事不堪回首,今天在老妈的逼问下我坦诚了 无所谓了,一切都无所谓了 勉强得不到任何幸福,和一个不喜欢的人过一生确实很悲哀 证我烧了,人也分了吧
2011-04-21 / 生活 / 3,933 views浏览
阅读全文