OpenMeeting是一个开源的视频会议、即时消息、白板、协作文档编辑为一体的软件。与一般通常会议软件相比,特别之处是能够在会议过程中做PPT的演示,这一功能是由OpenOffice的文档转换能力和提供Java远程访问的能力来支持。
Git地址:https://github.com/apache/openmeetings
官网地址:https://openmeetings.apache.org/
最新版本代码下载 (5.0.0-M3) 下载地址
运行项目代码后,访问默认端口地址,进入安装页面:
http://localhost:5080/openmeetings/install
访问默认登录页面
http://localhost:5080/openmeetings/signin
如上文介绍OpenMeetings安装的时候需要设置一个邮件服务器,如果没有邮件服务器则前台是无法注册的。现在我们就把这个烦人的邮件注册去掉
服务器端文件中,找到org.xmlcrm.app.data.user.Usermanagement类,找到下面一行
Long user_id = this.registerUserInit(3, 1, 0, 1, login, Userpass,lastname, firstname, email, age, street, additionalname,fax, zip, states_id, town, language_id, true, new LinkedHashMap());
将倒数第二个true改为false,部署以后再到前台注册,现在已经不会提示Invalid EMail了
修改config.xml文件中:
<currentappname>testNamecurrentappname> 网站名称
<currentappnameurl>testURL<currentappnamebugurl> 网站URL
每次登陆以后默认都是英文的,要选择一下语言而且登陆以后才会变成中文,我们可以让它一开始就是中文。修改xmlcrm/hibernate/rtmphib.lzx文件这一句,value由1改为9(9是chinese simplified在语言那个下拉菜单的顺序)。修改xmlcrm/auth/checkLoginData.lzx文件combox name="language"标签下的handler name="oninit"事件内容,两行this.selectItemAt(0);全都改为this.selectItemAt(8);,这样系统会在初始状态下默认选择简体中文(8=9-1)。这样重新编译,界面就初始为简体中文。
登陆框下面的语言选择,颜色选择和带宽我都去掉了,方法如下:
auth/checkLoginData.lzx文件,其中每个labeltext标签和其下缩进的一个表单标签(combobox/customedittext)一起代表一行的输入框和其前面的名称,将不需要的都在标签最后加入 visible="false"属性。同时注意剩余的labeltext和表单标签中的y值为其所在的纵向坐标,需要修改之让其匹配界面应在的位置。可以参考原删除的标签的y位置。最后的simplelabelbutton就不要改了,因为是按照相对高度定位的。 最后修改整个窗体的高度,顶部的class标签最后的height属性,改为应有的值,大概是每删除一个表单标签-30,例如删除了3项输入框,就是原有高度260 - (3 x 30) = 170。
对于一个聊天室,登陆以后其实直接到房间列表就够了,/xmlcrm/navi/mainnavi.lzx文件,找到mainnavi类,最后一个handler name=“oninit”,修改代码行if (i = = 0) t1.onclick.sendEvent();中间if条件为i==2。这样进入后就会自动进入“会议”菜单
然后找到mainmenumeetingsitem类,下面的handler name=“onclick”,最后一行else this._menuRef.subviews[0].onclick.sendEvent();改为else this._menuRef.subviews[1].onclick.sendEvent();这样进入后就会自动进入“私人会议”列表界面
进入房间列表页面以后,可以看见右侧有一个聊天窗口,根据需要修改/xmlcrm/content/meetings/publicmeetings.lzx(公共房间列表)/xmlcrm/content/meetings/privatemeetings.lzx(私人房间列表),删除一行即可
顶部菜单可以进行一些操作,但对于一个聊天室,这些操作其实有些多余,下面是删除办法。
/xmlcrm/navi/mainnavi.lzx文件,找到mainnavi类,先在其中找到第一个view标签(就在紧接一堆attribute下面,不含有name属性的那个),然后为其加上name属性name=“navibar”。然后还是mainnavi类中,找到最后一个handler name=“oninit”,在Debug.write("this: ",this);后添加代码:
if (value.length == 4) {
this.navibar.setAttribute("visibility", "hidden");
this.itemlist.setAttribute("visibility", "hidden");
this.subitemlist.setAttribute("visibility", "hidden");
}
这样,当管理员登陆的时候看到的还是原来的界面。普通用户登陆则看不到顶部菜单。如果只希望屏蔽一级菜单,而希望留下“公共会议”和“私人会议”菜单,则不要第三行this.subitemlist.setAttribute(“visibility”, “hidden”);
登陆进去以后,屏幕右上角总是显示三项:用户、退出、反馈错误。如果不希望有用户和报告错误两项的话,就按照下面的做。
/xmlcrm/navi/mainnavi.lzx文件,找到helpandbugs类,将其中name="btn1"和name="btn2"的两个view标签及其包含内容全部删去即可
即使选择了简体中文,系统依然会有很多地方的显示是英文的,我们需要手工的将部分未翻译过来的单词自己翻译一下,有三种办法:
(1) 在服务器端代码(不是客户端代码)中找到webapp\openmeetings\languages\,里面存的是所有的国际化文件,english.xml为英语,chinese simplified.xml为中文,用文本编辑器打开以后可以按照你自己的希望对不满意的翻译进行修改。修改以后需要用管理员帐号登陆,然后在【管理】-【Language-Editor】中Import修改后的xml文件到chinese simplified。
(2) 用管理员帐号登陆,然后在【管理】-【Language-Editor】可以直接对数据库中的语言进行翻译,比较方便。
(3) 直接访问数据库表fieldlanguagesvalues,用select * from fieldlanguagesvalues where language_id = 9即可查看所有的简体中文国际化记录,直接修改value的值也能达到同样的结果,用数据库的好处是查找比较方便,呵呵
另外还有部分语言是硬写在代码里的,这些只需要对整个项目搜索那段英文再修改为中文即可,例如:/conference/popups/changedevice.lzx 中Do not ask again改为中文“下次不再提示”
进入房间后,顶部一排有很多功能菜单,申请主持、文件上传、投票等等,这些功能对于一个纯粹的聊天室来说,有些多余,而且这些功能全都可以在其他地方实现,所以你可以根据需要将顶上的部分功能菜单给删除。
/xmlcrm/content/conference/conferencemenubar.lzx文件中找到conferencemenubar类,其下每一个labelmenu标签代表一个菜单项,顺序为从左至右,将不需要的菜单项删去或注释掉即可。再在上面一点找到一堆command标签,根据快捷键将不要的也删除或屏蔽,以避免有人使用快捷键调用功能。
而房间上中的按钮和显示则在文件/conference/moderation/moderationpanel.lzx的moderationpanel类中,同样将不需要的屏蔽即可
进入房间后,发现不管怎么修改语言数据,那三块板子顶上的标题就是不变,这是因为这三个标题没有绑定国际化的原因。
/xmlcrm/content/conference/conference.lzx中,找到videoboard类,删去title属性,加上labelid=“313”;
找到whiteboardpanel类,删去title属性,加上labelid=“315”;
找到filespanel类,删去title属性,加上labelid=“314”
房间里左下角框里面是有聊天、文件和成员三个选项的,文件用来控制白板,还有些用,而投票在***室里面恐怕用不上,所以去掉。
/conference/tabbar/conferencecontainertab.lzx中,找到conferencecontainertab类,3个openmeetingsTabButton标签每个代表一个tab按钮,屏蔽不需要的
会议室上限人数从下方地址修改
/xmlcrm/conference/roomlistItem.lzx文件中一行,修改value的值为人数上限
网上关于OpenMeetings项目的开发并不是很多,所以我这里也整理了一些网上的资料出来,帮助大家一同研究,荣幸与您分享~