城市分站

城市分站
城市分站
城市分站
城市分站
城市分站
此插件基于BadouCMS,城市分站(Citysite)插件
站点区域管理实现城市分站,支持多城市内容共享与定制化配置

使用说明

一、核心功能

  • 城市分站模式与多语言模式切换
  • 城市数据批量导入(支持全国300+城市)
  • 区域自定义配置管理
  • 内容标签动态替换
  • 模板变量自动处理

二、功能使用指南

2.1 模式说明

多语言模式(默认)

  • 每个语言/区域有独立的内容
  • 适合国际化网站
  • 各区域内容完全独立管理

分站演示1

分站演示2

城市分站模式(本插件功能)

  • 所有城市共享默认语言的内容
  • 通过标签动态替换实现内容定制
  • 适合同语言多城市网站
  • 需要手动调用 replace_city_tags() 函数

2.2 模式切换

  1. 进入 "城市分站 > 分站配置" 页面
  2. 点击顶部的 "城市分站模式" 开关
  3. 开启后,所有城市将共享默认语言的内容

模式切换

2.3 导入城市数据

  1. 进入 "城市分站 > 分站配置" 页面
  2. 点击工具栏的 "导入城市" 按钮
  3. 系统按地区分组显示全国城市
  4. 选择需要导入的城市
  5. 点击 "确认导入" 按钮

注意

  • 已存在的城市会自动跳过
  • 城市编码使用缩写(如:北京=bj,上海=sh)

导入城市数据

2.4 自定义配置字段管理

添加配置字段

  1. 进入 "城市分站 > 自定义配置" 页面
  2. 点击 "添加" 按钮
  3. 填写配置信息:

    • 配置名称:会自动添加 city_site_ 前缀
    • 配置标题:显示给用户的名称
    • 配置类型:text、textarea、switch、select等
    • 默认值:系统默认值
    • 提示信息:帮助说明
    • 权重:排序顺序
  4. 保存,该字段会出现在所有区域的编辑页面

添加配置字段

2.5 区域配置编辑

  1. 进入 "城市分站 > 分站配置" 页面
  2. 点击列表中的 "编辑配置" 按钮
  3. 可配置内容:

    • 区域描述:该区域的详细描述
    • SEO关键词:meta keywords
    • 使用原版语言数据:开启后该区域不使用城市分站功能
    • 自定义配置字段:在此置该区域的个性化配置值
  4. 保存后,配置会存入 citysite_area_config

三、开发集成

3.1 核心函数

1. is_city_site_mode(): bool

检查是否开启城市分站模式

if (is_city_site_mode()) {
    // 城市分站模式逻辑
} else {
    // 多语言模式逻辑
}

2. get_selected_lang(): string

获取用户选择的语言/城市编码

$acode = get_selected_lang(); // 返回如 'bj', 'sh' 等

3. get_current_area_info(): array

获取当前区域的完整信息

$area = get_current_area_info();
// 返回:
// [
//     'id' => 1,
//     'acode' => 'bj',
//     'name' => '北京',
//     'domain' => 'beijing.example.com',
//     'description' => '...',
//     'is_default' => 0,
//     ...
// ]

4. get_area_config(string $configName, ?string $acode = null): mixed

获取区域的自定义配置值

// 获取当前区域的配置
$phone = get_area_config('city_site_contact_phone');

// 获取指定区域的配置
$phone = get_area_config('city_site_contact_phone', 'bj');

5. replace_city_tags(?string $content): string

替换内容中的城市标签

$content = "欢迎来到{city}!联系电话:{contact_phone}";
$result = replace_city_tags($content);
// 输出:欢迎来到北京!联系话:010-12345678

3.2 支持的标签

快捷标签

{city}          - 城市名称(等同于 {name})
{city_name}     - 城市名称(等同于 {name})
{city_code}     - 城市编码(等同于 {acode})

自定义配置字段

在 "自定义配置" 中添加的字段都可以作为标签使用:

{city_site_contact_phone}   - 联系电话
{city_site_address}         - 地址
{city_site_qq}              - QQ号码
... (所有自定义配置)

3.3 模板中使用

在模板中使用PHP函数

方式1:在PHP控制器中替换

// 在控制器中
$content = "欢迎来到{city}";
$content = replace_city_tags($content);
$this->assign('content', $content);

方式2:ViewAdapter自动处理

本插件会自动处理系统变量中的{city}等参数标签

方式3:在模板中使用PHP函数

{$content|replace_city_tags}

常见问题

Q1:安装后城市分站模式不生效?

A:检查以下几点:

  1. 是否在后台开启了 "城市分站模式" 开关
  2. 是否导入了城市数据
  3. 是否选择了城市(检查 cookie f_lg
  4. 内容中是否使用了标签(如 {city}
  5. 是否调用了 replace_city_tags() 函数

Q2:标签没有被替换?

A:原因可能是:

  1. 城市分站模式未开启
  2. 未调用 replace_city_tags() 函数
  3. 标签格式不正确(注意大括号)
  4. 该配置字段不存在或值为空

Q3:如何让某个区域不使用城市分站功能?

A

  1. 进入该区域的编辑页面
  2. 开启 "使用原版语言数据" 开关
  3. 保存后,该区域将使用独立内容,不进行标签替换

Q4:自定义配置字段名称有什么要求?

A

  • 只能包含字母、数字和下划线
  • 不能与系统字段冲突
  • 建议使用有意义的英文命名

Q5:如何备份城市分站数据?

A:备份以下内容:

  1. citysite_area_config 表数据
  2. config 表中 group='citysite' 的记录
  3. cms_area 表数据
  4. modules/citysite/ 目录

BadouCMS官网 » 城市分站

点赞(0)

官方QQ群①

963655847

返回
顶部