CMS 内容管理系统

最近更新时间:2020-08-21 14:49:43

云开发 CMS 内容管理系统是云开发 CloudBase 提供的一个扩展程序,可以在云开发控制台一键安装在自己的云开发环境中,让开发人员和内容运营者随时随地管理小程序 / Web 等多端产生的内容数据。无须编写代码即可使用,还提供了 PC / 移动端浏览器的访问支持,支持文本、富文本、Markdown、图片、文件、关联类型等多种类型的可视化编辑。

推荐使用场景

1. 适用于需要为小程序应用增加一个运营管理后台的业务

CMS 扩展非常适合小程序的商品管理、文章编辑和发布、运营活动配置、素材管理等数据和内容管理的场景。使用 CMS 扩展,可以省去手动线上修改数据库数据或者投入人力物力开发管理后台的麻烦,只需要安装之后进行一些简单的配置,就可以随时随地使用 CMS 内容管理系统来管理内容,同时还提供了管理员和运营者的两套身份体系的权限控制。

2. 适用于快速开发内容型的网站应用、小程序应用的场景

CMS 扩展还可以用来配合开发网站应用和小程序应用,提升开发效率。使用 CMS 扩展可以解决内容和数据的管理和生产问题,并且省去一部分后端开发工作,直接可以结合前端应用框架读取云开发数据库数据进行渲染。例如基于 CMS 可以快速开发博客、企业官网等内容型的网站、小程序应用。

功能特性

特性 介绍
免开发 基于后台建模配置生成内容管理界面,无须编写代码
多端适配 支持 PC/移动端访问和管理内容
功能丰富 支持文本、富文本、图片、文件 等多种类型内容的可视化编辑,并且支持内容关联
权限控制 系统基于管理员/运营者两种身份角色的访问控制
外部系统集成 支持 Webhook 接口,可以用于在运营修改修改内容后通知外部系统,如自动构建静态网站、发送通知等
数据源兼容 支持管理小程序/ Web / 移动端的云开发数据,支持管理已有数据集合,也可以在 CMS 后台创建新的内容和数据集合
部署简单 可在云开发控制台扩展管理界面一键部署和升级

工作原理

说明:

使用 CMS 扩展时将在当前环境创建云函数、云数据库等资源,查询 部署详情

视频教程

您也可以通过观看以下视频教程,部署云开发 CMS 内容管理系统。

安装与使用

第一步:开通并创建云开发按量计费环境

开通云开发 CMS 扩展,需要开通并创建云开发按量计费环境。开发者可以根据下面的身份角色参考指引进行开通和创建。

微信小程序开发者

开通云开发环境
  • 注册小程序账号:在微信公共平台进行申请并提交相应资料。前往注册
  • 下载微信开发者工具:简单高效地开发和调试小程序,并可预览和发布。 前往下载
  • 开通云开发:在开发者工具中点击“云开发” 按钮开通,开通后会自动开通环境。
切换按量计费
  • 下载最新的 Nightly Build 版本的微信开发者工具,登录微信开发者工具 > 云开发控制台。
  • 在【云开发控制台】>【设置】>【环境设置】>【支付方式】中点击切换【按量付费】即可。
    注意:

    目前仅支持从腾讯云账户付款,云开发环境切换【按量付费】模式前,请确保腾讯云账户中余额充足,否则将切换失败。

腾讯云开发者

开通并创建按量付费环境
  • 注册腾讯云账号,并完成实名认证。
  • 进入 云开发控制台,授权开通云开发。
  • 单击进入控制台 创建按量计费环境(温馨提示,无资源消耗时,按量计费不产生任何费用)。
切换包年包月计费方式为按量计费

如果已经开通过云开发环境,需要在计费模式中切换计费方式为按量计费
登录腾讯云 云开发控制台。在云开发 CloudBase 控制台 > 环境 > 资源购买 中的【计费模式】中单击【切换按量付费】即可。

QQ 小程序开发者

开通环境

在 QQ 小程序开发者工具工具栏左侧,点击 “云开发” 按钮即可打开云控制台、根据提示开通云开发、创建云环境。

切换为按量计费

在云开发 CloudBase 控制台 > 环境 > 资源购买 中的【计费模式】中点击【切换按量付费】即可。

第二步:在腾讯云控制台安装扩展

  • 登录腾讯云 云开发控制台
    注意:

    微信小程序开发者请使用【其他登录方式】-【微信公众号登录】登录,再选择关联的小程序账户登录。

注意:

QQ 小程序开发者可直接通过 QQ 小程序开发者 IDE【云开发】按钮登录,也可以通过关联的腾讯云账户登录。

  • 打开云开发控制台 > 扩展能力 > 扩展管理 页面。
  • 选择目标按量计费环境后,在更多扩展能力下单击【安装】【CMS 内容管理系统】扩展,并按提示完成扩展安装。
  • 安装时需要进行资源的授权和扩展程序的配置,如管理员和运营者的账号密码配置等,同时需要提供自定义登录的密钥,可以点击自定义登录密钥旁边的小图标了解如何填写。

第三步:使用 CMS 内容管理系统

完成【CMS 内容管理系统】的安装以后,然后访问该扩展的管理页,可以在【扩展运行方式】Tab 查看使用指引,依照文档完成 CMS 的使用,下面简单介绍一下快速上手的步骤,更多细节可以参考运行方式。
运行方式

访问 CMS 系统

CMS 扩展已经部署在当前环境下的静态网站托管中,访问路径为“静态托管的默认域名+安装设置的部署路径”。
访问地址的格式如下:
云开发静态托管默认域名/部署路径,例如 https://xxxx.tcloudbaseapp.com/tcb-cms/

账号登录

打开 CMS 系统后首先会提示需要登录,我们首先使用使用安装扩展时设置的管理员账号和密码进行登录。

内容建模

登录成功后,首先需要进行内容的建模设置,例如我们想为自己的博客应用(小程序/网站)来生成管理界面。
假设当前已有一个管理 文章的数据库集合 articles,我们可以在 CMS 管理后台新建一个 “文章” 内容(如果新建内容的时候指定的集合名不存在,CMS 扩展会自动新建集合)来生成“文章”类型的内容管理界面。

假设数据库集合 articles 的结构如下:

字段名 类型 描述
_id ID 文章唯一 id
name String 文章标题
cover String 封面图,这里存放云开发的存储的文件的 cloudID
content String 文章内容,采用 markdown 格式
author ID 作者的用户 id
createTime DateTime 创建时间
updateTime DateTime 更新时间
tag String[] 标签,例如 ["serverless","cms"]
category String[] 分类,例如 ["前端","开发"]

在“内容设置”中点击“新建”来创建“文章”类型时,可以对照上面的集合数据把字段类型和字段的限制进行配置,例如封面图可以直接选择 “图片”字段类型,文章内容可以直接选择 “Markdown” 类型,这样在生成的管理界面里可以直接上传图片和通过编辑器编写文章,保存在数据库集合的时候,依然会保存为数据库支持的类型,图片会存储为云存储的 CloudID, 内容会存储为字符串等。创建并保存之后会自动刷新生成”文章“的运营界面。

管理内容

可以使用运营者身份登录,对新创建的“文章”进行操作,我们可以新建一篇文章。

文章发布成功后,即可在文章列表中看到这篇文章。

使用内容数据

采用 CMS 管理的内容,依然可以通过云开发各端 SDK 进行访问(需要注意的是在前端访问时,需要正确设置数据库的安全规则设置,例如设置为所有用户可读,仅创建者可写)。
例如,在上面的例子里,我们需要在云函数中获取文章的标签是 CloudBase 的最新 10 条文章,可以采用以下代码来获取数据:

db.collection("articles")
  .where({ tag: "CloudBase" })
  .orderBy("createTime", "desc")
  .limit(10)
  .get();

获取到内容数据就可以在各种场景使用了,例如在小程序/ Web 中构建应用和网站。

常见问题

在扩展管理界面找不到 CMS 扩展?

CMS 扩展会开通静态托管资源,静态托管目前仅支持在按量计费环境下开通,切换为按量计费后就可以安装 CMS 扩展

打开 CMS 时提示 404?

CMS 的安装路径是静态托管默认域名/tcb-cms, 可以看下地址是否正确

登录时报 “Invaild uid” 错误怎么处理?

管理员和运营者用户名只支持 4-32 位字符(大小写英文字母、数字),可以在扩展管理界面重新修改用户名进行修复

登录时报 “SYS_ERR 登录异常” 错误怎么处理?

自定义登录密钥填写有误。在填写自定义密钥时,请直接按照输入框左侧的图标提示,从登录设置页面复制粘贴,不需要修改。另外,请确保复制的是当前云开发环境的自定义密钥。

登录时 INVALID_CUSTOM_LOGIN_TICKET 报错?

在填写自定义密钥时,直接按照提示从登录设置页面复制粘贴就可以了,不需要修改,另外需要确保复制的是当前云开发环境的自定义密钥

使用管理员账号提示没有管理权限怎么办?

管理员和运营者账号不能相同,建议设置为不同的账号,可以在扩展管理界面重新修改用户名进行修复

登录报错,提示 No credentials found on headers or cookies 怎么处理?

用户打开了云函数的 HTTP 触发的访问鉴权功能,开启鉴权后,客户端需要在登录的情况下才能触发云函数。
CMS 负责登录的 auth 云函数需要关闭访问鉴权才可以使用。

其他

扩展配置信息

您可以配置以下参数:

  • 管理员账号:CMS 内容管理系统的管理员账号。
  • 管理员密码:CMS 内容管理系统的管理员密码。
  • 运营者账号:CMS 内容管理系统的运营者账号。
  • 运营者密码:CMS 内容管理系统的运营者密码。
  • 自定义登录密钥:云开发自定义登录密钥。
  • 部署路径:CMS 内容管理系统的部署路径。

计费

此扩展使用其他云开发或其他腾讯云服务,可能会产生相关费用:

当您使用云开发扩展时,您只需要为您使用的云资源付费;云开发与云上其他资源分开计费,您可以在 费用中心 查看具体信息。

部署详情

  • 云函数
    • tcb-ext-cms-auth
      该函数提供登录鉴权功能,用户在 CMS 管理界面通过通过用户名和密码来进行登录时,会通过 HTTP 来请求该函数;
    • tcb-ext-cms-api
      提供 API 接口功能,所有对内容的操作和管理都会经过此函数调用,内容操作会根据用户权限来进行数据库操作
    • tcb-ext-cms-init
      提供初始化应用功能,安装扩展后,会通过该函数来进行静态资源的部署和密码的生成和设置,修改账号密码或者部署路径等扩展参数都会再次执行该函数来进行更新
  • 云数据库
    • tcb-ext-cms-contents 集合
      CMS 系统内容配置数据,CMS 所有的系统内容类型配置、字段配置等信息都存储在该集合内;
    • tcb-ext-cms-users 集合
      CMS 系统用户数据,存储 CMS 的用户信息,包括管理员和运营者的账号信息,包括角色信息,用户,加密存储的密码等;
    • tcb-ext-cms-webhooks 集合
      CMS 系统 webhook 集合,存储 CMS 系统的回调接口配置,CMS 系统数据的变更可以通过回调来进行同步。
  • 云存储
    存储图片、文件等 CMS 系统上传的文件。
  • 静态网站托管
    CMS 系统前端界面,基于 React 开发,通过 TCB JS SDK 访问 CMS 的函数、数据库和存储等资源。

权限授予

主账户

该扩展能力使用云开发自有资源即可完成,无需再授予其他权限。

子账户

如果想让子账户也能使用该扩展,需要为子账户授予如下权限才能使用:

  • 策略: QcloudAccessForTCBRole。
    描述: 云开发(TCB)对云资源的访问权限。
目录