帝国cms做站常用的一些程序代码
2012-01-11 站长 站长日志
一、获取栏目网址:
$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址
判断是否首页(用于高亮):
<?=(!$GLOBALS[navclassid])?' class="cur"':''?>
判断是否当前页(高亮):
<?=($GLOBALS[navclassid]==$bqr[classid])?' class="cur"':''?>
各页面自动跳转移动端:
<script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script> <?php /*判断首页或者列表或者内页自动生成跳转地址,,,,,如果不生效就把百度这个js文件保存在网站本地*/ if(!$GLOBALS[navclassid]) { ?> <script type="text/javascript">uaredirect("http://m.xxx.com");</script> <?php } else { ?> <script type="text/javascript">uaredirect("http://m.xxx.com/<?=$class_r[$GLOBALS['navclassid']]['classpath']?>/<?=($navinfor[id]?$navinfor[id].'.html':'')?>");</script> <?php } ?>
第二种种跳转方式
<?php /*自动生成移动端跳转地址,仅限m.xxx.com形式,支持二级域名*/ $url = explode(".", $_SERVER['SERVER_NAME']); for ($i = 1; $i < sizeof($url); $i++) { $weburl.=".".$url[$i]; } if ($url[0]!="www"){ $weburl="http://".$url[0]."m".$weburl; } else{ $weburl="http://m".$weburl; } ?> <script type="text/javascript">uaredirect("<?=$weburl;?><?=$GLOBALS[navclassid]?'/':''?><?=$class_r[$GLOBALS['navclassid']]['classpath']?>/<?=($navinfor[id]?$navinfor[id].'.html':'')?>");</script>
按照指定排序调用SQL语句片段(配合条件调用):
order by field(classid,10,3,4,41,40)
栏目导航中判断某栏目是否为终极栏目:
if ($bqr[sonclass]=='' or $bqr[sonclass]=="|") ...
补充1:判断当前栏目是否有设置标题分类并调用:
<?php //判断当前栏目是否有设置标题分类 $tr=$empire->fetch1("select ttids from phome_enewsclassadd where classid=$GLOBALS[navclassid]"); //上面这句如果用在标题分类列表页需要改为$tr=$empire->fetch1('select ttids from phome_enewsclassadd where ttids like "%'.$GLOBALS[navclassid].'%"'); if ($tr[ttids]){ ?> <div class="am-panel-bd" style=" padding:15px 5px; overflow:hidden;"> <? $ttids=explode(',',trim($tr[ttids],",")); foreach($ttids as $id){ $ttname_sql=sys_ReturnEcmsLoopBq("select * from [!db.pre!]enewsinfotype where typeid=$id",0,24,0); while($bqr2=$empire->fetch($ttname_sql)){ $tturl=sys_ReturnBqInfoTypeUrl($bqr2[typeid]); ?> <a class="ys4" href="<?=$tturl?>" target="_blank"><?=$bqr2[tname]?></a> <?php }//endwhile }//endfor ?> </div> <? }//ENDIF ?>
补充2:禁止页面被复制和禁止右键:
<style type="text/css"> body { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } </style> <script langauge="javascript"> document.oncontextmenu=function(e){return false;} </script> </head> ...
补充3:访客留言或者新订单等等场景自动发邮件到管理员信箱:
并非原创,同时借鉴了轮胎两位大神的帖子,做了一些修改。
//给管理员信箱发送通知邮件新增函数 20180523 //参考网址:http://bbs.phome.net/showthread-13-167022-0.html //参考网址:http://bbs.phome.net/ShowThread/?threadid=346659&forumid=13 function SendNoticeToAdmin($siteurl,$body){ global $empire,$dbtbpre; $empire=new mysqlquery(); $pr=$empire->fetch1("select email from {$dbtbpre}enewspublic limit 1"); if(is_array($body)){ foreach($body as $value){ $key=key($body); next($body); //过滤和替换邮件里显示的内容 自修改 if ($key=='name' or $key=='mycall' or $key=='lytext' or $key=='ecmsfrom'){ switch ($key){ case 'name': $key="留言者"; $subject=$value; break; case 'mycall': $key="联系方式"; $subject.="(".$value.")的留言"; break; case 'lytext': $key="留言内容"; break; case 'ecmsfrom': $key="来源网址"; $value= $siteurl.$value;//此处修改网站首页前缀 break; } $msgtext .= "[$key]:"."$value"."n"; } } }else{ $msgtext=$body; } //$msgtext .= "rnrn注意请勿直接回复邮件:rn客户信息及其留言信息全部在上面邮件内容中.nr"; $sm=EcmsToSendMail($pr['email'],'来自'.$siteurl.':'.$subject,$msgtext); return $sm; }
补充4:
[!--pagedes--]在内容页调用默认调用标题的无损解法:通常大家可能会去修改functions.php,对以后升级会存在影响. 为了SEO想了一个折中简单的办法.
<meta name="description" content="<?=$navinfor[id]?$navinfor[smalltext].'---':''?>[!--pagedes--]" />
补充5:专题列表页调用同classid其他专题,输出导航和高亮:
<div class="zhuanti"> <?php $ecms_bq_sql=sys_ReturnEcmsLoopBq('select classid from phome_enewszt where ztid='.$GLOBALS[navclassid],1,24,0,'',''); while($bqr=$empire->fetch($ecms_bq_sql)) { $ecms_bq_sql2=sys_ReturnEcmsLoopBq('select ztid,ztname,ztpath,ztimg from phome_enewszt where classid='.$bqr[classid],8,24,0,'','ztid asc'); $bqno2=0; while($bqr2=$empire->fetch($ecms_bq_sql2)) { $bqno2++; ?> <a href="<?=$public_r[newsurl]?><?=$bqr2[ztpath]?>" title="<?=$bqr2[ztname]?>"<?=($GLOBALS[navclassid]==$bqr2[ztid])?' class="cur"':''?>><?=esub($bqr2[ztname],15)?></a> <? }//endwhile2 }//endwhile1 ?> </div>
列表页中单个产品显示所属专题,增加到列表内容模板(list.var)中:
$ecms_bq_sql=sys_ReturnEcmsLoopBq('select ztid from phome_enewsztinfo where id='.$r[id],1,24,0,'',''); while($bqr=$empire->fetch($ecms_bq_sql)) { $ecms_bq_sql2=sys_ReturnEcmsLoopBq('select ztid,ztname,ztpath,ztimg from phome_enewszt where ztid='.$bqr[ztid],1,24,0,'',''); while($bqr2=$empire->fetch($ecms_bq_sql2)) { $zturl=$public_r[newsurl].$bqr2[ztpath]; $ztname=$bqr2[ztname]; }//endwhile2 }//endwhile1
循环调用产品栏目数据,替代循环子栏目信息标签,可自由更改模版和调用条件:
<!--循环调用产品栏目数据,替代循环子栏目信息标签,可自由更改模版和调用条件--> [e:loop={'select classid,classname,classpath from phome_enewsclass where bclassid=1 and showclass=0 order by classid asc',10,24,0,'',''}] <? $classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址 ?> <a href="<?=$classurl;?>"><?=$bqr[classname]?></a> <?php } $pro_new=$empire->query("select title,titlepic,titleurl from phome_ecms_newmaterial where classid = '".$bqr[classid]."' order by newstime desc"); //取得该分类下的最新数据 while($r=$empire->fetch($pro_new)) { $url=sys_ReturnBqTitleLink($r); ?> <a target="_blank" href="<?=$url;?>"><img class="img-responsive center-block" alt="<?=$r[title]?>" title="<?=$r[title]?>" src="<?=$r[titlepic];?>" ></a><a target="_blank" href="<?=$url?>"><?=$r[title]?></a> <?php } ?> [/e:loop]
全站SEO标题懒人格式:
"网页标题"+"文章内页优化用自定义字段"或者"栏目或专题页优化用自定字段"+网站名称(首页不显示)
<title>[!--pagetitle--]<?=$navinfor[id]?'/'.$navinfor[tuijie]:''//如果在文章内页显示自定义字段tuijie内容?><?=($GLOBALS[navclassid] and !$navinfor[id])?'/'.ReturnClassAddField($GLOBALS[navclassid],'tuijie').ReturnZtAddField($GLOBALS[navclassid],'tuijie'):''//如果在栏目内页显示自定义字段tuijie内容,专题自定义字段函数并列一起但不会同时调用?><?=$GLOBALS[navclassid]?'/'.$public_r[sitename]:''//如果在不在首页显示后台设置的网站标题?></title>
多访问端换域名后必须执行的SQL语句(全):
update phome_ecms_news_data_1 set newstext=REPLACE(newstext,'老域名','新域名'); update phome_ecms_news set titlepic=REPLACE(titlepic,'老域名','新域名'); update phome_ecms_newmaterial set newstext=REPLACE(newstext,'老域名','新域名'),titlepic=REPLACE(titlepic,'老域名','新域名'); update phome_enewsclass set classimg=REPLACE(classimg,'老域名','新域名'); update phome_enewsclassadd set eclasspagetext=REPLACE(eclasspagetext,'老域名','新域名'); update phome_enewspublic set fileurl=REPLACE(fileurl,'老域名','新域名'); update phome_enewsmoreport set purl=REPLACE(purl,'m.老域名','m.新域名');
都是平时自己会用到的,上不了什么台面,也是为了方便自己查阅,肯定还有很多其他的,如果你也有很好用的代码,不妨跟大家分享。