编辑整理:整理来源:油管,浏览量:91,时间:2023-03-06 15:15:01
在Phpcms V9模板制作教程分享之后,继续分享关于phpcms v9模版制作方面的资料,下面是在Phpcms V9常用的数据调用代码,分享在此!
1.去掉标题限制后出现的省略号
{str_cut($r[title],36,'')}
2.格式化时间
格式化时间 2011-05-06 11:22:33
{date('Y-m-d H:i:s',$r[inputtime])}
格式化时间 2011年05月06日
{date('Y年m月d日',$r[inputtime])}
3.多栏目调用&多推荐位调用
调用需求:文章范围为59 60 61三个栏目,并且推送到了27 和28两个推荐位;从第三条开始,连续调用7篇文章。
{pc:get sql="SELECT * FROM v9_news WHERE id IN (SELECT id FROM v9_position_data WHERE posid in(27,28) and catid in(59,60,61)) order by listorder DESC" cache="3600" start="3" num="7" return="data" }{loop $data $n $r}<li>·<a target="_blank" href='{$r[url]}' title="{$r[title]}" style="color:Black;">{str_cut($r[title],22,'')}</a></li>{/loop}{/pc}4.显示栏目名称(只是名称,不带链接)
{$catname}显示栏目名称和链接(可以点击)
<a href="{$CATEGORYS[$r[catid]][url]}">{$CATEGORYS[$r['catid']]['catname']}</A>5.获取父栏目id/获取父栏目名称
{$CATEGORY[$catid][parentid]}父栏目名称:{$CATEGORYS[$CAT[parentid]][catname]}6.外部数据源调用
dedecmsdb 在后台数据源处添加{pc:get sql="SELECT * FROM cq_member where mtype='企业' " cache="3600" dbsource="dedecmsdb" num="7" return="data"}{loop $data $r}<a href="/member/index.php?uid={$r[userid]}" title="{$r[uname]}" target="_blank">{str_cut($r[uname],28,'')}</a>{/loop}{/pc}7.调用子栏目(在栏目首页模板需要用到)
{pc:content action="category" catid="$catid" num="25" siteid="$siteid" order="listorder ASC"}{loop $data $r}<a href="{$r[url]}">{$r[catname]}</a> |{/loop}{/pc}8.显示指定id的栏目名称 (例子这里catid=22)
{$CATEGORYS[22]['catname']}9.在文章面前显示文章类别
{pc:content action="lists" catid="79" order="listorder DESC" num="14" }<?php $TYPE = getcache('type_content','commons');?>{loop $data $n $r}<li>{if $TYPE[$r[typeid]][name]}<span style="color:#CC6600">[ {$TYPE[$r[typeid]][name]}] </span>{/if}<a href="{$r['url']}"{title_style($r[style])}title="{$r['title']}" target="_blank">{str_cut($r[title],33,'')}</a></li>{/loop}{/pc}10.指定变量循环增长(幻灯片经常用到)
{pc:content action="lists" catid="66" order="listorder DESC" thumb="1" num="5" }{php $num = 0}{loop $data $r}linkarr[{$num}] = "{$r[url]}";picarr[{$num}] = "{$r[thumb]}";textarr[{$num}] = "{str_cut($r[title],36,'')}";{php $num++}{/loop}{/pc}
假设变量$a,$b,$c=$老费断服省素程a^$b(变量a异或变量b),
所以我们有$a=$b^$c , $b=$a^$c 以上是异或逻辑的应用,(题外话:如何在不使用第3个变量的情况下,交换变量$a,$b的值呢?) 正题: 可以把变量$a看成是明文蒸吃湖错建派月缩(需加密的字符串),变量$b看成是密钥(自己定义),变量$c看成是密文(发送到客户端在网上传输的)。 当然上面只是基本来自原理,加密绝不是就简星非班单的异或字符串就行。 为了使算法更不易破解sys_auth函数副周对密钥进行了一个加密: $key_length = 4; $key = md5($key); $fixedkey = md5($key); $egiskeys = md5(substr($fi米害操底陆抗代xedkey, 16, 16)); $runtokey = $key_length ? ($operation == 'E信元呼字角政短阿张千果NCODE' ? substr(md5(micro烧斗与长唱time(true)), -$key_length) : substr($s热路剂空优车致刘装些tring, 0, $key_length)) : ''; $keys = md5(substr($runtokey, 0, 16) . sub随他领str($fixedkey, 0, 16) . substr($runtokey, 16) . substr($fixedkey, 16)); 对明文也插入一些片段,并用base64进行了编码。 function sys_auth($string, $operation = 'ENCODE', $key = 'hi', $expiry = 0) {$key_length = 4;$key = md5($key);$fixedkey = md5($key);$egiskeys = md5(substr($fixedke给么头市东才尔方y, 16, 16));$runtokey = $key_length 酒弦才跳? ($operation == 'ENCODE' ? substr(md5(microtime(true)), -$key_length) : substr($string, 0, $ke战移底生占染素房早燃测y_length)) : '';$keys = md5(substr($书会应师弱吃越会手陆runtokey, 0, 16) . substr($fixed感富既溶织严干key, 0, 16) . substr($runtokey, 16) . substr($fixedkey, 16群激女角));$string = $operation == 'ENCODE' ? sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$egiskeys), 0, 16) . $string : base64_decode(substr($string, $key_length));//10位密文过期信息+16位明文和密钥生成的密文验证信息+明文$i = 0; $result = '';$string_length = strlen($string);for ($i = 0; $i < $string_length; $i++){$result .= chr(ord($string{$i}) ^ ord($keys{$i % 32}));}if($operation == 'ENCODE') {return $runtokey . str_replace('=', '', base64_encode($result));} else {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$egiskeys), 0, 16)) {return substr($result, 26);} else {return '';}}} function sys_auth($string, $operation = 'ENCODE', $key = 'hi', $expiry = 0) {$key_length = 4;$key = md5($key);$fixedkey = md5($key);$egiskeys = md5(substr($fixedkey, 16, 16));$runtokey = $key_length ? ($operation == 'ENCODE' ? substr(md5(microtime(true)), -$key_length) : substr($string, 0, $key_length)) : '';$keys = md5(substr($runtokey, 0, 16) . substr($fixedkey, 0, 16) . substr($runtokey, 16) . substr($fixedkey, 16));$string = $operation == 'ENCODE' ? sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$egiskeys), 0, 16) . $string : base64_decode(substr($string, $key_length));//10位密文过期信息+16位明文和密钥生成的密文验证信息+明文$i = 0; $result = '';$string_length = strlen($string);for ($i = 0; $i < $string_length; $i++){$result .= chr(ord($string{$i}) ^ ord($keys{$i % 32}));}if($operation == 'ENCODE') {return $runtokey . str_replace('=', '', base64_encode($result));} else {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$egiskeys), 0, 16)) {return substr($result, 26);} else {return '';}}}