适合主流CMS系统的代码优化方法(5)

 

5.2.4  内容页代码和标签优化

内容页的重要性任何人都知道,但是内容页的优化却非常烦琐,所以很多站长往往在优化内容页代码和标签时容易迷糊。在当前主流的CMS系统中,内容页最大的设计问题是拥有过多的功能,这些功能比较符合大型站点的需求,但是并不一定适合小型站点。

内容页模板位置

在织梦CMS中,内容页模板在以下位置可以找到:

网站根目录 > templets > default > article_article.htm

通过登录后台使用“文件式管理器”找到上述文件即可进行修改。另外一种方法是通过后台的“模板”→“默认模板管理”→“文章内容页模板”进行管理,如图5.36所示。

图5.36  文章内容页模板

内容页代码精简

根据不同需求,内容页中的代码可以进行很多删减,这里仅按比较精简的单纯文档发布的中小型网站为例,介绍内容页代码精简的相关方法。

在内容页中,首先需要精简的代码是广告,这是网站上线之初的常规做法,具体代码如下:

<div id="listRtPicAD2" style="margin:10px auto">{dede:myad

name='listRtPicAD2'/}</div>

<div id="listRtPicAD" style="margin:10px auto">{dede:myad 

name='listRtPicAD'/}</div>

需要注意的是,在默认的内容页中,附带的广告比较多,需要删除右侧两个广告位,如图5.37所示。

图5.37  内容页右侧的广告位置

还有文章正文中嵌套的一个广告位,如图5.38所示。

图5.38  内容正文中的广告位

以及页面底部的banner型广告位,如图5.39所示。

图5.39  底部的广告位置

在删除默认广告位以后,根据需求,搜索引擎优化者可以根据自己的需求删减标题下方的文章相关信息,如图5.40所示。

图5.40  默认的文章属性

在通常情况下,文章信息中保留更新时间即可,其他项目都可以不要。具体的代码如下:

<div class="info"> <small>时间:</small>

{dede:field.pubdate function="MyDate ('Y-m-d H:i',@me)"/}<small>来源:</small>

{dede:field.source/} <small>作者: </small>

{dede:field.writer/} <small>点击:</small>

<script src="{dede:field name='phpurl'/}

/count.php?view=yes&aid={dede:field name='id'/}

&mid={dede:field name='mid'/}" type='text/javascript' 

language= "javascript"></script>

 次</div>

从中小型文档发布类网站的角度出发,内容页面中有很多交互性功能,比如顶踩、收藏、挑错、推荐、打印、评论等,优化者可以根据自身的需求和网站功能设计进行取舍,下面给出相关代码。

确定当前访问者是否登录的头部函数如下:

function CheckLogin(){

  var taget_obj = document.getElementById('_ajax_feedback');

  myajax = new DedeAjax(taget_obj,false,false,'','','');

  myajax.SendGet2("{dede:global.cfg_cmsurl/}/member/ajax_feedback.php ");

  DedeXHTTP = null;

}

顶踩相关功能代码如下:

function postBadGood(ftype,fid)

{

var taget_obj = document.getElementById(ftype+fid);

var saveid = GetCookie('badgoodid');

if(saveid != null)

{

var saveids = saveid.split(',');

var hasid = false;

saveid = '';

j = 1;

for(i=saveids.length-1;i>=0;i--)

{

if(saveids[i]==fid && hasid) continue;

else {

if(saveids[i]==fid && !hasid) hasid = true;

saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);

j++;

if(j==10 && hasid) break;

if(j==9 && !hasid) break;

}

}

if(hasid) { alert('您刚才已表决过了喔!'); return false;}

else saveid += ','+fid;

SetCookie('badgoodid',saveid,1);

}

else

{

SetCookie('badgoodid',fid,1);

}

myajax = new DedeAjax(taget_obj,false,false,'','','');

myajax.SendGet2("{dede:field name='phpurl'/}/

feedback.php?aid="+fid+ "&action="+ftype+"&fid="+fid);

}

function postDigg(ftype,aid)

{

var taget_obj = document.getElementById('newdigg');

var saveid = GetCookie('diggid');

if(saveid != null)

{

var saveids = saveid.split(',');

var hasid = false;

saveid = '';

j = 1;

for(i=saveids.length-1;i>=0;i--)

{

if(saveids[i]==aid && hasid) continue;

else {

if(saveids[i]==aid && !hasid) hasid = true;

saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);

j++;

if(j==20 && hasid) break;

if(j==19 && !hasid) break;

}

}

if(hasid) { alert("您已经顶过该帖,请不要重复顶帖 !"); return; }

else saveid += ','+aid;

SetCookie('diggid',saveid,1);

}

else

{

SetCookie('diggid',aid,1);

}

myajax = new DedeAjax(taget_obj,false,false,'','','');

var url = "{dede:global.cfg_phpurl/}/

digg_ajax.php?action="+ftype+"&id= "+aid;

myajax.SendGet2(url);

}

function getDigg(aid)

{

var taget_obj = document.getElementById('newdigg');

myajax = new DedeAjax(taget_obj,false,false,'','','');

myajax.SendGet2("{dede:global.cfg_phpurl/}/digg_ajax.php?id="+aid);

DedeXHTTP = null;

}

上述代码是各交互性功能的函数,下面根据各功能在模板文件中的位置和样式给出具体情况。

读书导航