下面我将为你详细介绍几种调用系统参数的方法,从最简单到最灵活,并提供具体的示例。

(图片来源网络,侵删)
核心函数:GetOneCfg
DedeCMS提供了一个核心函数 GetOneCfg($cfg_name) 来获取单个系统参数的值。
- 函数原型:
GetOneCfg($cfg_name) - 参数:
$cfg_name是你在后台“系统” -> “系统基本参数”中设置的参数名称(即变量名)。 - 返回值: 返回该参数的值,如果参数不存在则返回空。
调用单个系统参数(最常用)
这是最直接的方法,适用于在模板中需要获取某一个特定参数值的场景。
步骤:
-
找到参数名: 登录你的DedeCMS后台,进入【系统】->【系统基本参数】。 在左侧选择你想要获取的参数分类,站点设置”、“核心设置”等。 找到你需要的参数,记下它的“变量名”。
- 站点URL的变量名是
cfg_basehost - 站点名称的变量名是
cfg_webname - 站点版权信息的变量名是
cfg_powerby
- 站点URL的变量名是
-
在模板中使用标签调用: 在你的模板文件(
.htm)中,使用{dede:global}标签结合PHP代码来调用。
(图片来源网络,侵删)语法格式:
{dede:global name='变量名'/}或者使用更明确的
function方式:{dede:global function='GetOneCfg("变量名")'/}
示例:
示例1:获取并显示站点名称
<h1>欢迎来到 {dede:global name='cfg_webname'/}!</h1>
或者
<h1>欢迎来到 {dede:global function='GetOneCfg("cfg_webname")'/}!</h1>
效果:在页面上显示你的网站名称。
示例2:获取站点URL并作为链接
<a href="{dede:global name='cfg_basehost'/}">返回首页</a>
或者
<a href="{dede:global function='GetOneCfg("cfg_basehost")'/}">返回首页</a>
效果:生成一个指向网站首页的链接。
示例3:获取并显示网站备案号
假设你在后台设置了备案号,变量名为 cfg_beian。
<p>版权所有 © {dede:global name='cfg_webname'/} {dede:global name='cfg_beian'/}</p>
调用多个系统参数
如果你需要在一个地方调用多个参数,可以使用 {dede:global} 标签的默认方式,它会自动加载所有常用参数。
示例:
<footer>
<p>网站名称: {dede:global name='cfg_webname'/}</p>
<p>网站地址: {dede:global name='cfg_basehost'/}</p>
<p>版权信息: {dede:global name='cfg_powerby'/}</p>
</footer>
这种方式虽然方便,但如果只需要一两个参数,使用方法一更清晰。
在PHP文件中调用系统参数
有时候你可能需要在PHP文件(比如自定义的PHP页面或模块)中获取系统参数,而不是在模板里,这时可以直接调用 GetOneCfg 函数。
注意:在非DedeCMS核心流程的PHP文件中调用前,需要先引入DedeCMS的公共文件,以确保函数可用。
示例(在一个自定义的 test.php 文件中):
<?php
// 1. 引入DedeCMS的公共文件路径
// 注意:根据你的实际安装路径调整
require_once (dirname(__FILE__) . "/include/common.inc.php");
// 2. 直接调用函数获取参数
$siteName = $dsql->GetOne("SELECT * FROM `#@__sysconfig` WHERE varname='cfg_webname'");
// 或者直接使用全局函数(如果环境已加载)
// $siteName = GetOneCfg('cfg_webname');
$siteHost = GetOneCfg('cfg_basehost');
// 3. 输出或使用这些参数
echo "网站名称是: " . $siteName['value'];
echo "<br>";
echo "网站URL是: " . $siteHost;
?>
$dsql->GetOne()是另一种直接操作数据库的方法,但对于已封装好的GetOneCfg函数,优先推荐使用它,因为它更简洁,且经过了DedeCMS的内部处理。
重要注意事项
- 变量名大小写:系统参数的变量名是区分大小写的。
cfg_webname和cfg_WebName是两个不同的参数,请务必确保你使用的变量名与后台设置完全一致。 - 缓存问题:DedeCMS有强大的缓存机制,如果你在后台修改了系统参数,但前台页面没有立即更新,请记得在后台【系统】->【一键更新网站】->【更新系统缓存】中清除缓存。
- 参数不存在:如果你调用的参数名在后台不存在,
GetOneCfg会返回空值,不会报错,但可能会导致页面显示异常,调用前最好确认参数名是否正确。
| 调用场景 | 推荐方法 | 示例代码 |
|---|---|---|
| 在模板文件中 (.htm) | 使用 {dede:global}
| |
| 在PHP文件中 | 调用 GetOneCfg() 函数 |
$webname = GetOneCfg('cfg_webname'); |
| 需要灵活处理返回值 | 在PHP中调用,进行判断和逻辑处理 | if(GetOneCfg('cfg_mobile') == '1'){ ... } |
掌握 GetOneCfg 函数和 {dede:global} 标签的使用,就能轻松地在DedeCMS中调用任何系统配置,让你的网站模板更加灵活和强大。
