安企CMS作为一款功能强大的企业级内容管理系统,其多站点管理能力无疑为运营者提供了极大的便利与灵活性。在管理多个品牌或子站点时,如何确保每个站点都能准确无误地调用到其专属信息,特别是像联系方式这样关键的数据,就显得尤为重要。今天,我们就来深入探讨一下,如何在多站点环境下,测试并验证 siteId 参数在联系方式标签中的识别与数据调用是否正确。
认识 siteId 在多站点环境中的作用
安企CMS允许多个站点共用一套核心系统,每个站点都拥有独立的配置、内容和管理后台。为了区分这些站点的数据,系统为每个站点分配了一个唯一的标识符,即 siteId。当你在模板中需要从*非当前访问站点*获取数据时,siteId 就成为了指明数据来源的关键。
例如,一个企业可能有主站和子品牌站,它们在同一AnQiCMS系统下管理。主站的联系电话是 123456789,子品牌站的联系电话是 987654321。在主站的模板中,如果我想展示子品牌站的联系电话,而不仅仅是主站自己的电话,这时就需要通过 siteId 来明确指定。
contact 标签是安企CMS中用于获取后台“联系方式设置”中各项信息的强大工具,如联系人、电话、地址、邮箱、微信等。默认情况下,如果不指定 siteId,它会自动调用当前正在访问站点的联系方式。然而,在跨站数据调用场景下,siteId 的精确使用就必不可少了。
准备测试环境:构建可区分的多站点
要有效测试 siteId,首先我们需要一个清晰的多站点环境。
- 设置至少两个站点: 确保你的安企CMS系统已经配置了至少两个独立的站点。你可以参考安企CMS的文档,如“使用宝塔的Docker安装安企CMS教程”或“通过反向代理添加安企CMS多站点教程”,来完成这一步。
- 配置独特的联系方式: 这是测试
siteId是否正确识别的关键。- 登录第一个站点(我们称之为“站点A”)的后台,进入“后台设置” -> “联系方式设置”。将联系电话设置为一个明确可识别的值,例如“站点A专用电话:111-1111-1111”。
- 同样地,登录第二个站点(“站点B”)的后台,进入“后台设置” -> “联系方式设置”。将联系电话设置为另一个完全不同的、明确可识别的值,例如“站点B专用电话:222-2222-2222”。
- 获取站点的
siteId: 在安企CMS的后台,通常在“多站点管理”列表,或者查看每个站点的配置详情时,你能找到每个站点的唯一siteId。假设站点A的siteId是1,站点B的siteId是2。请务必记住这些ID,它们将用于模板调用。
实施测试:在模板中调用不同站点的联系方式
现在,我们将在模板中编写代码,来验证 siteId 的效果。为了方便测试和对比,我们可以选择一个公共模板文件,比如 bash.html(通常包含头部或底部信息,会在所有页面加载),或者创建一个专门的测试页面模板。
假设我们选择在某个页面的 <body> 内加入测试代码:
{# 假设我们正在访问站点A(siteId=1) #}
<h3>联系方式数据调用测试 - 当前站点A</h3>
{# 1. 不指定siteId:默认应显示当前站点(站点A)的联系电话 #}
<p>
<strong>当前站点默认电话:</strong>
{% contact with name="Cellphone" %}
</p>
{# 2. 明确指定siteId为站点A的联系电话 #}
<p>
<strong>明确指定站点A电话(siteId=1):</strong>
{% contact siteA_phone with name="Cellphone" siteId="1" %}{{ siteA_phone }}
</p>
{# 3. 明确指定siteId为站点B的联系电话 #}
<p>
<strong>明确指定站点B电话(siteId=2):</strong>
{% contact siteB_phone with name="Cellphone" siteId="2" %}{{ siteB_phone }}
</p>
<hr>
{# 假设我们现在模拟访问站点B(siteId=2) #}
<h3>联系方式数据调用测试 - 当前站点B (仅供理解,实际需访问站点B URL)</h3>
{# 以下代码在实际访问站点B时才会生效 #}
{# 1. 不指定siteId:默认应显示当前站点(站点B)的联系电话 #}
<p>
<strong>当前站点默认电话(访问站点B时):</strong>
{% contact with name="Cellphone" %}
</p>
{# 2. 明确指定siteId为站点A的联系电话 #}
<p>
<strong>明确指定站点A电话(siteId=1,访问站点B时):</strong>
{% contact siteA_phone_on_B with name="Cellphone" siteId="1" %}{{ siteA_phone_on_B }}
</p>
{# 3. 明确指定siteId为站点B的联系电话 #}
<p>
<strong>明确指定站点B电话(siteId=2,访问站点B时):</strong>
{% contact siteB_phone_on_B with name="Cellphone" siteId="2" %}{{ siteB_phone_on_B }}
</p>
请注意,上面的第二段“当前站点B”的测试代码,是为了帮助你理解预期结果,你实际上只需要将第一段代码部署到你的公共模板中,然后分别访问站点A和站点B的前端页面进行验证。
验证结果:检查数据调用是否正确
访问站点A的前端页面:
- 观察“当前站点默认电话”处显示的值,它应该与你在站点A后台设置的“站点A专用电话:111-1111-1111”一致。
- 观察“明确指定站点A电话(siteId=1)”处显示的值,它也应该与“站点A专用电话:111-1111-1111”一致。
- 观察“明确指定站点B电话(siteId=2)”处显示的值,它应该与你在站点B后台设置的“站点B专用电话:222-2222-2222”一致。
访问站点B的前端页面:
- 观察“当前站点默认电话”处显示的值,它应该与你在站点B后台设置的“站点B专用电话:222-2222-2222”一致。
- 观察“明确指定站点A电话(siteId=1)”处显示的值,它应该与你在站点A后台设置的“站点A专用电话:111-1111-1111”一致。