在DedeCMS中,全局变量扮演着至关重要的角色。它们像是一把钥匙,打开网站开发的大门,让开发者能够轻松应对各种复杂的业务逻辑。本文将为大家深入解析DedeCMS全局变量的用法,并提供一些实用的应用技巧,帮助大家更好地掌握这一强大的工具。
一、DedeCMS全局变量概述
1. 什么是全局变量?
全局变量是指在DedeCMS程序中,可以在任何位置访问和使用的变量。它们通常存储在全局数组`$global`中,例如`$global[‘cfg_cookie_pre’]`。
2. 全局变量的作用
全局变量主要用于存储系统配置、用户信息、模板变量等,使得开发者能够方便地获取和设置这些信息。
二、DedeCMS全局变量详解
1. 系统配置变量
系统配置变量存储在全局数组`$global`中,例如:
| 变量名 | 说明 |
|---|---|
| `$global[‘cfg_cookie_pre’]` | Cookie前缀,用于生成唯一的Cookie键名 |
| `$global[‘cfg_basehost’]` | 基础域名,例如:http://www.example.com |
| `$global[‘cfg_dbhost’]` | 数据库服务器地址 |
| `$global[‘cfg_dbuser’]` | 数据库用户名 |
| `$global[‘cfg_dbpass’]` | 数据库密码 |
| `$global[‘cfg_dbname’]` | 数据库名 |
| `$global[‘cfg_dbcharset’]` | 数据库字符集 |
| `$global[‘cfg_dbprefix’]` | 数据库表前缀 |
| `$global[‘cfg_dbtype’]` | 数据库类型,例如:mysql、mysqli、mssql等 |
| `$global[‘cfg_cookie_time’]` | Cookie有效期 |
| `$global[‘cfg_cmspath’]` | CMS目录路径 |
| `$global[‘cfg_phpurl’]` | PHP文件访问地址 |
| `$global[‘cfg_cmsurl’]` | CMS网站地址 |
2. 用户信息变量
用户信息变量存储在全局数组`$user`中,例如:
| 变量名 | 说明 |
|---|---|
| `$user[‘username’]` | 用户名 |
| `$user[‘password’]` | 密码 |
| `$user[’email’]` | 邮箱 |
| `$user[‘mobilephone’]` | 手机号码 |
| `$user[‘regtime’]` | 注册时间 |
| `$user[‘lasttime’]` | 最后登录时间 |
| `$user[‘logintimes’]` | 登录次数 |
3. 模板变量
模板变量存储在全局数组`$dede`中,例如:
| 变量名 | 说明 |
|---|---|
| `$dede[‘title’]` | 页面标题 |
| `$dede[‘keywords’]` | 页面关键词 |
| `$dede[‘description’]` | 页面描述 |
| `$dede[‘filename’]` | 当前页面文件名 |
| `$dede[‘filepath’]` | 当前页面文件路径 |
| `$dede[‘channelid’]` | 当前栏目ID |
| `$dede[‘channelname’]` | 当前栏目名称 |
| `$dede[‘arcrank’]` | 文章排序 |
| `$dede[‘id’]` | 文章ID |
| `$dede[‘titleurl’]` | 文章标题链接 |
三、DedeCMS全局变量应用技巧
1. 合理使用全局变量
在开发过程中,合理使用全局变量可以提高代码的可读性和可维护性。以下是一些使用全局变量的技巧:
* 避免使用硬编码:使用全局变量获取系统配置、用户信息等,避免在代码中硬编码这些值。
* 封装函数:将常用的全局变量操作封装成函数,提高代码复用性。
* 注意变量命名:使用有意义的变量名,提高代码可读性。
2. 缓存全局变量
对于一些频繁访问的全局变量,可以考虑使用缓存技术,例如:
| 缓存技术 | 说明 |
|---|---|
| 文件缓存 | 将全局变量存储到文件中,访问时从文件中读取 |
| 内存缓存 | 将全局变量存储到内存中,访问时从内存中读取 |
| 数据库缓存 | 将全局变量存储到数据库中,访问时从数据库中读取 |
3. 避免全局变量污染
全局变量污染是开发过程中常见的问题,以下是一些避免全局变量污染的方法:
* 使用局部变量:对于不经常使用的变量,尽量使用局部变量。
* 使用命名空间:将全局变量组织到不同的命名空间中,避免命名冲突。
* 使用常量:对于一些不经常改变的值,可以使用常量来表示。
DedeCMS全局变量是网站开发中不可或缺的工具,掌握全局变量的用法对于提高开发效率具有重要意义。本文对DedeCMS全局变量进行了详细的解析,并提供了实用的应用技巧,希望对大家有所帮助。在开发过程中,合理使用全局变量,提高代码质量和可维护性,让网站开发更加轻松愉快!
dedecms5.7伪静态怎么设置
dede5.7伪静态设置方法。
dede5.7伪静态设置七步法:
第一步、后台-系统参数-核心设置-是否使用伪静态:选择“是”;
注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,自己动手,丰衣足食。一般来说,空间都是支持伪静
态的。Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载
Rewrite组件,然后配置httpd.ini文件。
第二步、如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:
将所有文档设置为“仅动态浏览”:
update dede_archives set ismake=-1
将所有栏目设置为“使用动态页”:
update dede_arctype set isdefault=-1
第三步、列表页、文章页伪静态修改
打开/include/helpers/channelunit.helper.php。
(1)查找:
//动态文章
if($cfg_rewrite=='Y')
{
return$GLOBALS[“cfg_plus_dir”].”/view-“.$aid.'-1.html';
}
替换为
//动态文章
if($cfg_rewrite=='Y')
{
return”/DedeCMS/DedeCMS5.7-“.$aid.'-1.html';
}
意思是:将默认的/plus/view-1-1.html文章链接格式改为/DedeCMS/DedeCMS5.7-1-1.html。
(2)查找:
//动态
$reurl=$GLOBALS['cfg_phpurl'].”/list.php?tid=”.$typeid;
替换为
//动态
$reurl=”/category/list-“.$typeid.”.html”;
意思是:将默认的频道或是列表页URL/plus//list.php?tid=1变更为/dedecms/list-1.html形式。
第四步、列表分页伪静态修改
打开/include/arc.listview.class.php
查找:
$plist= str_replace('.php?tid=','-',$plist);
替换为
$plist= str_replace('plus/list.php?tid=',‘DedeCMS/DedeCMS5.7-',$plist);
将默认的plus/list.php?tid=替换成RMB/list-;
意思是:将默认的列表分页链接格式plus/list.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html。
第五步、文章分页伪静态
打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾处:
查找:
$PageList= str_replace(“plus/view.php?tid=”,”DedeCMS/DedeCMS5.7-“,$PageList);
替换为
$plist= str_replace('plus/view.php?tid=',’DedeCMS/DedeCMS5.7-',$plist);
将默认的plus/view.php?tid=替换成RMB/huilv-;
意思是:将默认的文章分页链接格式plus/view.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html
第六步、TAG标签伪静态
DedeCms默认的TAG标签URL,形如/tags.php?/dedecms模板/,是不是觉得有个问号不怎么爽,我们改成/tags/dedecms模板/,是不是好看多了。
下面我们来改一下,打开/include/taglib/tag.lib.php:
查找:
$row['link']=$cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;
替换为
$row['link']=$cfg_cmsurl.”/tags/”.urlencode($row['keyword']).”/”;
这样就修改好了,上传你到你的网站,切记:要记得将原网站备份哦!!
第七步、httpd.ini伪静态规则:
[ISAPI_Rewrite]
# 3600= 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^(.*)/RMB/list-([0-9]+)\.html$1/plus/list\.php\?tid=$2 [I]
RewriteRule ^(.*)/RMB/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$1/plus/list\.php\?tid=$2&TotalResult=$3&PageNo=$4 [I]
RewriteRule ^(.*)/RMB/huilv-([0-9]+)-([0-9]+)\.html$1/plus/view\.php\?arcID=$2&pageno=$3 [I]
RewriteRule ^(.*)/(.*)_(.*)_([0-9]+)\.html$1/huilv/?from=$2&to=$3&num=$4 [I]
RewriteRule ^(.*)/tags\.html$1/tags\.php [I]
RewriteRule ^(.*)/tags/(.*)(?:(\?.*))*$1/tags\.php\?\/$2 [I]
RewriteRule ^(.*)/tags/(.*)\/(?:(\?.*))*$1/tags\.php\?\/$2\/ [I]
RewriteRule ^(.*)/tags/(.*)\/([0-9])(?:(\?.*))*$1/tags\.php\?\/$2\/$3 [I]
RewriteRule ^(.*)/tags/(.*)\/([0-9])\/(?:(\?.*))*$1/tags\.php\?\/$2\/$3\/ [I]
将上面代码保存为:httpd.ini上传到网站的根目录。
如无特特殊需求建议采用官方默认的生成静态的页面方式浏览。
织梦dedecms模板自带的网站地图怎么优化呢
首先我们要登录网站后台,找到文件管理器,或进入ftp,在根目录下建立rss文件夹DEDE模板
2,修改根目录下你的管理员文件夹(默认是dede)下的makehtml_map.php文件将17行的$cfg_cmspath./data/sitemap.html;改为$cfg_cmspath./sitemap.html;将22行的$cfg_cmspath./data/rssmap.html;改为$cfg_cmspath./rssmap.html;
17行是普通网站地图,22行是RSS的网站地图
3,修改根目录下include下面的arc.rssview.class.php将71行的$murl=$GLOBALS['cfg_cmspath']./data/rss/.$this-TypeID..xml;改为$murl=$GLOBALS['cfg_cmspath']./rss/.$this-TypeID..xml;
DEDECMS模板
4,修改根目录下include下的sitemap.class.php将57行的$typelink=$GLOBALS['cfg_cmsurl']./data/rss/.$row-id..xml;$typelink=$GLOBALS['cfg_cmsurl']./rss/.$row-id..xml;将94行的$typelink=$GLOBALS['cfg_cmsurl']./data/rss/.$row-id..xml;$typelink=$GLOBALS['cfg_cmsurl']./rss/.$row-id..xml;
DEDECMS模板
5,修改/templets/default模板文件head.htm在11行左右找到<li class=r3<a href={dede:global.cfg_dataurl/}/sitemap.html网站地图</a</li<li class=r4<a href={dede:global.cfg_dataurl/}/rssmap.htmlRSS订阅</a</li改为<li class=r3<a href={dede:global.cfg_cmsurl/}/sitemap.html网站地图</a</li<li class=r4<a href={dede:global.cfg_cmsurl/}/rssmap.htmlRSS订阅</a</li
我的网站出现php.ini register_globals must is Off!怎么办
由于register_globals设置控制PHP变量访问范围,如果开启会引起不必要的安全问题,所以这里对其进行了强制关闭,如果站长的空间不支持,可以采用以下几种办法进行修改,供广大站长参考:
*如果是独立服务器的用户可以修改php配置文件中的php.ini,将register_globals=On改为register_globals=Off,然后重启Apache.
*如果是虚拟主机的用户,尽可能的通知空间商让其对配置进行修改,或者可以尝试ini_set('register_globals',0)来.
*自己在网站目录下新建一个.htaccess文件,加上php_flag register_globals off就行了,如果已有.htaccess文件,直接再最后另起一行添加即可;
*如果实在不行,那只有采用最后的办法直接去include/common.inc.php中将以下代码删除即可(不建议).
—-
//开启register_globals会有诸多不安全可能性,因此强制要求关闭register_globals
if( ini_get('register_globals'))
{
exit('<a href=””>php.ini register_globals must is Off!</a>');
}
—-查看:php.ini session.auto_start must is 0!




