一般情况下是在 user.home下的spark/user/<jid>/transcripts 。
在代码中,实际上是一个listener:
包:org.jivesoftware.sparkimpl.plugin.transcripts
类:ChatTranscriptPlugin
在初始化的时候就加入,然后保存、查看聊天记录,以xml格式存放。打印对话窗口的时候会显示最近的20条聊天记录。
但是缺少查询,硬伤。
执行存储过程可能会遇到:User does not have access to metadata require
d to determine stored procedure parameter types
以下是解决的方法:http://sql.dzone.com/tips/quick-tip-grating-access-meta-
If you have root access to your MySQL database then you can simply run a query on the database to resolve the problem. What th ...
原地址:
http://www.popub.net/script/PCAS.html
省,市,地区三级联动的js菜单,有意思的把所有的内容都装入一个js,不需要动态ajax取内容,而且不大,经过超级压缩后,只有18k,还是gzip前的内容。
如果地区内容不压缩则大约45k,也不算大。
只不过是gbk的,如果引用需要指明gbk的编码:
<script type="text/javascript" src="/javascripts/pcas.js" charset="gbk">
</script>
使用的时候非常简单:
new PCAS("enterprise[ ...
User-Agent(浏览器提交出来的,可以判断操作系统,浏览器类型): request.user_agent
Referer(引用,可以判断上一层网页): request.referer
remote ip(客户IP,可以判断城市地区): request.remote_ip
canhaschat插件没有在接受消息时刷新最后使用时间。这样的话,如果客户端一直在等待消息,那么到达timeout就会退出,实际上客户端还是在连接的,这时候 chat_id已经失效了。
看上去应该在接受消息的时候刷新一下最后时间。
canhaschat/lib/can_has_chat/remote/chat_server.rb
line 150:
get_connection_for(options[:id]).synchronize_with do |conn|
conn.refresh_age()
sender_jid = get_user(optio ...
为了获得压缩功能,编译1.5。注意要安装libaio,libgamin的开发库。
编译的时候,增加linux aio, fam, openssl
./configure --with-linux-aio --with-fam --with-openssl --enable-maintainer-mode
配置lighttpd.conf
#使用fam监视文件状态
server.stat-cache-engine = "fam"
#keep alive 设为30
server.max-keep-alive-requests = 30
#使用epoll的api
serve ...
openfire是支持匿名登录的,但是问题在于xmpp4r却不支持。幸好已经在开发中了,如果要使用,可以直接从git里获得。
它的主页里说了,已经切换到git去了。
git-clone git://github.com/ln/xmpp4r.git
下载了xmpp4r后,使用setup.rb可以安装,不过要注意先用gem删除掉原来的xmpp4r。
匿名登录很简单,其他都不变,只要把client.auth这句改为:
client.auth_anonymous
就行了。
查它的网站上文档已经有了这个方法,但是还没有正式出版,不过经试验没什么bug。
附件上是2008年6月1 ...
聊天窗口加入对话后,需要把内容滚动到最下面。通常是用$(n).scrollTop=$(n).scrollHeight; 但是如果有自动换行的情况就定位不准确。
于是就加了一个空的span,标明id,然后使用scrollIntoView。
IE有这个函数,FF居然也有这个函数,虽然在行为上有点区别。
IE的overflow设为auto和scroll都没问题,但是ff如果设为auto则不行,会把整个div伸长,必须强制设为scroll才正确。
这样滚动到最底层是比较准确的。
function appendHTMLAndScroll(n,html){
var id=get_ran ...
安装一个mod_geoip就行了,在debain和ubuntu上很容易。
参考:http://trac.lighttpd.net/trac/wiki/Docs%3AModGeoip
http://www.chineselinuxuniversity.net/articles/12391.shtml
实际效果:http://www.pidgincn.com/test.php
这个js游戏不错
http://www.markus-inger.de/test/game.php
搞了一个extjs的hello world
http://iocs.appspot.com/
没找到如何启用gzip压缩。
FormPanel里的label缺省是左对齐,要改右对齐就修改一个属性:
lableAlign:"right"
我一开始在TextField里找了半天都没有,后来看到网上有说到才明白是在FormPanel里改属性。
不过仍然没有找到加红星号的属性。
校验textfield一般来说有这几个常见的方式:
1.不能为空
allowBlank:false
2.最大最小长度
minLength: 10,
maxLength: 100,
3.邮件格式
vtype: "email",
4.url格式
vtype: "url",
5.密码输入两次,这个比较复杂,所幸的是extjs里的例子有的
//注册校验器
function initValidator(){
Ext.apply(Ext.form.VTypes, {
password: function(val, ...
实在没有找到很好的办法,简单地直接加一段HTML就算了:
var redStar=" <font color='red'>*</font> ";
......
fieldLabel: "用户名"+redStar,
还有一个属性labelSeparator,也可以尝试一下,这个设置的是那个冒号,没试过这个。
textfield的label缺省是左对齐的,有时候需要调整为右对齐,则可以设置labelStyle:
labelStyle: "text-align: right;",
这个style会自动加到label上去的,还有一些粗体之类也可以。
安装或编译一个apache2,在bin目录下有个ab.
Usage: ./ab [options] [http[s]://]hostname[:port]/path
Options are:
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make
-t timelimit Seconds to max. wait for responses
-p postfile File containing ...
刷新panel可以用一个方法:doLayout。
个人认为这是一个非常奇怪的api,show这个方法如果是lazy load,那么至少要有一个refresh或reload之类的刷新方法。
设为forceFit: true后,本来是应该撑满的,结果在IE下搞出三千多的宽度,吓了一跳。
改为autoFill:true后就没事了。
这个grid panel是render一个div的,这个div是在tab panel里的。没试过别的情况。
firefox下都很正常。
里面到处有代码强制指定字体大小,甚至有10以下的,太恐怖了,我一怒之下全部改为最少12的字体了。
一时兴起准备把java项目也移到netbeans里去,可惜转过去一看才知道根本不行。
于是仍然用eclipse。
由于spark中的搜索界面是直接根据服务端的search插件生成的,所以必须把服务端的search插件给汉化了才行。
重新编译了一下,主要增加了一个search_i18n_zh_CN.properties,如果需要改的话把附件里的文件解压出来编辑修改就行了。
重新上传服务器替换掉原来的search插件就行了。
再顺便看了一下似乎fastpath没有资源的,看来没有本地化。
我选来选去,挑花了眼,结果还是用netbeans做IDE,而且js编辑器也还可以用用,也省得去D版了。
一个登录界面,非常简单,首先是创建一个controller,只要一个index就够了。
script/generate controller manage index
这个ManageController将拿来单独响应extjs的访问。
修改index.rhtml
<html>
<head>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Contro ...
spark总是不显示名称,而是显示一个去掉后缀的用户名,必须要设置vcard中的昵称才行。
注意在xmpp4r里要引用vcard
require 'xmpp4r/vcard/helper/vcard'
def self.add_vcard(user)
j=user.jabber_conn
if j
#add vcard info
begin
vcard_helper = Jabber::Vcard::Helper.new(j)
vcard = vcard_helper.get
vc ...
很高兴看到3.5.1已经修复了数据库升级的 bug,上次去它的论坛发了一个bug report,看到回复是已经在下个版本中修复了,果然这次出来是修复了。
3.5.1同时也发布了两个原来企业的插件:fastpath和monitor,装上感觉还可以,但是demo缺省帐户是有问题的,会出一个null错误,不过新建的帐号是没问题的。
再配上sparkweb插件,就可以做一个不错的客服了,非常类似国外的传统网站客服。但是没汉化过,要自己定制一下。而且这个sparkweb非常地简陋,但是整个流程是很清晰的。
装上fastpath后,如果用spark登录,那么就会多一个panel,可惜还是英文的。
...
spark的语言插件显示不出中文选项的,那是因为它仅能识别两个字母的语言文件,例:"en",中文是:"zh_CN",带了国名就不能识别了,但是仍然可以正确显示中文,只是语言选项中没有简体中文了。
修改这个文件:LanguagePlugin.java
package org.jivesoftware.sparkimpl.plugin.language;
import java.awt.event.ActionEvent;
import java.io.File;
import java.net.URL;
import java.net.URLDecoder;
import j ...
最近看了一下openfire的日志,发现老是提示数据库在升级,而且总报错,就检查了一下升级数据库的sql。目录:/usr/share/openfire/resources/database/upgrade/14
3.4.5的版本是13,3.5.0是 16,所以会执行14到 16下所有的相关数据库sql。
14目录下的openfire_mysql.sql有问题,要改一下:
ALTER TABLE jiveRoster CHANGE COLUMN jid jid varchar(1024) not null;
原来是ALTER,要改成CHANGE。
mysql 5.0上测试通过,使 ...
经常会收不到,尝试了一下,发现要加为好友,最好是把自动接受的插件打开。
如果不加为好友,发的消息往往会收不到。打开自动接受的插件,就不会因为没加为好友,影响到发消息。
而且加为好友之后是有一段延时的,并不能马上发消息的,所以越早加好友越好。
并不复杂,只要发送一个订阅的Presence就行了。
pres = Jabber::Presence.new.set_type(:subscribe).set_to(jid)
conn.send(pres)
conn是已经连接的jabber。
设置type为:subscribe,设 to为需要增加的好友jid就行了。
如果要自动通过别人加好友,那么要设一个callback。
roster = Jabber::Roster::Helper.new(conn)
roster.add_subscription_request_callback do|roster_ite ...
escape在js里会使用utf8编码,而encodeURIComponent而直接可以被rails所识别,所以要编码中文,就使用encodeURIComponent。
参考:http://www.caiwangqin.com/post/179
目前正在用的gem list
actionmailer (2.0.2, 1.3.6)
actionpack (2.0.2, 1.13.6)
actionwebservice (1.2.6)
activerecord (2.0.2, 1.15.6)
activeresource (2.0.2)
activesupport (2.0.2, 1.4.4)
cgi_multipart_eof_fix (2.5.0)
columnize (0.1)
daemons (1.0.10)
fastthread (1.0.1)
fcgi (0.8.7)
gem_plugin (0.2 ...
- 浏览: 61664 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
我的相册
dog
共 3 张
共 3 张
最近加入圈子
链接
最新评论
-
安装kvm,后现代的虚拟机
这个需要cpu支持的,我的intel core 2 Duo T5500就不支持了 ...
-- by beming -
spark汉化其实还需要改很 ...
怎么没有说怎么改啊。
-- by hf_rabbit -
常见的几种校验方式
不错,收藏了,正好要用二次密码校验,谢谢了
-- by jmajia -
学了一招右对齐
labelAlign : "right",
-- by davidcen -
在google app engine上搞 ...
单词都拼错了.
-- by ja3939






评论排行榜