vi /var/www/ywiki/.htaccess
# 将/index.html指向 /bin/view
RewriteEngine On
RewriteCond ${QUERY_STRING} ^(.*)$
RewriteRule ^index\.html$ /bin/view/ [L]cd /var/www/ywiki wget BeautifierPlugin.tgz tar zxvf BeautifierPlugin.tgz
# lib/Output/HTML.pm line 23
# $self->{code} = '<pre>_WORD_</pre>';
$self->{code} = '_WORD_';
# lib/HFile/HFile_perl.pm line 22
# $self->{indent} = ["{"];
# $self->{unindent} = ["}"];
# $self->{stringchars} = [];
$self->{indent} = ["{", "[", "("];
$self->{unindent} = ["}", "]", ")"];
$self->{stringchars} = ['"', "\'"];
# lib/HFile/HFile_bash.pm line 22
# $self->{indent} = ["{("];
# $self->{unindent} = ["})"];
$self->{indent} = ["{", "case", "start)", "stop)", "restart)", "*)", "do"];
$self->{unindent} = ["}", "esac", "done", ";;"];
# 这样的写法显然是不好的,不过没有办法,这个插件的缩进没有成对的概念,所以只能猥琐处理顶一下了
# lib/TWiki/Plugins/BeautifierPlugin.pm line 111
if ($lang eq "") {
return _formatBeautifierOutput( $codeFragment );
}// pub/TWiki/TWikiJavascripts/unicode_chars.js line 12 var CH_CHARS = "\\u4e00-\\u9fa5"; var MIXED_CHALPHANUM_CHARS = MIXED_ALPHA_CHARS + NUMERIC_CHARS + CH_CHARS; var WIKIWORD_REGEX = "^" + "[" + MIXED_CHALPHANUM_CHARS + "]" + "+"; //var WIKIWORD_REGEX = "^" + "[" + UPPER_ALPHA_CHARS + "]" + "+" + "[" + LOWER_ALPHANUM_CHARS + "]" + "+" + "[" + UPPER_ALPHA_CHARS + "]" + "+" + "[" + MIXED_ALPHANUM_CHARS + "]" + "*"; var ALLOWED_URL_CHARS = MIXED_CHALPHANUM_CHARS + "-_^:"; //var ALLOWED_URL_CHARS = MIXED_ALPHANUM_CHARS + "-_^";
# lib/TWiki/Render.pm line 417
require Encode;
$anchorName = Encode::decode('utf8', $anchorName);
$anchorName =~ s/^(.{32})(.*)$/$1/; # limit to 32 chars - FIXME: Use Unicode chars before truncate
$anchorName = Encode::encode('utf8', $anchorName);
// pub/TWiki/PatternSkin/style.css line 76
/* h1 { font-size:210%; } */
/* h2 { font-size:150%; } */
h1 { font-size:210%; font-weight:bold; }
h2 { font-size:150%; font-weight:bold; }
# lib/TWiki/Net.pm line 34
# 添加两个库
use MIME::Base64;
use Text::Iconv;
# 添加一个函数,用来转编码,后面会用到
sub _utf82gbk {
my ($str) = @_;
my $converter = Text::Iconv->new("utf-8", "gbk");
return $converter->convert($str);
}
# lib/TWiki/Net.pm line 288
# 重点修改 _sendEmailByNetSMTP 函数
# 1. 在297 行 $header =~ s/([\n\r])(From|To|CC|BCC)(\:\s*)([^\n\r]*)/$1 . $2 . $3 . _fixLineLength( $4 )/geois; 后加一段判断
# 如果不做这个修改,系统发出来的信的主题和发信人中的中文会显示乱码
# 如果你用的smtp服务器默认编码是utf8的,可以跳过这一步
if( $this->{MAIL_HOST} eq 'mail.fudan.edu.cn' ){ # fudan mail server use gb2312 as header charset, so we have to change it
$header =~ s/([\n\r])(From|To|CC|BCC|Subject)(\:\s*)([^\n\r]*)/$1 . $2 . $3 . _utf82gbk( $4 )/geois;
}
# 2. 349行开始的核心发信代码更换成如下代码:
my $smtp = 0;
if( $this->{HELLO_HOST} ) {
$smtp = Net::SMTP->new( $this->{MAIL_HOST},
Hello => $this->{HELLO_HOST},
AUTH => 'login',
Debug => $TWiki::cfg{SMTP}{Debug} || 0 );
} else {
$smtp = Net::SMTP->new( $this->{MAIL_HOST},
AUTH => 'login',
Debug => $TWiki::cfg{SMTP}{Debug} || 0 );
}
my $status = '';
my $mess = "ERROR: Can't send mail using Net::SMTP. ";
die $mess."Can't connect to '$this->{MAIL_HOST}'" unless $smtp;
if( $TWiki::cfg{SMTP}{Username} ) {
# yang.fang 2008.1.4 support auth login
my $encode_smtpuser = encode_base64($TWiki::cfg{SMTP}{Username}); # 这里是base64加密的用户名
my $encode_smtppass = encode_base64($TWiki::cfg{SMTP}{Password}); # 这里是base64加密的密码,smtp使用它们来验证
$smtp->command('AUTH','LOGIN');
my $answer = $smtp->getline();
# 334 VXNlcm5hbWU6
$smtp->command($encode_smtpuser);
$answer = $smtp->getline();
# 334 UGFzc3dvcmQ6
$smtp->command($encode_smtppass);
$answer = $smtp->getline();
# 235 Authentication successful or 535 Authentication failed
if ($answer =~ /535/i) {
die $mess.$smtp->message;
}
# $smtp->auth($TWiki::cfg{SMTP}{Username}, $TWiki::cfg{SMTP}{Password});
# 上面这句是原来的代码,网上的说法是这个模块有问题,这样做并不能验证,所以我采用手动验证方式与smtp服务器交互
}| I | Attachment | Action | Size | Date | Who | Comment |
|---|---|---|---|---|---|---|
| | Net_pm.patch | manage | 1.4 K | 21 Jan 2008 - 09:55 | Main.yfang | Net.pm的patch |