配置与应用标签

iCMS 配置与应用标签技术文档

配置标签 (ConfigFunc)

配置标签用于获取系统配置数据,支持获取整个配置或指定键值。

config:get 标签

获取系统配置数据。

支持参数

参数名 类型 默认值 说明
name 字符串 - 配置名称(必填)
key 字符串 - 配置键名
keys 数组/字符串 - 需要获取的键名列表
is_remove_keys 布尔值 false 是否移除指定键名(true:保留指定键名,false:移除指定键名)

返回数据结构

根据配置的不同,返回的数据结构也不同,可能是数组或单个值。

使用示例

<!-- 获取整个站点配置 -->
<!--{iCMS:config:get name='site'}-->
<!--{$config_get.title}--> <!-- 输出网站标题 -->
<!--{$config_get.url}--> <!-- 输出网站URL -->

<!-- 获取指定配置项 -->
<!--{iCMS:config:get name='site' key='title'}-->
<!--{$config_get}--> <!-- 直接输出网站标题 -->

<!-- 获取多个指定配置项 -->
<!--{iCMS:config:get name='site' keys='title,url,icp'}-->
<!--{$config_get.title}--> <!-- 输出网站标题 -->
<!--{$config_get.url}--> <!-- 输出网站URL -->
<!--{$config_get.icp}--> <!-- 输出备案信息 -->

常用配置示例

站点配置

<!--{iCMS:config:get name='site'}-->
<title><!--{$config_get.title}--></title>
<meta name="keywords" content="<!--{$config_get.keywords}-->" />
<meta name="description" content="<!--{$config_get.description}-->" />

模块配置

<!--{iCMS:config:get name='article'}-->
<!--{if $config_get.enable}-->
  <!-- 文章模块已启用 -->
<!--{else}-->
  <!-- 文章模块已禁用 -->
<!--{/if}-->

应用标签 (AppsFunc)

应用标签用于获取系统中的应用列表数据。

apps:list 标签

获取应用列表数据。

支持参数

参数名 类型 默认值 说明
row 整数 10 每页显示条数
cache 布尔值 0 是否缓存结果
time 整数 -1 缓存时间(秒)
page 布尔值 0 是否启用分页
status 整数 1 状态(1:正常)
apptype 整数 - 应用类型
type 字符串 - 应用分类
orderby 字符串 id 排序字段
by 字符串 DESC 排序方式(ASC/DESC)

返回数据结构

[
    [
        'id' => 应用ID,
        'app' => 应用标识,
        'name' => 应用名称,
        'title' => 应用标题,
        'apptype' => 应用类型,
        'type' => 应用分类,
        'status' => 状态,
        'config' => [应用配置],
        'fields' => [应用字段],
        'addtime' => 添加时间,
        'table' => 数据表名
    ],
    // 更多应用...
]

使用示例

<!--{iCMS:apps:list apptype='1' cache='1'}-->
  <div class="app-item">
    <h3><!--{$apps_list.name}--></h3>
    <p><!--{$apps_list.title}--></p>
    <p>应用类型: <!--{$apps_list.apptype}--></p>
    <p>添加时间: <!--{$apps_list.addtime|date:'Y-m-d H:i:s'}--></p>
  </div>
<!--{/iCMS}-->

应用类型说明

类型值 说明
1 内容应用
2 分类应用
3 标签应用
4 评论应用
5 用户应用

常见应用场景

获取所有内容应用

  <div class="content-apps">
    <h2>内容应用列表</h2>
    <ul>
        <!--{iCMS:apps:list apptype='1' cache='1'}-->
        <li>
          <strong><!--{$apps_list.name}--></strong>: <!--{$apps_list.title}-->
        </li>
        <!--{/iCMS}-->
    </ul>
  </div>

获取所有分类应用

  <div class="category-apps">
    <h2>分类应用列表</h2>
    <ul>
      <!--{iCMS:apps:list apptype='2' cache='1'}-->
        <li>
          <strong><!--{$apps_list.name}--></strong>: <!--{$apps_list.title}-->
        </li>

      <!--{/iCMS}-->
    </ul>
  </div>

最佳实践

配置与应用结合使用

<!-- 获取文章应用配置 -->
<!--{iCMS:config:get name='article'}-->
<!--{if $config_get.enable}-->
  <!-- 获取文章应用信息 -->
  <!--{iCMS:apps:list app='article' row='1' cache='1'}-->
    <!--{if $apps_list}-->
      <div class="article-app-info">
        <h2>文章应用信息</h2>
        <p>应用名称: <!--{$apps_list.0.name}--></p>
        <p>应用标题: <!--{$apps_list.0.title}--></p>
        <p>应用状态: <!--{$apps_list.0.status}--></p>
      </div>
    <!--{/if}-->
  <!--{/iCMS}-->
<!--{/if}-->

性能优化建议

  1. 合理使用缓存

    <!--{iCMS:apps:list cache='1' time='3600'}-->

    ⚠️ 应用列表数据变动不频繁,可以设置较长的缓存时间。

  2. 按需获取配置

    只获取需要的配置项,减少数据处理:

    <!--{iCMS:config:get name='site' keys='title,url,keywords,description'}-->

调试技巧

  1. 开启调试模式

    <!--{iCMS:apps:list db_debug='1'}-->
  2. 查看SQL语句

    <!--{$apps_list_sql}-->
  3. 输出变量结构

    <!--{$config_get|print_r}-->

注意事项

  1. 配置安全

    ⚠️ 不要在前台模板中输出敏感配置信息,如数据库连接信息、邮箱密码等。

  2. 应用状态检查

    在使用应用相关功能前,应先检查应用是否启用:

    <!--{iCMS:config:get name='article'}-->
    <!--{if $config_get.enable}-->
      <!-- 文章功能已启用 -->
    <!--{else}-->
      <!-- 文章功能已禁用 -->
    <!--{/if}-->
  3. 缓存更新

    当配置或应用信息更新后,需要清除相关缓存。