欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 740

点击:60510[回复顶层] [树状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]精品第 1 楼
文章id: 740
介绍一下dp2OPAC中的聊天室功能

作者: xietao


dp2OPAC中的聊天室功能开发出来大约有一年了吧,因为某些原因原本想进一步优化这个功能后再正式推出,不过到了现在,我觉得先介绍出来,让感兴趣的用户单位试用试用也不错,如果有用户意见反馈,可能对后一步的继续开发更有好处。

如果您安装了较新版的dp2OPAC系统,那么已经安装了聊天室模块 chat.aspx,只不过没有把它放到标题栏上。如果图书馆打算让读者使用这个功能,一个办法是在图书馆主页上配置它的入口URL,例如:

http://somehost/dp2OPAC/chat.aspx

或者在dp2OPAC的标题条上配置一个入口锚点,可利用dp2OPAC数据目录中的webui.xml配置:

...

 <titleBarControl>
  <leftAnchor lang="zh">
   <a href="http://somehost/dp2OPAC/chat.aspx">聊天室</a>
  </leftAnchor>
  <leftAnchor lang="en">
   <a href="http://somehost/dp2OPAC/chat.aspx">Chat Room</a>
  </leftAnchor>

...

当然,“聊天室”不一定叫这个名字了,也可以根据主题叫“意见反馈”之类。

上面的URL进入聊天室页面后,显示的是缺省栏目的内容。如果要确定进入一个特定的栏目,URL中可以指定栏目名:

http://somehost/dp2OPAC/chat.aspx?room=default

严格来说,URL中参数的汉字内容应当使用转义方式。如果栏目名为汉字,为了在URL中指定起来方便起见,可以使用类似 room=@1 这样的方式,用序号来制定栏目。从1开始计数。

~~~

初次使用的时候,只有一个栏目叫做"default",这是系统自动创建的栏目。

为了创建新的栏目,可以直接打开dp2OPAC的数据目录下的opac.xml进行配置,在根元素下配置下面片段:

<chatRoomDef>

<chatRoom name="default" />
<chatRoom name="电影爱好者" />
</chatRoomDef>

即可。系统缺省创建的default栏目也可以被修改名字。

另外一个创建新栏目和删除已有栏目的办法,是用管理员身份登录dp2OPAC,chat.aspx页面左方就会出现两个按钮,可以用于管理。所谓管理员身份的账户,需要在dp2circulation前端的用户窗中,为这个账户手动增加一个managechatroom权限。这个权限没有出现在权限设置对话框的权限值列表中,需要手动输入。

~~~

chat.aspx页面的左上角可以选择栏目,下面的日历区域还可以选择查看哪天的内容。

栏目的内容是按照每天一个文件来组织存储的。不是当天的内容,就不发生变动了。

无论是当天的栏目内容,还是以前各天的内容,管理员都可以进行删除操作。删除的方法是,将鼠标移动到要删除的条目上方,条目内容中就会出现一个删除按钮,按这个按钮就可以删除条目。删除以后就无法恢复了。

由于聊天室的栏目内容是实时发生的,如果对内容比较敏感在意的图书馆单位,可能需要配备一名专职工作人员监控内容,如果发现不合适的条目可以立即删除。这个工作人员的账户应当具有managechatroom权限,或者具有栏目编辑身份。也可以凭请一些符合条件的读者来进行管理(相当于BBS的版主的身份),这种情况下,就需要将读者设定为栏目编辑身份。

设定栏目的编辑,需要为opac.xml中<chatRoom>元素增配editors属性,例如:

<chatRoomDef>

<chatRoom name="default" editors="supervisor, R0000001"/>
<chatRoom name="电影爱好者" editors="R0000002,R0000010" />
</chatRoomDef>

上例中R0000001等是读者的证条码号,被当作用户名来使用;supervisor是工作人员的用户名。栏目编辑仅有删除栏目中条目的权限,没有创建或删除栏目的权限。

聊天室的特点是实时性很强,发言短小随意,因此可以作为图书馆搜集用户意见的一种好的信息渠道。固然,聊天室本身对读者之间的交流也有很大意义。我在这里建议图书馆尽可能善用这些设施,活跃图书馆网站,把读者服务工作推上更高的一个层次。管理中的一些工作量和所谓的麻烦,自然是有的,但我们应当从更加积极地角度看待它。

~~~

访问者发送到栏目的条目内容,一种显示方式是每行一条,另外一种方式为贴纸方式、每行多个贴纸,发送者通过点按不同的按钮来选用发送方式。

在发送创建条目的时候,还可以同时指定一个要上载的本地图像文件名,这样条目文字下方就有了图片。

贴纸方式下的条目中的图像被限定在较小的尺寸。如果用鼠标指针移动到图片上,图片会自动变大。

上载图片的时候,服务器会对宽度或者高度超过限制的图片自动进行缩小操作,以维持版面的美观。

~~~

输入文字的面板最初是停靠在右下角,用鼠标可以拖拽它到适当的位置。页面左右两个部分中间的竖条,如果用鼠标点它,可以将栏目内容部分尺寸在自动撑大和原有尺寸之间来回切换。

栏目内容区域右下角有个拖拽的把手,用鼠标拖动它可以改变整个区域的尺寸。

~~~

备份聊天室内容文件的方法:

先将IIS或者dp2OPAC虚拟目录停止运行。

然后在dp2OPAC数据目录下的chatrooms子目录内,复制全部下级目录和文件。每天的聊天室内容由两个文件组成,一个扩展名为.index的是索引文件,没有扩展名的是数据文件。文件名表示了日期。

如果要释放以前很久的聊天室文件占据的空间,可以直接删除特定时间段的文件。

~~~

dp2OPAC的聊天室是用Ajax技术开发的。



发表时间: 2012-05-17 22:24:17
最后修改时间: 2012-05-20 14:40:26



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 741
如何定义上载图片的限制尺寸

作者: xietao


聊天室中访问者上载的图片的最大尺寸可以在opac.xml中定义。

如下所示:

<chatRoomDef picMaxWidth="800" picMaxHeight="8000">

...

在<chatRoomDef>元素中,用picMaxWidth和picMaxHeight属性来定义上载图片的最大尺寸。

如果大于这个尺寸,则软件会自动对图片进行缩小。当宽度或高度之一超过最大尺寸的时候,缩小是按照纵横等比例来进行的,确保超出的维度被缩小到定义的数字以内。

如果宽度或者高度不想进行限制,则可以用"0"来表示。

例如:

<chatRoomDef picMaxWidth="400" picMaxHeight="0">

...

表示宽度限制在400像素以内,而高度不加以限制。



发表时间: 2012-05-20 15:18:01



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 3 楼
文章id: 742
这几天做的优化开发

作者: xietao


这几天对聊天室功能进行了一些列的优化和增补开发。

计有:

1) 增加了编辑身份定义,也就是<chatRoom>元素中的editors属性定义能力;

2) 增加了上载图像文件的能力;

3) 输入内容的面板部分变成浮动效果,精简了尺寸,呈现半透明效果;文本框中Ctrl+Enter触发发送动作;

4) 内容显示区首次显示的时候,宽度和高度通过javascript自动计算;输入内容的面板自动停靠在右下角位置;

5) 鼠标点击左右区域分割条的时候,不但缩小左边区域,而且缩小上部区域,以便腾出更大的显示空间。在部件尺寸变化的时候,内容区域和尺寸和输入面板的停靠位置都会自动重新计算设置;

6) 在opac.xml中定义上载图片的限制尺寸;

7) 修正了IE浏览器中贴纸不能横向铺开排列的问题;

8) 增加了URL命令行中用room参数指定起始栏目的能力;栏目名可以使用 @1 这样的形式;

9) 在column.aspx即“书评”页面中增加了子菜单入口,可以直接进入chat.aspx页面。如果不想要这个子菜单,可以在dp2opac虚拟目录中删除column_sidebar.xml或chat.aspx文件。



发表时间: 2012-05-20 15:32:37



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 4 楼
文章id: 744
今天做的改进

作者: xietao


 

10) 为每个条目增加了作者头像显示;

11) 在普通条目(非贴纸)内容上采用流动布局以便更节省垂直空间;发送时间放在右上角显示;

12) 增加操作条目显示功能。操作条目目前是进行删除操作的动作信息。具有managechatroom权限的用户或者编辑身份可以在操作条目中看到被删除的条目的详情,普通访问者看不到详情,只能看到其余信息;

是否显示操作条目的checkbox状态会自动保存到浏览器cookie中。

13) 输入面板更换定位方式,不再在页面底部出现一个空白区域;

14) 对数据文件每隔几分钟自动关闭后重新打开,以防止文件内容在dp2OPAC意外down掉时候丢失;

15) 浮动出现的删除按钮,改为出现在条目内容最上方;

 



发表时间: 2012-05-21 22:09:45
最后修改时间: 2012-05-21 22:39:22



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 5 楼
文章id: 745
不错

作者: 大个东


加上了,试用了下,挺好!

只是我的还不能上传图像。



发表时间: 2012-05-22 09:30:47
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 6 楼
文章id: 748
回复: 不错

作者: xietao


==========

以下是引用 大个东 于 2012-5-22 9:30:47 发表的文字:

加上了,试用了下,挺好!

只是我的还不能上传图像。

==========

谢谢您的支持。最新版本的dp2OPAC安装包已经可以上传图像了。

这一段时间dp2OPAC安装包会密集更新,如果有什么新功能我会在这个帖子里介绍,感兴趣的系统管理员可以随时下载最新的dp2OPAC安装包升级安装。



发表时间: 2012-05-22 11:10:59



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 7 楼
文章id: 750
聊天室公司服务器上线

作者: xietao


dp2OPAC的聊天室功能今天在公司服务器上线了。

地址为:

http://dp2003.com/dp2opac/chat.aspx

现在,聊天室已经被称为“贴吧”。在公司服务器主页 http://dp2003.com 上的社区栏目中有入口可以进入这个贴吧。

首次进入贴吧的时候,访问者的身份可能还是未登录状态,也就是“访客”身份,此时也是可以在贴吧中发言的,但因为身份不明确,访客所发出的条目会显示访客所在机器的IP地址作为补充,为了保护IP地址的隐私,显示出来的IP地址是进行了处理的,只显示局部。

这时可以点贴吧页面右上角的登录按钮,会出现一个登录画面,在这里是用BBS的身份登录。这里可以看出,dp2opac系统和dp2bbs系统采用了统一登录的策略,贴吧可以使用BBS的账户身份。

在贴吧中为了区别dp2OPAC的账户身份和来自BBS的账户身份,对于BBS的账户身份会显示用户名为类似“xietao@dp2bbs”的形态。在dp2OPAC数据目录中的opac.xml中为<chatroom>元素定义editors属性值的时候,也可以使用这种形态的用户名。也就是说,无论是dp2OPAC的用户和来自BBS的用户都可以被定义为贴吧的编辑身份。

在这里示范的统一登录模式非常有意义。因为用户图书馆也可以在多个Web应用之间实行统一登录,dp2OPAC和其他Web应用模块都有这样的接口设施。

~~~

公司服务器上的这个贴吧,我希望它不仅具有演示产品功能的作用,而且我们可以真正把它投入使用,为访问者发表意见、抒发感情,为我们交流产品和技术问题,提供一个比论坛实时性交互性更强的环境。

这个贴吧实际上相当于一个即时通讯的“群”的概念,每个人都可以在上面自由发言,其他人能够瞬间立即看到最新的内容,它其实是一个标准的即时通讯工具。

它具备贴图的功能,这为技术交流提供了方便。

当然贴吧有个特点就是动态性强,每天以前的旧内容除非特意去看就不出现了,所以需要积累的重要内容可能还需要论坛来承载。论坛的实时性不如贴吧来得强,但可以沉淀和积累成熟内容。几种方式互为补充就好。



发表时间: 2012-05-23 20:53:15



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 8 楼
文章id: 752
非常漂亮的功能

作者: 精灵


非常漂亮的功能。。简洁、大方、实用。。。。感谢,谢老师的辛勤劳动。


发表时间: 2012-05-25 10:15:10
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 9 楼
文章id: 753
回复: 非常漂亮的功能

作者: xietao


以下是引用 精灵 于 2012-5-25 10:15:10 发表的文字:

非常漂亮的功能。。简洁、大方、实用。。。。感谢,谢老师的辛勤劳动。
===

谢谢精灵的鼓励。

去年因为编写dp2OPAC的后台任务的Web界面,使用了较多的Ajax功能,因此顺手写了这个聊天室。但是没有来得及优化,就被其他更重要的事情占据了时间和精力,就搁下了,一直到前一段才猛然想起有这个模块。

由于图书馆系统的功能庞杂,从目前公司的“正经”需要来看,类似聊天室这样的功能本来是排不上重点开发日程的。但公司现在的任务已经和当初有所不同,在Internet通用领域也有很重要的使命。现在的OPAC系统我们觉得缓过劲来可以重写一个,让这几年磨练出来的技术应用到OPAC系统中,制作一个优美的、功能丰富的产品,印证数字平台的创办理念。所以,这个小小的聊天室模块实际上也承载了我们验证技术和设计的场地,其中含有一些机遇。

从这个角度来说,做任何模块都是值的。这个聊天室等大家有了改进意见再慢慢改,我暂时也要去忙其他模块了。

顺便说到,目前的这个dp2OPAC版本,其技术基本上起源于早期dp2BBS的Web控件技术,那时候Ajax还不如现在这样大行其道。虽然dp2OPAC后来加入了Ajax的点滴功能,但显然不是“专干这个”的,稍微有些显得力不从心。但dp2OPAC远远不能代表我们现在的技术能力了。可能有朋友会奇怪,为什么技术能力提升了没有反映到产品上面呢?这是因为产品有个周期性,在它的客观周期内,大幅度地改动会导致兼容性问题,为安装维护造成很多问题,所以稳妥的办法是全面重写,成为下一个版本,然后给用户升级。所以发展是跳跃式的,很多时候不是渐进的。

公司有产品实践技术然后演进的策略。上述dp2OPAC实际上从dp2BBS的技术过来的,就是一个例子。另外的一个例子是,网络小毛驴的技术验证后,演化出dp2rms和dp2circulation等前端。通俗地说,我本人正是从网络小毛驴开始学习C#语言和Windows Form程序的,从dp2BBS开始学习.aspx编程的。dp2BBS是我编写的第一个正经的网站程序。现在算起来已经快十年了,这几年越来越迫切的一个愿望就是一定要重写dp2BBS。这里面有个程序员都知道的“2.0现象”。按我的话来转述就是“如果老天给我一个机会写2.0版,你看看我会怎么发挥...”。

(这里不由得想起当年准备dt1000系统的早期阶段,刚开始学习Windows编程,第一个课题就是GUI控件。居然也稀里糊涂走过来了。现在回头一想,当时作为一个“初学者”,第一次上手编写Windows程序就是界面控件,...,不说了。不过,当时C语言是精通的,因为前面几年磨炼DOS版本过来的)

这种路线中,前后关系都是使用的同一代技术。因为公司的人写程序不能白写,因为是专业人员,饭碗是这个。所以业余爱好者会很奇怪 --- 难道不能“脱产”写一个完全没有实用价值然后是验证技术的东西么?答案是,公司里面时间实在太紧,每天要产生多少代码,所以最佳策略是用有用的产品来验证技术,有用和实践不矛盾。不过,这样的缺点就是太“慎重”了,不是那么自由。

所以现在的聊天室以及这一段后面的其他Web模块,就是后面dp2OPAC新版本的前奏。我们有一个dp2系统的3.0的计划,除了OPAC模块重写外,计划中还包括一个庞大的统计模块等等,可能在今年年底或者明年上半年完成并推出。目前公司的节奏是每年推出一个新版本。

现在(不少公司)好像时兴默默把产品写出来,然后“突然”推向市场,给用户一个“惊喜”?其实有时候提前说说不远的计划,也是一件乐事。

说到界面的美观,现在看得出来聊天室上方的标题条还是原来的,左方的日历什么的也还是原来的风格。只是内容框子中是一片自留地,有了变化。我们后面的产品会尽量彻底重来,探索更多其他的风格。希望这些工作和产品能得到大家的接纳,模块能够实际投入使用,改善图书馆的业务环境和面貌。


发表时间: 2012-05-25 11:20:52
最后修改时间: 2012-05-25 11:21:57



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 10 楼
文章id: 754
感谢,谢老师的讲解

作者: 精灵


感谢,谢老师的精彩讲解。呵呵。。。。说实话,从期刊的图形界面到贴吧中便签、留言等功能的应用。每次版本的更迭总能给人眼前一亮的感觉。呵呵。。。。。我个人感觉,现在的系统同化现象有些严重,很多系统都是类似的界面,类似的布局。有着自己鲜明技术特点的产品是在太少了,说实话,产品的技术特点就像产品的标签。特点不鲜明或者不具有技术特点的产品,往往会给人一种仿造的感觉,过一段时间就会被人所淡忘的。呵呵。。。。。。。真心希望谢老师能够坚持自己产品的技术特点并且能够把这种特点发展到一个新的高度上,另外,我非常期待3.0版本的推出。呵呵。。
哦。。对了。小声说一句,就我个人来说,我很喜欢简介、实用的界面,我感觉能用最简单的方式,去进行一种复杂的应用这才是最见产品设计者功力的。个人感觉。呵呵。。。。。。。。


发表时间: 2012-05-25 13:51:14
最后修改时间: 2012-05-25 13:52:52
页 1 / 2 |< 1 2 > >|
 

在线用户
(无) 
当前栏目在线用户数 0, 总在线用户数 0