目标:增加一个完整的bbs
后端模型
- 需求分析
- bbs需要两个基本的模型: talk(话题), post(帖子);
- bbs分类,用栏目来表现;设置2级分类;
- 会员:使用贴心猫自带会员,(或不要会员);
- 模型架构
- 入口:后台 >> 架设 >> 超管架构 >> 模块架设
- 文档/资讯 : 复制
news
为 talk(话题)
,也可用 增加条目
,设置 栏目级数
为2
;
- 互动/评论 : 复制
nrem
为 post(帖子)
,注意设置关联模型为talk(话题)
;
- 根据需要,设置栏目 : 架设 > 模块架设 > 文档/资讯 > [栏目/字段] (bbs分类);
- 根据需要,设置字段 : 架设 > 模块架设 > [文档/资讯|互动/评论] > [字段];
管理扩展
(可先忽略此操作让系统默认处理;根据需要扩展)
- 管理url与脚本对应示例
- 一般管理操作:入口
adm.php?admin-types
,对应脚本:\imcat\flow\admin\types.php
- DOP(DataOP)数据操作:入口
adm.php?dops-a&mod=news
,对应脚本:\imcat\flow\dops\a.php
- 所有后台设置的:[文档/资讯 | 互动/评论 | 用户/会员 | 广告/连接],全部对应如上
dops-a
入口,
以新闻为例,说明一下对应与扩展关系:
- a. 任何 [文档/资讯|互动/评论]等管理操作都分为:列表显示、列表更新、(增改)表单显示,表单保存;
- b. 在/imcat/dops/目录中,上述功能分别对应:
*_list_show.php、 *_list_dow.php、 *_form_show.php、 *_form_do.php
脚本区块
- c. 新闻属于文档类型,新闻表单增加(修改),所以对应
docs_form_show.php
脚本区块
- d. 如果不按如上方式处理,可扩展一个文件“/imcat/emod/news.php”自定义处理,用户自定义的扩展,建议放在“/root/extra/emod/news.php”,
两个
emod
目录作用一样,后者优先级高。
- e. 如果只扩展 新闻表单保存 部分,可扩展一个文件“/imcat/eact/news_form_do.php”自定义处理,建议放在“/root/extra/eact/news_form_do.php”
- 管理流程脚本目录
- 位置:/imcat/flow/*
- admin:后台基本脚本
- apis:主要是一些对外接口的脚本
- awex:微信公众号的脚本
- binc:一些区块
- dops: Data-OP:数据[文档/资讯 | 互动/评论 | 用户/会员 | 广告/连接]操作
- eact:dops的扩展,按action(view,list)扩展
- emod:dops的扩展,按model(模型)扩展
- 管理扩展脚本目录
- 位置:/root/extra/*
- eact:dops的扩展,按action(view,list)扩展
- emod:dops的扩展,按model(模型)扩展
- 此目录下文件,优先级高于
管理流程脚本目录(/imcat/flow/)
控制器模式
因为后端管理,涉及到权限管理;另外一些操作非常复杂,大部分管理脚本按如上方式执行;
当然,也可以按之前讲的“控制器模式”扩展。
- 参考文档
- exincCtrl.php : 直接include
.php
文件,如:adm.php?exinc-demo
- extplCtrl.php : 按一般模板解析,如:adm.php?extpl-demo
- 具体请分析以上文件(贴心猫5.4+可用,也可自己扩展)。
前端显示
- 路由分析
- 首页:bbs.php (可省略)
- 论坛分类:bbs.php?talk-kid1
- 论坛搜索:bbs.php?talk-so
- 话题详情:bbs.php?talk.2019-81-8998
- 用户-话题列表:bbs.php?user
- 用户-发表话题:bbs.php?user-add
- 用户-编辑话题:bbs.php?user.2019-81-8998.edit (可与.add合并)
- 用户-编辑帖子:bbs.php?user.2019-81-8998.post
- 入口设置:
- 复制:
/home.php
(或/chn.php或/vcn.php) 文件为 /bbs.php
,作为论坛入口文件;
- 修改内容:
_cbase.tpl.vdir = 'bbs'
,_cbase.sys.lang = 'cn'
;
- 修改文件:
/root/cfgs/sycfg/sy_vopcfg.php
配置,增加 bbs
相关项配置;
- 绑定模板配置:
- 创建目录: /views/bbs/ ,放置论坛模板;
- 创建文件: /views/bbs/_config/va_home.php(首页模板配置),代码如下;
- 创建文件: /views/bbs/_config/vc_bbs.php(bbs模板配置),代码如下;
- 创建文件: /views/bbs/_config/ve_user.php(用户模板配置),代码如下;
- 模板配置代码(参考):
语言包扩展
- 全球语言排行
- 联合国工作语言:英语, 阿拉伯语, 汉语, 法语, 俄语, 西班牙语
- 世界几大语言:英语, 汉语, 德语, 法语, 俄语, 西班牙语 (按分布与应用力)
- 世界使用人数最多语言:汉语, 西班牙语, 英语, 阿拉伯语
- 系统语言包结构
- 扩展语言包
- 欲增加[-kr:韩语]语言包:
- 把如上目录的[-cn]所有文件,复制一份并改名为[-kr]后缀,然后翻译即可
- 可用机器翻译后,人工修改修正一下;
- 如果增加某种语言,且可由现有语言转换而得,可复制用转换工具转换而得,如增加繁体中文,可由简体中文用工具转化即可
- 另见:百度AI接口/系统工具-DIY转化:
- 语言包规范
- 入口文件:增加申明语言包:$_cbase['sys']['lang'] = 'en'; // 切换语言
- js语言包
- 视图(模板)中,如果本视图需要切换多个语言,那js等文件,也需要配置多个语言;
- 只有一个语言;那直接写相关js代码
多语言包调用
- php-代码调用
- basLang::show('core.page_First')
- lang('admin.adm_center')
- <?php lang('tools.start_setup',0) ?>
- tpl-模版调用
- {lang(core.view_times,$click)}
- {lang(core.sys_name)}
- js-js调用
增加韩语版
处理目标:CheerWeb(开心企业网)
- 入口设置:
- 复制:
vcn.php
文件为 /kr.php
,作为韩语版入口文件;
- 修改内容:
_cbase.tpl.vdir = 'vkr'
,_cbase.sys.lang = 'kr'
;
- 修改文件:
/root/cfgs/sycfg/sy_vopcfg.php
配置,增加 vkr
相关项配置;
- 修改文件:
/root/cfgs/root/const.php
配置,增加 kr=한국어
相关项配置;
- 复制目录: /views/comm/ 为 /views/vkr/ 韩语版模板;
- 复制语言包
- /root/extra/kvphp/lang-cn.php -=>复制 /root/extra/kvphp/lang-kr.php
- /imcat/lang/kvphp/core-cn.php -=>复制 /root/extra/kvphp/core-kr.php
- /imcat/lang/kvphp/plus-cn.php -=>复制 /root/extra/kvphp/plus-kr.php
- /imcat/lang/kvphp/flow-cn.php -=>复制 /root/extra/kvphp/flow-kr.php
- /imcat/lang/ucfgs/cfglibs-fr.php -=>复制 /root/extra/ucfgs/cfglibs-fr.php
- 翻译文字
- 翻译a. 模板目录:/views/vkr/
- 翻译b. 语言包目录:/root/extra/kvphp/ 和 /root/extra/ucfgs/
- 接口翻译见如下代码提示:(详情看相关类文件)
- 接口翻译
$fp1 = '/lang/ptinc/aflow-cn.php'; //
$res = devBuild::trans(DIR_IMCAT.$fp1, 'fra', 'html');
dump($res); echo "<hr>\n";
$fp1 = '/lang/ptinc/uless-cn.php'; //
$res = devBuild::trans(DIR_IMCAT.$fp1, 'fra', 'line');
dump($res); echo "<hr>\n";
$fp1 = '/lang/ucfgs/cfglibs-cn.php';
$res = devBuild::trans(DIR_IMCAT.$fp1, 'fra', '');
dump($res); echo "<hr>\n";