[搜]

贴心猫-文档

目标:增加一个完整的bbs

后端模型

  • 需求分析
    • bbs需要两个基本的模型: talk(话题), post(帖子);
    • bbs分类,用栏目来表现;设置2级分类;
    • 会员:使用贴心猫自带会员,(或不要会员);
  • 模型架构
    • 入口:后台 >> 架设 >> 超管架构 >> 模块架设
    • 文档/资讯 : 复制newstalk(话题),也可用 增加条目,设置 栏目级数2
    • 互动/评论 : 复制nrempost(帖子),注意设置关联模型为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(用户模板配置),代码如下;
  • 模板配置代码(参考):

语言包扩展

  • 全球语言排行
    • 联合国工作语言:英语, 阿拉伯语, 汉语, 法语, 俄语, 西班牙语
    • 世界几大语言:英语, 汉语, 德语, 法语, 俄语, 西班牙语 (按分布与应用力)
    • 世界使用人数最多语言:汉语, 西班牙语, 英语, 阿拉伯语
  • 系统语言包结构
    • 核心语言包结构
      [imcat]
        ├─lang
        │  ├─dbins 数据库架构数据 语言包
        │  ├─kvphp 核心脚本 语言包
        │  ├─ptinc 文本块 语言包
        │  └─ucfgs 配置数组 语言包
    • 后缀说明:-cn:中文; -en:英文; -fr:法语; -ru:俄语; -es:西班牙语; -de:德语; -jp:日语; -kr:韩语; -ar:阿拉伯语
    • 为了与核心语言包区分,可把扩展语言包放到:/root/extra/ 目录下。
  • 扩展语言包
    • 欲增加[-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调用
    • lang('jcore.sub_key')

增加韩语版

处理目标: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";