1###############################################################################
2#
3# ��������ɽ������ץ饰����
4#
5###############################################################################
6package plugin::core::Source;
7use strict;
8#==============================================================================
9# �����ȥ饯��
10#==============================================================================
11sub new {
12	my $class = shift;
13	my $self = {};
14	return bless $self,$class;
15}
16
17#==============================================================================
18# ���������μ¹�
19#==============================================================================
20sub do_action {
21	my $self = shift;
22	my $wiki = shift;
23	my $cgi = $wiki->get_CGI;
24
25	my $pagename = $cgi->param("page");
26	if($pagename eq ""){
27		$pagename = $wiki->config("frontpage");
28	}
29	unless($wiki->can_show($pagename)){
30		return $wiki->error("���ȸ��¤�����ޤ���");
31	}
32	my $gen = $cgi->param("generation");
33	my $source;
34	if($gen eq ''){
35		$source = $wiki->get_page($pagename);
36	} else {
37		$source = $wiki->get_backup($pagename,$gen);
38	}
39	my $format = $wiki->get_edit_format();
40	$source = $wiki->convert_from_fswiki($source,$format);
41
42	if(&Util::handyphone()){
43		print "Content-Type: text/plain;charset=Shift_JIS\n\n";
44		&Jcode::convert(\$source,"sjis");
45	} else {
46		print "Content-Type: text/plain;charset=EUC-JP\n\n";
47	}
48	print $source;
49	exit();
50}
51
52#==============================================================================
53# �ڡ���ɽ�����Υեå��᥽�å�
54# �֥������ץ�˥塼��ͭ���ˤ��ޤ�
55#==============================================================================
56sub hook {
57	my $self = shift;
58	my $wiki = shift;
59	my $cgi  = $wiki->get_CGI;
60
61	my $pagename = $cgi->param("page");
62	if($pagename eq ""){
63		$pagename = $wiki->config("frontpage");
64	}
65
66	$wiki->add_menu("������",$wiki->config('script_name').
67	                "?action=SOURCE&page=".&Util::url_encode($pagename));
68}
69
701;
71