用thinkphp改了一个saas系统,用来制作企业官网。年纪大了,记性比较差,经常要一个文件一个文件的打开看,才知道当初是这么写的。所以在这里做一个统计的记录。以备查询。
1、后端(含SAAS系统管理员和企业网站的管理员操作界面)
2、前端展示(根据域名,调用服务器接口,获取数据到前端展示)。因为只会PHP,所以也是用thinkphp写的。
2.1 SAAS管理员
2.1.1 登录方式:
从/admin登录
2.1.2 管理注册的会员
(每个会员可以管理一个或多个企业网站),这里只需要添加会员和修改会员密码即可。别的参数不需要。
2.1.3 管理企业网站。
可以新增和编辑,设置相关参数。这里的功能,注册会员里面有一个超级管理员,可以在企业网站管理前端直接修改这些信息,不用每次都登录后端。
2.1.4 第三点的补充:
新增的企业网站,要在创建人或者管理员的字段哪里填上企业管理员的注册ID。
2.1.4 其他功能不需要。
2.2 前端登录
2.2.1 前端设3个控制器:
user--注册会员登录和退出,company--公司资料、栏目和内容信息管理,assets--公司上传的附件管理。
2.2.2 新用户登录之后,没有企业信息,需要申请后由管理员添加。
2.2.3 设置一个默认管理的企业
点击顶部的企业管理,左侧就会显示企业资料、栏目管理、内容管理等菜单了。如上图左侧所示的菜单。
2.3 前端企业信息管理
因为这里是专为制作企业网站,所以系统能够初始化一些栏目。
同时,会固定一些栏目类型(Module,记住这次,网站前端调用的时候,这个很重要),比如:
暂时未设置自定义。如果后面不够,再添加即可。
2.3.1 企业基本资料
这里比较常规,重点说一下独立域名(domain)这个字段。
这个字段,就是企业网站最后要访问的网站。不要带http或https,暂时只支持一个域名,不支持多个域名。
2.3.2 栏目管理首页
栏目操作都是常规界面设计。
我们按照前端呈现出来的效果需求,来设计设立的栏目和级别即可。
注意图上标记的两个地方:
1>隐藏:隐藏后,栏目不会再导航中显示,但数据可以被调用;也可以访问到;
2>禁用:禁用后,数据不能读取,导航不显示,访问的时候也会提示找不到信息。
刚开通的网站,栏目是空的,只要初始化一下,就会默认添加常规栏目。
2.3.3 栏目编辑页面说明
栏目基本信息设置如上
栏目单页内容设置界面如上。
SEO、模板等设置如上。
2.4 内容页管理
2.4.1 内容页列表页
这里可以根据栏目直接筛选对应栏目下的所有内容列表。
如上图所示,这里针对内容(每一篇文章),做了一个子内容的功能。因为在实际应用中,往往需要针对一篇文章做一些补充资料,比如要上传视频,或补充文档等。
这个功能,正好给整个系统增加了一级栏目,可以灵活应用。
设置方法也很简单,我们在下面内容编辑里面会讲。
2.4.2 内容编辑
基本信息编辑如上。
2.5 企业风格模板设置
2.5.1 企业色,模板等
设置企业色,模板名称,公司高德地图坐标,以及关闭网站的提示等信息。
2.5.2 生成SITEMAP.xml
这里是可以生成sitemap文件的,生成后,需要下载保存到前端的网站的根目录下。
3.1 主要的接口文件
/api/Site.php
3.2 请求数据和返回数据
3.2.1 请求数据
domain:网站域名,这里需要与2.3.1里面的独立域名一致
authcode:秘钥,这里的密钥,目前用的是2.3.1里面的email,hashids_encode后传到服务器。
3.2.2 返回数据
服务器根据请求数据查询数据库,如果参数不全或者秘钥不匹配找不到网站,会返回:
如果找不到网站,会返回:
这里的code后面可能还会优化,以便于更准确的返回。
如果找到了正确的数据,会返回以下信息:
也就是返回code=1,然后返回公司基本信息、导航栏(也包含了所有的栏目)、所有的内容页;
返回的具体字段,后面专门在补充,或者说开一篇文章来记录。这里不在详细展开了。
至此,服务器端的说明完成。
4.1 前端概述
前端也是用的thinkphp,但所有的功能就很简单了。
一是要存放模板文件,css、js、图片等文件;
二是从服务器获取数据,存放到本地缓存,以供各个方法调用和组织。
4.2 模块说明
只需要一个模块:index
模块下也只有一个控制器:index
方法主要有4个:
index/index/index--首页,
index/index/categorys--栏目页,
index/index/contents--内容页,
index/index/search--搜索页。
在function _initialize()里面执行数据获取的工作,然后按照公司的名称,使用缓存,以减少服务器的数据查询量。
4.3 Assets文件存放
模板文件存放于/public/assets/目录下,每套模板一个文件夹。
前面有介绍过,如果未填写模板名称,则会使用默认的“base”模板。
如果填写了自定义模板名称,则与这里保持一致即可。
4.4 template模板存放
这个可以在config里面定义,我这里放置在与public平齐的目录template下面。
4.5 补充说明
前端当然还要绑定域名,有的还需要配置ssl等。