(2025)
请点关注一键三连,谢谢🙏
﹝前言﹞
搞OA二次开发被栏目模板绕晕了?这篇指南把客开栏目的开发流程拆解得明明白白!从文件命名规范到目录结构,从注册配置到避坑指南,连"千万别和系统文件重名"这种血泪经验都给你标红了!
准备工作
栏目模板涉及文件
0.1
PREPARATION
栏目模板指的是栏目的外形样式,可以根据用户配置按照模板的设计来显示,具体应该包含一下文件:
No.1
前端文件
■ tpl-xxx.html
■ tpl-xxx.js
■ tps-xxx.css
No.2
后端文件
■ xxxSection.java
■ xxxSectionTemplete.java
No.3
国际化文件
■ xxxi18n_zh_CN.properties
■ xxxi18n_zh_TW.properties
■ xxxi18n_en.properties
No.4
栏目注册文件
■ xxxSectionRegister.xml
No.5
后端Spring配置文件
■ 栏目spring配置文件
补充说明:
1.不可以直接修改oa本身的文件,如果必须要修改 请拷贝一份并重命名
2.如果修改了前端tpl文件,需要将配套的html、css、js都要拷贝并重命名,在进行相应的修改。并需要将该三个文件注册到oa中(xxxSectionRegister.xml),并编写一个xxxSectionTemplete.java文件
3.如果栏目的需求不需要修改tpl文件则无需包含html、css、js三个文件、栏目模板注册文件、栏目模板java文件。
第一步
自定义栏目注册
0.2
INTRODUCTION
No.1
创建Section.xml描述文件
比如我们创建一个 mydemosection.xml 的栏目描述文件,然后再创建一个注册文件 mydemosectionregister.xml文件,命命格式为SectionName+Register+".xml",如下图
第二步
编写栏目的实体类
0.3
INTRODUCTION
No.1
创建SectionDemo类
此实体类主要是栏目的数据的后端数据存储和前端的数据的渲染所用。
(1)必须是Java文件编译后的class文件。
(2)类名即class文件名是客开栏目的唯一标识,不允许重复。
自定义的栏目中主要实现一下两个方法:
//默认 false: 系统预制栏目// true: 自定义栏目publicbooleanisCustomizeSection();public Map<String, Object> customizeSectionProperties();
/** * 获取自定义栏目(客开栏目)的配置内容 * @return * * 系统预制栏目返回 null 即可 * * 非系统预制栏目 * 是否使用了系统预制的后端模板, true: 使用,false:未使用 需要返回自定义的栏目模板类型 * 并需要新建栏目模板注册文件路径:src/main/webapp/portal/config/portal_laytpl_template/customer[customer_mobile]/xxx.xml * 并需要写明栏目注册文件的名称 * * 是否使用了系统预制的tpl样式模板, true: 使用:false:未使用 需要返回自定义的tpl名称 * * 国际化文件名称(只需要标明文件名 如:SectionDemo_en.properties,标明SectionDemo即可,无需写明语种) * * 栏目对应spring配置文件的名称 * * 栏目类名 */@Overridepublic Map<String, Object> customizeSectionProperties(){ Map<String, Object> map = newHashMap<>();//后端模板数据 map.put("isUserSystemTemplate", true);//map.put("customizeTemplateName","SectionDemoTemplete");//map.put("sectionRegisterFileName","mydemosectionregister.xml");// tpl文件数据 map.put("isUserSystemTplTemplate", true);//map.put("customizeTplTemplateName","tpl-sectionDemoTemplete");//国际化文件名称 map.put("sectionI18nFileName", "CustomNotice");//栏目对应spring配置文件的名称 map.put("sectionSpringPropertiesFileName", "spring-customnoticedemo-section.xml");//自定义文件类名 map.put("className", "CustomNoticesection");return map; }
第三步
Spring中注册栏目
0.4
INTRODUCTION
No.1
配置控制栏目配置页签
在spring xml配置文件中注册栏目接口和配置栏目属性
<propertyname="sectionType"value="common,collaboration,kkcustom"/>
序号 | sectionType | 说明 |
1 | common | 常用栏目 |
2 | timeManagement | 目标管理 |
3 | doc | 知识社区 |
4 | formbizconfigs | 表单应用 |
5 | forum | 扩展栏目 |
6 | meeting | 会议管理 |
7 | performanceAnalysis | 协同驾驶舱 |
8 | edoc | 公文管理 |
9 | collaboration | 协同工作 |
10 | vreport | 报表中心 |
11 | businessOrderPlatform | 应用平台 |
12 | kkcustom | 自定义栏目 |
No.2
配置控制栏目在哪个空间显示
<propertyname="spaceTypes"value="personal,personal_custom,leader"/>
spaceTypes配置控制栏目在哪个空间显示,常见的空间类型:personal_custom(个人自定义空间)、personal(个人空间)、leader(领导空间)、outer(外部人员空间),
具体见:com.seeyon.ctp.portal.util.Constants.SpaceType
第四步
编写国际化文件
0.5
INTRODUCTION
No.1
创建Section.xml描述文件
编写国际化文件时非英文国际化字符需要使用unicode编码,并且为GBK编码格式。前面部分为国际化key,后面为国际化值,中间使用 =
第五步
目录结构说明
0.6
INTRODUCTION
No.1
门户待导入包结构说明
门户待导入包,包含门户模板、空间、自定义栏目:
PortalPak_1692237612913 import.xml portal_6866028361280671370.zip SectionPackage.zip customSection.properties sameNameSectionDemo ApacheJetspeed webapps sectionDemo …… SpacePackage.zip space_1309329665649296047.xml space_1309329665649296048.xml ……
No.2
自定义栏目目录结构说明
下述中【】中是文件,其它为文件夹:
sameNameSectionDemo ApacheJetspeed webapps seeyon portal config portal_laytpl_template customer 【mydemosectionregister.xml】 sections tpl 【tpl-sectionDemoTemplete.css】 【tpl-sectionDemoTemplete.html】 【tpl-sectionDemoTemplete.js】 WEB-INF portal sectionDemo cfgHome i18n portal 【SectionDemo_en.properties】 【SectionDemo_zh_CN.properties】 【SectionDemo_zh_TW.properties】 spring 【spring-mysectiondemo-section.xml】 classes com seeyon ctp portal section 【SectionDemo.class】 templete 【SectionDemoTemplete.class】
第六步
部署本地启动系统
0.7
INTRODUCTION
No.1
放到门户导出的包中如下目录中
No.2
登陆OA,导入门户即可
﹝最后﹞
常见问题:
在导入完成之后,会将栏目包存放到baseresourcesportalsection 目录下,每次重启的时候都会进行扫描。如果发现自定义栏目丢失了,会将base下的自定义栏目同步到WEB-INF;
目前暂时没有提供热卸载的接口。如果想要删除一个栏目,需要将该栏目的文件全部删除。包括base下;
在编写栏目的时候 要确保每一个文件名都保持唯一,如果任何一个文件重名和oa系统现有文件重名了,该栏目导入将不会成功。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...