如何利用DEDECMS的自由列表生成谷歌网站地图

如何利用DEDECMS的自由列表生成谷歌网站地图,第1张

考虑到中小型网站中Dedecms使用概率较高,今天我们特地邀请了百度站长社区版主—洪石陈来为大家做Dedecms移动适配分享。

第一步:安装Dedecms移动站点的两种方式

(1)下载新版本直接安装使用,Dedecms版本:V57SP1正式版(2015-06-18)该版本包含旧版本所没有的移动站点功能。

(2)老版本升级(仅针对增加移动站点功能),下载最新版本(注意网站编码需与原站一致),复制压缩包中以下文件到原站对应目录下:

注意:如果原站有非默认模板,如某栏目模板为/templets/defaultst_default_newshtm,可将/templets/defaultst_default_mhtm复制一份改名为list_default_news_mhtm。

即:pc端网站模板需有对应的移动端网站模板,后者文件名为前者文件名后“_m”。

安装或升级dedecms完成,此时应该就可以进行移动跳转适配了,但,dedecms20150618版本提供的移动站点功能在使用过程中发现一些问题,需要进行修改后才可正常使用,所以有了下面的dedecms修改步骤…

第二步:修改Dedecms

(1)原站如做了将DATA移到根目录外的安全设置,需修改/m/indexphp代码:

if(!file_exists(dirname(__FILE__)'//data/commonincphp'))

{

header('Location:install/indexphp');

exit();

}

将其中//data/commonincphp改为///data/commonincphp,或直接将以上5行代码删除。

(2) 移动站点首页在会第一次访问时自动生成首页静态文件,前提是/m/目录需设置为可写权限,否则将无法正常更新。之后更新首页静态文件需登陆后台手动更新:在“更新主页HTML”中将“选择主页模板”改为“default/index_mhtm”,将“主页位置”改为“/m/indexhtml”,再生成主页静态文件。

注:该版本号称“自动生成HTML版”,但默认移动站模板里却有<ahref="indexphp">的动态首页链接,需替换为<ahref="indexhtml">静态链接形式。

※如觉得使用静态页面麻烦,想将首页设置为动态浏览,可修改/m/indexphp:

$row['showmod']= isset($row['showmod']) $row['showmod'] : 0;

if ($row['showmod'] == 1)

{

$pv->SaveToHtml(dirname(__FILE__)'/indexhtml');

include(dirname(__FILE__)'/indexhtml');

exit();

}

else {

$pv->Display();

exit();

}

以上代码替换为一行:$pv->Display();

第三步:首页“图文资讯”部分的url为pc端链接,修改为移动端链接:

搜索模板/templets/default/index_mhtm中所有<a href="[field:arcurl/]"> ,替换为<ahref="viewphpaid=[field:id/]">

第四步:通用头部含有搜索框,搜索跳转至pc端搜索页面,建议删除:

在/templets/default/header_mhtm中删除以下代码:

<form class="am-topbar-form am-topbar-leftam-form-inline am-topbar-right" role="search"action="{dede:globalcfg_cmsurl/}/plus/searchphp">

<input type="hidden" name="mobile"value="1" />

<input type="hidden" name="kwtype"value="0" />

<div class="am-form-group">

<input name="q" type="text"class="am-form-field am-input-sm" placeholder="输入关键词">

</div>

<button type="submit" class="am-btnam-btn-default am-btn-sm">搜索</button>

</form>

第五步: 移动站点默认使用二级目录,但目前移动适配需要使用二级域名(前段时间是可以使用二级目录的,但目前已调整,不能再提交二级目录),所以我们要设置移动站可通过二级域名访问,解析二级域名至网站所在服务器ip,并在服务器/空间上将二级域名绑定到/m/目录。

成功设置二级域名后,通过二级域名浏览网站会发现均无法显示,原因是路径有误——路径为“/uploads/x/yjpg”

相对根目录路径形式,在pc站页面中显示正常,因为pc站域名下存在该目录,而二级域名绑定的是二级目录,其中并不存在该目录,

所以访问会返回 404错误。对此,有多种解决方案,下面提供两个思路(示例pc站:wwwnt090com;移动站:mnt090com):

(1)URL 重写(推荐)

将对http://mnt090com/uploads/的访问重写 至http://wwwnt090com/uploads/,apache环境下,在/m/目录中的htaccess(如无则需新建)中增加以下代码即可:

RewriteEngine on

RewriteCond %{http_host} ^mnt090com [NC]

RewriteRule ^uploads/()$ http://wwwnt090com/uploads/$1 [L]

iis环境下类似规则。

(2)修改模板路径

在所有移动端模板中的<head></head>中增加:

<base href="http://wwwnt090com" />

再将代码中的

“<a href="listphp”改为完整路径“<a href="http://mnt090com/listphp”

“<a href="viewphp”改为完整路径“<a href="http://mnt090com/viewphp”

另:需将根目录下的/images/defaultpicgif(缩略图默认)复制到/m/目录下,否则列表页中如存在无缩略图的文章,对应缩略图位置会无法正常显示。

其他:

1、如有栏目不想在首页下方列表区域或通用头部显示,可在后台对应的栏目管理/常规选项中设置隐藏。

2、为了更好的实现pc端和移动端匹配效果,可在pc端模板增加类似如下代码:

首页

<meta http-equiv="mobile-agent"content="format=xhtml;url={dede:globalcfg_mobileurl/}/">

<scripttype="text/javascript">

if(windowlocationtoString()indexOf('pref=padindex')!= -1){}else{if(/AppleWebKitMobile/itest(navigatoruserAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/test(navigatoruserAgent))){if(windowlocationhrefindexOf("mobile")<0){try{if(/Android|WindowsPhone|webOS|iPhone|iPod|BlackBerry/itest(navigatoruserAgent)){windowlocationhref="{dede:globalcfg_mobileurl/}/";}elseif(/iPad/itest(navigatoruserAgent)){}else{}}catch(e){}}}}

</script>

栏目页

<metahttp-equiv="mobile-agent"content="format=xhtml;url={dede:globalcfg_mobileurl/}/listphptid={dede:fieldid/}">

<scripttype="text/javascript">

if(windowlocationtoString()indexOf('pref=padindex')!= -1){}else{if(/AppleWebKitMobile/itest(navigatoruserAgent) ||(/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/test(navigatoruserAgent))){if(windowlocationhrefindexOf("mobile")<0){try{if(/Android|WindowsPhone|webOS|iPhone|iPod|BlackBerry/itest(navigatoruserAgent)){windowlocationhref="{dede:globalcfg_mobileurl/}/listphptid={dede:fieldid/}";}elseif(/iPad/itest(navigatoruserAgent)){}else{}}catch(e){}}}}

</script>

文章页

<meta http-equiv="mobile-agent"content="format=xhtml;url={dede:globalcfg_mobileurl/}/viewphpaid={dede:fieldid/}">

<script type="text/javascript">

if(windowlocationtoString()indexOf('pref=padindex') !=-1){}else{if(/AppleWebKitMobile/itest(navigatoruserAgent) ||(/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/test(navigatoruserAgent))){if(windowlocationhrefindexOf("mobile")<0){try{if(/Android|WindowsPhone|webOS|iPhone|iPod|BlackBerry/itest(navigatoruserAgent)){windowlocationhref="{dede:globalcfg_mobileurl/}/viewphpaid={dede:fieldid/}";}elseif(/iPad/itest(navigatoruserAgent)){}else{}}catch(e){}}}}

</script>

代码中的{dede:globalcfg_mobileurl/}部分要替换为包含“http://”的二级域名(即:http://mnt090com),如不想修改模板里的相关代码,也可修改/include/commonincphp中的$cfg_mobileurl变量赋值为二级域名。

以上代码为dedecms新版模板所使用,第一行<meta>标签代码为百度发现跳转适配关系的方式(可同时使用)之一——“Meta标记”,下面几行javascript代码的功能是识别是否移动端设备访问,如是则将当前pc端页面自动跳转到匹配的移动端页面。

另外,还可使用<link>标签以便于百度更好地发现PC站和移动站的移动适配关系,在模板的<head></head>标签内加入如下代码:

PC站首页模板:

<link rel="alternate" media="only screen and(max-width: 640px)" href="http://mnt090com" >

PC站栏目页模板:

<link rel="alternate" media="only screen and(max-width: 640px)"href="http://mnt090com/listphptid={dede:fieldid/}" >

PC站文章页模板:

<link rel="alternate" media="only screen and(max-width: 640px)" href=" http://mnt090com/viewphpaid={dede:fieldid/}">

移动站首页模板:

<link rel="canonical"href="http://wwwnt090com/ "/>

栏目页模板:

<link rel="canonical"href="http://wwwnt090com{dede:type typeid='0' row=1}[field:typelink/]{/dede:type}"/>

文章页模板:

<link rel="canonical"href="http://wwwnt090com/{dede:fieldidrunphp='yes'}$id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];{/dede:fieldid}"/>

至此,移动站架设基本成型。

提交移动跳转适配

URL对应关系示例:

Dedecms的标签调用的是有区域限制的,一些标签只能在文章页和首页以及频道页才能调用,但是单页面也想调用“最新文章”等一些文章列表,如果是用{dede:arclist} {dede:arclist /}这些标签肯定是调用不了的,哪要怎么办呢这个不用怕,这个问题dedecms早就想到了,在dedecms中有个“宏标签”功能,用这个功能可以实现全站调用。

  宏标签的设置:

  打开dedecms后台——>模板-->自定义宏标签-->智能标志向导

  1 选择一个你要的列表样式

  2 设置“调用栏目”,这里不用说了,就是想要调用的栏目。

  3 设置调用显示列表的文章条数,显示列数,标题长度,不过不设置也没事,回头想改还可以更改的。

  4 提取特定文档,如果你有需要调用特定的文章就要选择一下,如果么有,就不用选择。

  5 单条记录样式,这个有点重要,现在文章列表很多都是用<li></li>标签来做的,但是这里默认不是,如果你要在调用的时候适合你的页面,你需要自己修改一下,怎么修改

  这里示范一下,

  默认的标签:

  修改为<li></li>标签对的:

  还有很多功能,自己看支持字段。

  6“生成模版调用标记”

  7保存为自定义标记,这个很重要,一定要保存才可以了。要不下一步就么有内容可以做。

  8回到模板-->自定义宏标记 ,可以看到刚才保存的宏标记,如果不保存,这里是没有的。

  9点击“js调用”进行js调用代码提取

  10将刚才复制的那段js代码粘贴到你要的地方即可

  宏标签调用到此完成。

1、织梦后台首页--核心--自由列表管理--增加列表:( 如下图)

2、设置相关参数:(参考上图)

自由列表标题: 

Google SiteMap 生成器 

目录默认页名称: 不使用目录默认主页(勾选上) 

命名规则: 

Sitemap_{page}xml (如果只想把网站地图生成一页,不分页的话也可以写成Sitemapxml。)

列表模板: 

google_sitemaphtm (此处根据自己情况填写列表模板路径。列表模板织梦程序本身就带的有,位置在template/default/googlemaphtm,但由于"<"出错的原因不好用,下面小编把自己编写的列表模板共享给大家。)

小编写的列表模板代码:

<xml version="10" encoding="{dede:globalcfg_soft_lang/}">

<urlset xmlns="http://wwwsitemapsorg/schemas/sitemap/09">

<url>

<loc>http://wwwxxxcom</loc>

<changefreq>always</changefreq>

<priority>10</priority>

</url>

{dede:freelist/}

</urlset>

把红色代码改为自己的网址。然后保存以上代码,命名为google_sitemaphtm,放到你的模板文件夹,列表模板处填写好路径。

列表描述: 

Google SiteMap文件生成

每页记录数:500(可根据自身情况而定)

循环内的单行记录样式(InnerText):[底层变量field参考] 

<url> 

  <loc>[field:arcurl function="Gmapurl(@me)"/]</loc> 

  <lastmod>[field:senddate function="strftime('%Y-%m-%d',@me)"/]</lastmod> 

  <changefreq>weekly</changefreq> 

  <priority>05</priority> 

</url>

最后点击“保存一个列表”返回 。

3、生成sitemap:

返回到“更新自由列表”,看到了吧: 

直接点“更新”!

4、点击开始生成html

5、大功告成。

01良好的用户口碑,丰富的开源经验

是国内知名内容管理系统,经超过20万以上站长级用户群经过长达4年之久的广泛应用和复杂化环境的检测,织梦系统在安全性、稳定性、易用性方面具有较高的声誉,倍受广大站长推崇。 DedeCms采用PHP+MySQL技术开发,程序源代码完全开放,在尊重版权的前提下能极大的满足站长对于网站程序进行二次开发。DedeCMS是国内第一家开源的内容管理系统,自诞生以来,始终坚持开源、免费原则。众所周知,开源程序在代码规范性、程序安全性有着较高的要求,DedeCMS拥有4年的开源经验,其灵活的产品架构、极强的可扩展性和可伸缩性能最大化满足站长的应用需求。

02灵活的模块组合,让网站更丰富

往往一个网站通过单一的内容发布系统是远远不能满足用户的需求的,尤其在Web20提倡互动、分享的大趋势下,用户非常希望在传统的内容信息网站中加入问答、圈子等一些互动型的功能。但如果基于原来系统进行开发,整个系统易用性会受到影响,如果使用别的系统,整个网站就不能一体化管理,在这种问题下,DedeCMS推出了模块的功能,程序用户可以像安装软件一样,下载相应的模块进行安装,网站就会增加这些特殊的功能。 这样一来,更加方便软件用户对自己的网站进行扩展,达到自己满意的效果。

03简单易用的模板引擎,网站界面想换就换

引擎简单、易用,采用了XML标记风格,只要懂HTML就可以修改制作模板。 很多的用户都为每次网站改版费尽苦心,因为按照老式的网站制作流程,改版需要修改的不单单是一个界面,还要涉及到程序修改。最后成了一次改版,几乎等于网站重构。DedeCMS就解决了这一系列的烦恼,只需要了解一些DedeCMS的模板标记,只要懂HTML,就能随意对模板文件进行修改,而且每次升级只需要更新模板文件即可,做到了程序和页面很大程度上的分离。

04便捷自定义模型

DedeCMS为用户提供了方便快捷的用户自定义模型,你可以使用这个功能根据自身需求来创建各式各样的站点,如果您了解部分二次开发知识,即能想到就能做到。 往往很多站点,希望能够创建如在线视频播放、在线音乐试听,或者是商品信息发布等类型的内容站点,尽管这些模型系统中没有,但你现在可以使用DedeCMS来自主创建,您只需要先想好自己内容的字段,如:专辑名称、演唱、发行日期等,然后思考这些字段是用哪种字段类型,如:文本、时间、文件上传,接下来只需要在后台的模型管理中按照说明添加即可,想到就能做到。 这种模型的功能有一个很大的好处就是你可以自己去扩展网站后续的功能,不要再去花费财力物力去开发,免去了很多烦恼。

05高效的动态静态页面部署

DedeCMS为用户提供了强大的动态静态部署的功能,用户可以在后台栏目中进行统一的设置,也可以对单独某一篇内容进行静态部署。 这种静态部署最大的优势在于:1减少数据库负担、降低人力维护成本;2利于搜索引擎对网站的友好程度,提高搜索引擎对网站收录量;3很大程度上提高了用户访问的效率。 这样一来,一些地区门户、行业网站、甚至政府部门信息类网站都免去了因为大量数据访问速率下降的后顾之忧。

06灵活的商业运营模式

DedeCMS中提供了较为完善的会员产品体系、会员等级体系、虚拟货币管理体系,并且提供了较完整的支付接口方式,可以设置会员浏览不同内容进行金币消费,这样对行业门户、企事业单位制定开展各种基于网站平台的商业运营方案。 会员可以通过购买点卡进行充值,同时也可以购买包月、包年的服务来阅读某一部分的内容,如果某些内容只能给特定会员浏览,会员必须达到某个等级才能够扣点阅读,网站可以通过销售点券、会员等级服务进行盈利。

07流畅专业界面设计,良好的用户体验

DedeCMS的界面设计遵循国际最新W3C网页设计标准,在开发时期,我们经过IE6、IE7、火狐、Opera等主流浏览器上进行测试,都能够保证您网站浏览的流畅、完整,DedeCMS页面设计遵循标准情况下尽量的减少了各个浏览器中存在的差异,系统不会因为不同的浏览器受到限制。我们优秀的页面设计师能够让网站提高用户体验,及网站亲和力。

Tags: dedecms, dedecms标签, dedecms模板dedecms的Field 标记在封面模板、列表模板、文档模板的使用频率很高,实用。主要用来获得特定栏目或档案的字段值及常用的环境变量值,其用法比较灵活。可以直接展示数据, 如调用position,得到栏目一 > 栏目二” 这样形式的链接;或者,调用title得到当前文档的标题。一:Field标签使用说明

Arclist 标记的使用范围是:封面模板(如:index_articlehtm)、列表模板(如:list_articlehtm)、文档模板 (如:article_articlehtm)。 即对应templets\default\文件夹下的index_识别IDhtm模板、list_识别IDhtm模板、article_识别 IDhtm模板。

注意: 封面模板与列表模板是有区别的,但调用Field 标记可以相同; 封面模板有不同的类型,我们最常用的是文章模板(index_articlehtm),其它的还有模板 (index_imagehtm),简介模板(index_infohtm),软件模板(index_softhtm)等等,这些模板调用 Field 标记的道理都是一样的。

二、Field标签测试实例新建一个文件(如:testindexhtml)放到templets/default下,然后将列表栏目的模板文件指定为新建的文件(testindexhtml)然后更新相应栏目的HMTL,点击主页上的相应栏目即可显示相应的调用信息。testindexhtml文件的Field 标记调用代码: <font color="red">调用position标记,得到:栏目一 > 栏目二” 这样形式的链接:</font>{dede:field name='position'/}<br/> <font color="red">插件路径:</font>{dede:field name='phpurl'/}<br/> <font color="red">模板路径:</font>{dede:field name='templeturl'/}<br/> <font color="red">版权信息:</font>{dede:field name='powerby'/}<br/> <font color="red">主页路径:</font>{dede:field name='indexurl'/}<br/> <font color="red">主页名称:</font>{dede:field name='indexname'/}<br/> <font color="red">站点名称:</font>{dede:field name='webname'/}<br/> <font color="red">所在栏目:</font>{dede:field name='title'/}<br/>

DedeCms由2004年到现在,已经经历了五个版本,从DedeCms V2 开始,DedeCms开发了自己的模板引擎,使用XML名字空间风格的模板,对美工制作的直观性提供了极大的便利,从V21开始,DedeCms人气急速上升,成为国内最流行的CMS软件,在DedeCms V3版本中,开始引入了模型的概念,从而摆脱里传统网站内容管理对模块太分散,管理不集中的缺点,但随着时间的发展,发现纯粹用模型化并不能满足用户的需求,从而DedeCms 2007(DedeCms V5)应声而出,Dedecms 2007具有如下特性:

一、核心模板采用XML名字空间风格,模板全部使用文件形式保存,对用户设计模板、网站升级转移均提供很大的便利,健壮的模板标签为站长DIY自己的网站提供了强有力的支持;

二、标签缓存机制,Dedecms 2007允许对类同的标签进行缓存,在生成HTML的时候,有利于提高系统反应速度,降低系统消耗的资源;

三、模型与模块的概念并存,在模型不能满足用户所有需求的情况下,DedeCms推出一些互动的模块对系统进行补充,尽量满足用户的需求;

四、众多的应用支持,为用户提供了各类网站建设的一体化解决方案,在本版本中,增加了分类、书库、黄页、圈子、问答等模块,补充一些用户的特殊要求;

五、面向未来的过渡,DedeCms 2007是织梦组建团队以后发布的第一个版本,在织梦团队未来的构想中,它以后将会具有更大的灵活性和稳定的性能。

DEDECMS2007 功能列表

新增模型或插件

1、产品发布模型;

2、小说模型;

3、简单的分类信息模型;

4、问答模块(类似);

新增或改进功能

1、对固定资源标记可以使用资源属性ID进行标记缓冲,以减少数据库读取次数;

2、栏目增设自定义小分类,如:供、求、出租、合租、出售等属性,

权限控制。

  多级管理权限控制,让网站多人维护更轻松

  PHPCMS 2007 支持按频道和模块分别设置频道管理员和模块管理员,还可以按频道、栏目、专题设置栏目总编、栏目编辑、信息发布员、信息审核员,同时还提供全面的后台操作记录,帮助用户轻松实现网站多人维护。

  多重安全机制和权限控制,为网站安全保驾护航

  PHPCMS 2007 支持后台访问地址改名、Cookie加密、验证码、IP锁定、IP白名单、防SQL注入、防跨站脚本、防脚本文件上传等多重安全机制,并且后台支持按频道和模块严格控制访问权限,为网站的安全运营提供最强有力的保障。

DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCMS也支持使用风格的形式使用模板,默认风格是default,它表示系统默认使用{cmspath}/templets/default这个文件夹的模板。

一、概念

1、板块(封面)模板:

指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别IDhtm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。

2、列表模板:

指网站某个栏目的所有文章列表的模板,一般用“list_识别IDhtm”命名。

3、档案模板:

表示文档查看页的模板,如文章模板,一般用“article_识别IDhtm”命名。

4、其它模板:

一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

二、命名,DedeCMS模板默认命名规则如下

1、模板保存位置:

模板目录:{cmspath}/templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}。

2、模板文件命名规范:

(1)index_识别IDhtm:表示板块(栏目封面)模板;

(2)list_识别IDhtm:表示栏目列表模板;

(3)article_识别IDhtm:表示内容查看页(文档模板,包括专题查看页);

(4)searchhtm:搜索结果列表模板;

(5)indexhtm:主页模板;

四、二次开发

在V53中已经将标签开发分离出来,可以通过后台[模板]-[标签代码管理],点击“新增加一个新的标签”来创建一个自己的标签,标签文件名为:标签名libphp。

这个功能基本用不到。

1:先排除系统程序问题还是模板问题,把模板风格切换成默认的default, 看下是否正确。假设切换成default正常,说明你的标签写的有问题,好好检查。

2:如果切换成default后,仍然不正常,提取数据库、样式、模板、uploads换内核程序。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何利用DEDECMS的自由列表生成谷歌网站地图

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情