巧用帝国CMS系统变量提升网站用户体验 完善SEO优化

作者:Davidszhou   来源:   时间:2015-11-09 22:26:24   点击:

  使用帝国CMS的小伙伴们可能都会在帝国CMS手册里面看到一些自带的系统变量,举个例子,也是最近刚开始使用的一个系统变量即:$GLOBALS[navclassid]这个变量意思是当前栏目id,$GLOBALS[navclassid]--这个变量怎么使用?或者说对于网站的用户体验乃至网站的SEO优化能有多大的帮助?其实我也是最近才注意到这个系统变量,当时我是准备在做一个“紧固件在线商城”。

    由于每种产品的规格较多,又想在一个页面列出所有规格产品,这应该算是一个列表页吧,如果当前页面调用几条与与之相关标准信息,应该也是不错的,例如:紧固件有一个标准“DIN933”,DIN933是一个栏目,栏目下面全部是DIN933的产品,访客查看该标准的产品,可能需要查阅DIN933标准、或者查阅DIN933相关行业信息、或者行情等等,对于网站的用户体验可能带来一定帮助,那如果我每一个栏目都这样调用可能有点费劲,那借助$GLOBALS[navclassid]这个帝国CMS系统函数来做就比较方便些,他可以直接调用出来当前栏目的相关信息。
开始的时候,我是直接使用“[!--bclass.id--]”或者“[!--class.name--]” 放在MYSQL写条件使用,不知道是不是我使用方法错误还是怎么滴,总是提示错误,要不就是空白,最终选择这个函数,发现使用起来非常的方便:

<?php
$randnum=1000;        //随机数量
$randids='';
$randdh='';
for($i=1;$i<=$randnum;$i++)
{
$randids.=$randdh.rand(1,1000);        //1为最小ID,100000为最大ID
$randdh=',';
} //以上是帝国CMS的随机调用的PHP代码,以下就是我们后面需要用到的
$sql= "select * from enewsclass where classid = '$GLOBALS[navclassid]'"; //MYSQL查询语句
$conn = mysql_query($sql);
$lanmu = mysql_fetch_assoc($conn);
?>



这样的话,我们如果要使用格式为:$lanmu[classname](依据官方:select * from phome_enewsclass where classid='$GLOBALS[navclassid]')OK到这里,$lanmu[classname],[栏目数据表phome_enewsclass内字段都可以直接使用,如果没错的话]
自己例子:

[e:loop={"select * from ecms_news where title like '%$lanmu[classname]%' and id in ($randids) ORDER BY id DESC LIMIT 1",1,24,1}]
<dd><p><a href="<?=$bqsr[titleurl]?>" target="_blank" title="<?=$bqr[title]?>"><img src="http://www.fullerasia.com.cn<?=$bqr[titlepic]?>" alt="<?=$bqr[title]?>" title="<?=$bqr[title]?>"/></a><?=esub($bqr[smalltext],150)?>[<a href="<?=$bqsr[titleurl]?>" target="_blank" title="<?=$bqr[title]?>详情">更多</a>]</p></dd>
[/e:loop]



这时候我前面说的那个例子:栏目名是一个关键词:DIN933(一种紧固件标准名),有时候我们还可以在改良以下:在这之前先做个小调查,我们给每一个栏目都会设置关键词么?还是就空在那里?我是空的!呵呵……
         改良思路:再次运用类似帝国CMS关键词字段或者描述字段,在里面写的内容就是该栏目下的相关的关键词,中间用“|”隔开。
         利用到MYSQL正则的”OR”即“REGEXP”,一会我去转一篇关于MYSQL正则文章,抛弃一些“数据库”之类的性能,目前暂时的管不了那么些,能用就行,数据量上来了在想性能问题。
上面的PHP代码放在头部或者底部,当然前提不要忘记开启程序的“源码支持”(官方查找或者帝国CMS官方手册),把$lanmu[classname]内的classname换成栏目表的“关键词”或者“描述”字段,然后我们在使用MYSQL调用信息,where条件即:title REGEXP ‘$lanmu[classpagekey]’,下面分享一个自己在用的:

[e:loop={"select * from dongluo_ecms_news where title REGEXP '$lanmu[classpagekey]' and classid = '12' and id in ($randids) ORDER BY id DESC LIMIT 3",3,24,0}]
<li><i>标</i><a href="<?=$bqsr[titleurl]?>" target="_blank" title="<?=$bqr[title]?>"><?=esub($bqr[title],36)?></a></li>
[/e:loop]


恩,到这里也差不多了,用在哪里?怎么使用?好好规划一下,下面效果截图(美工LOW的,见谅):

巧用帝国CMS系统变量提升网站用户体验 完善SEO优化

说明:模糊匹配三条相关标准、三条相关词条、三条相关信息以及一条精确匹配产品说明

TAGS:帝国CMS , 系统变量 , 用户体验 , SEO优化

来自Davids zhou博客原创文章请尊重作者:http://www.zongk.com/zongk/69.html转载请标注此链接

网站统计
文章总数:129
今天发布:0
软件资源数:18