全局属性与方法

最后更新: | 浏览次数: 1144|前端开发基础

 Cms 是 ZMCMS 模板开发中的全局对象,用于在任意模板页面中快速获取当前站点配置、SEO信息、结构化数据、分类内容、链接地址以及公共组件等数据。

所有全局属性和方法均通过 @Cms 进行调用,例如:

<div>
   <!--调用站点名称-->
   <h1>@Cms.SiteName</h1>
   <!--调用站点Logo-->
   <a href="@Cms.Domain"><img src="@Cms.Logo" alt="@Cms.SiteName"/></a>
</div>

系统支持多站点运行模式,Cms 返回的数据始终对应当前访问站点。例如:

  • 当前访问站点为 A,则返回 A 站点配置;
  • 当前访问站点为 B,则返回 B 站点配置。

开发模板时需要注意:

  • 所有属性和方法名称严格区分大小写;
  • 仅支持 Razor 模板环境调用;
  • 部分对象属性为空时,应增加空值判断。

全局属性

属性名称 属性说明 返回类型 对应设定(返回)值
SiteName 站点名称 String 站点设置->站点名称
Domain 站点域名 String 站点管理->站点编辑
CdnDomain CDN加速域名 String 站点设置 -> CDN配置
Logo 站点图片Logo路径 String 站点设置->站点Logo
Ico 站点图标URL路径 String 站点设置->站点Ico
Direction 文字方向 String 站点管理->站点编辑
Language 站点语言 String 站点管理->语言标识
Lic 客户端授权码 String 用户客户端授权判断
Theme 站点模板目录URL String 域名(CDN域名)/theme/模板名称
RealTheme 站点模板目录Url路径 String 域名/theme/模板名称
PageName 页面类型标识 String 值:home/category/product/article/shoppingcart
ClientIp 客户端IP地址 String 访客IP地址
StatusCode 页面状态码 int 页面状态数据
ConstMode 意见征求模式 Int 站点设置->隐私设置
IsMobile 是否为移动设备 Boolean  
IsTablet 是否为平板设备 Boolean  
IsDesktop 是否为桌面设备 Boolean  
DisableContextMenu 是否屏蔽右键菜单 Boolean 站点设置->阅读&询盘
IsEnableBasket 是否允许购物车 Boolean  
IsEnableInquiry 是否允许询盘 Boolean 站点->站点设置->阅读&询盘
IsRequiredCaptcha 留言是否需要验证 Boolean 站点设置->阅读&询盘
Version 系统版本号 String 系统当前程序版本号
IsLogin 会员是否登录 Boolean 会员是否已登录
MemberName 会员登录名 String 会员名称
Structured 结构化对象数据 Object 详见:Structured属性
Social 社媒对象数据 Object 详见Social属性
Verify 搜索引擎验证 Object 详见:Verify属性

Structured对象

Cms.Structured 用于获取网站 Schema.org 结构化数据配置,主要用于生成符合搜索引擎规范的企业实体信息。

通过该对象,可以统一调用后台配置的企业信息,避免在模板中重复维护企业资料。

主要应用场景:

  • Organization(企业/机构)
  • LocalBusiness(本地商家)
  • 企业联系方式
  • 企业地址信息
  • 社交媒体信息
  • 联系入口生成

配置位置:

后台 → 站点 → 站点设置 → 结构化数据

使用示例

<meta name="telephone" content="@Cms.Structured.TelePhone">
<a href="mailto:@Cms.Structured.Email">
    @Cms.Structured.Email
</a>

使用示例

输出社交媒体链接

<a href="@Cms.Social.Linkedin" 
   target="_blank">
    LinkedIn
</a>

属性列表

属性名称 属性说明 返回类型 备注
OrganizationName 机构/商家名称 String 对应 Schema.org 中的 name
Logo 机构/商家 Logo 地址 String 用于企业 Logo 信息
Image 机构/商家展示图片 String 对应企业形象图片或店招图片
Country 所在国家代码 String 返回 ISO 国家代码,例如 US、CN,不是国家名称
Locality 所在城市 String 返回城市名称
Address 详细地址 String 返回企业完整地址
PostalCode 邮政编码 String 返回邮政编码
TelePhone 联系电话 String 返回企业联系电话
Emails 所有电子邮件地址 String[] 返回全部邮箱列表
Email 默认电子邮件地址 String 返回 Emails 数组中的第一个邮箱
WhatsApp WhatsApp号码 String 返回 WhatsApp 联系号码
WhatsAppLink WhatsApp 对话链接 String 系统自动生成,用于直接发起 WhatsApp 对话
WhatsAppQRCode WhatsApp二维码 String 返回二维码图片 URL
WeChat 微信二维码图片 String 返回微信二维码图片 URL
WechatNumber 微信号码 String 返回微信账号

Social对象

Cms.Social 用于获取网站绑定的社交媒体及在线渠道信息。

该对象主要用于展示企业官方社交账号、第三方平台主页以及在线服务入口,可应用于:

  • 网站 Footer 社交媒体入口
  • 联系页面
  • 企业简介页面
  • Schema.org 结构化数据
  • 营销渠道展示

社交媒体信息配置位置:

后台 → 站点 → 站点设置 → 社交媒体
属性名称 返回类型 属性说明
Youtube String 企业/机构/个人官方 YouTube 主页地址
Facebook String 企业/机构/个人官方 Facebook 主页地址
Twitter String 企业/机构/个人官方 Twitter(X)主页地址
Linkedin String 企业/机构/个人官方 LinkedIn 主页地址
Pinterest String 企业/机构/个人官方 Pinterest 主页地址
Instagram String 企业/机构/个人官方 Instagram 主页地址
Reddit String 企业/机构/个人官方 Reddit 主页地址
TikTok String 企业/机构/个人官方 TikTok 主页地址
OnlineShop String 在线商城或第三方销售平台地址
LiveUrl String 在线直播或实时服务入口地址

Verify对象

用于搜索引擎管理员验证,

名称 返回类型 说明
GoogleAnalyticsId String Google Analaytics Tag Id
MetricaId String Yandex Metrica Tag Id

全局方法

方法名称 描述 说明
VerifyMeta() 生成webmaster验证串  
局部调用
如果网站所有页面中有大量公共的内容(例如网站顶部/底部区域等),可将这部分内容独立出来,采用局部调用的方式
Load(string partialViewName) 调用局部模板 @Cms.Load("header")
Load(string partialViewName, T arg) 调用局部模板  
Load(string partialViewName, T arg, T2 arg2) 调用局部模板  
Load(string partialViewName, T arg, T2 arg2, T3 arg3) 调用局部视图  
分类获取
HasChilds(int categoryId) 判断分类Id下是否有子类  
HasChilds(string categoryAlias) 判断分类别名下是否有子类  
ColAll(int categoryId=0) 按分类Id获取其所有子类  
ColAll(string alias) 按分类别名获取其下所有子类  
Col(int categoryId) 按分类Id获取其分类信息
Col(string alias) 按分类别名获取其分类信息  
ColChilds(int categoryId=0) 按分类Id获取其下直接子类  
ColChilds(string alias) 按分类Id获取其下直接子类  
GetGroup(string groupName) 按分组获取分类列表  
链接生成
Link(Content content,string cssClass=null) 生成内容链接  
获取
@foreach(var item in Model.List)
    {
        @Cms.link(item)
    }
                        
Link(CategoryBase category,string cssClass=null) 生成分类链接  
Link(Content content,string fragment,object htmlAttributes) 生成内容链接  
Link(CategoryBase category,string fragment,object htmlAttributes) 生成分类链接  
Url(Content content,string fragment=null) 生成内容Url地址  
Url(CategoryBase category,string fragment=null) 生成分类链接地址  
Url(string categoryAlias) 生成分类链接(如分类不存在,则返回#)  
获取内容
Top(ProductAttr attr,int top,string categoryAlias=null,bool child=true) 按分类别名和属性取前N条商品  
Top(ProductAttr attr,int top,int categoryId=0,bool child=false) 按分类id和属性取N条商品  
Top(ArticleAttr attr,int top,string alias,bool child=false) 按分类别名和属性取前N条文章  
Top(ArticleAttr attr,int top,int categoryId,bool child=false) 按分类id和属性取前N条文章  
社交媒体与其它
SocialFollow(string cssClass = null) 社交媒体个人主页  
SocialShare(string cssClass = null) 社交分享按钮  
Filesize(string virtualFilePath) 生成文件路径  
ConvertUrl(string virtualUrl) 转换Url  
SubString(string str, int length) 截取字符串  
Raw(string str) 输出原生HTML  
Format(string str) 将字符串中的换行符替换为<br/>标签  
Banner(string identName,string viewPath=null) 调用广告  
GetAdvert(string identName,string viewPath=null) 调用广告(v5版本将弃用)