/[pub]/suikawiki/script/misc/plugins/view/Downgrade.wp2
Suika

Contents of /suikawiki/script/misc/plugins/view/Downgrade.wp2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download)
Sat Feb 14 10:50:58 2004 UTC (20 years, 8 months ago) by wakaba
Branch: MAIN
Branch point for: paragraph-200404
Changes since 1.3: +6 -1 lines
New downgrade option

1 wakaba 1.1 #?SuikaWikiConfig/2.0
2    
3     Plugin:
4     @Name: Downgrade
5     @Description:
6     @@@: WikiView output partial downgrade for old clients
7     @@lang:en
8     @License: %%GPL%%
9     @Author:
10     @@Name:
11     @@@@: Wakaba
12     @@@lang:ja
13     @@@script:Latn
14     @@Mail[list]: w@suika.fam.cx
15 wakaba 1.4 @Date.RCS: $Date: 2004/02/08 08:44:00 $
16 wakaba 1.1 @RequiredModule[list]:
17     @RequiredPlugin[list]:
18    
19     PluginConst:
20     @NS_XHTML1:
21     http://www.w3.org/1999/xhtml
22    
23     Function:
24     @Name: set_downgrade_flags
25     @Description:
26     @@@: Setting value to downgrade flags ($wiki->{var}->{client}->{downgrade})
27     @@lang:en
28     @Main:
29     my (undef, $wiki) = @_;
30     my $flag = $wiki->{var}->{client}->{downgrade} ||= {};
31     my $ua_name = $wiki->{var}->{client}->{user_agent_name};
32    
33 wakaba 1.2 ## Gecko Mozilla
34 wakaba 1.3 if ($ua_name =~m#\bGecko/([0-9]+)#) {
35 wakaba 1.2 my $geckover = $1;
36     $flag->{media_type_no_rdf_plus_xml} = 1;
37     $flag->{http_no_see_other} = 1 if $geckover > 20030331;
38 wakaba 1.4 $flag->{html_no_table_abbr} = 1;
39 wakaba 1.2
40     ## Opera
41     } elsif ($ua_name =~ m#\bOpera/([0-9]\.[0-9]+)#) {
42     ## At least Opera/6 does not supports:
43     $flag->{http_refresh_no_quoted_url} = 1;
44     $flag->{http_regresh_no_semicolon_in_uri} = 1;
45    
46 wakaba 1.1 ## Classic Mozilla
47 wakaba 1.2 } elsif ($ua_name =~ m#^Mozilla/([0-4]\.[0-9]+)#) {
48     my $mozver = 0+$1;
49 wakaba 1.3 $flag->{html_no_pi} = 1;
50 wakaba 1.2 $flag->{html_no_id} = 1;
51 wakaba 1.4 $flag->{html_no_table_abbr} = 1;
52 wakaba 1.2 $flag->{media_type_no_xml} = 1;
53     $flag->{html_no_latin1} = 1 if $mozver < 3;
54     ## ISSUE: Is NN3 support latin-1 character on Japanese Windoze?
55     $flag->{charset_name_with_x} = 1 if $mozver < 3;
56     $flag->{http_refresh_no_semicolon_in_uri} = 1;
57 wakaba 1.3 if ($mozver >= 4) {
58     $flag->{ua_netscape4} = 1;
59     $flag->{stylesheet_non_standard} = 1;
60     $flag->{html_link_no_media} = 1;
61     } elsif ($mozver < 1) {
62 wakaba 1.2 $flag->{http_no_see_other} = 1;
63     $flag->{media_type_no_parameter} = 1;
64 wakaba 1.3 $flag->{stylesheet_no_css} = 1;
65     } else {
66     $flag->{stylesheet_no_css} = 1;
67 wakaba 1.2 }
68    
69     ## IE
70 wakaba 1.3 if ($ua_name =~ /\bMSIE ([2-9]\.[0-9]+)/) {
71 wakaba 1.2 my $iever = 0+$1;
72 wakaba 1.3 if ($iever >= 6) {
73 wakaba 1.2 $flag->{media_type_no_xml} = 0;
74     $flag->{media_type_no_plus_xml} = 1;
75 wakaba 1.3 $flag->{ua_winie60} = 1;
76     } elsif ($iever >= 5) {
77     $flag->{media_type_no_xml} = 0;
78     $flag->{media_type_no_plus_xml} = 1;
79     if ($iever >= 5.5) {
80     $flag->{ua_winie55} = 1;
81     } else {
82     $flag->{ua_winie50} = 1;
83     }
84     } elsif ($iever >= 4) {
85     $flag->{ua_winie40} = 1;
86     } elsif ($iever >= 3) {
87     $flag->{html_no_latin1} = 1;
88     ## ISSUE: Is WinIE4 support latin-1 character on Japanese Windoze?
89     $flag->{ua_winie30} = 1;
90     } else { # WinIE 2
91     $flag->{html_no_div} = 1;
92     $flag->{stylesheet_no_css} = 1;
93     $flag->{http_refresh_no_quoted_url} = 1;
94 wakaba 1.2 }
95 wakaba 1.3 $flag->{media_type_no_app_js} = 1;
96 wakaba 1.4 $flag->{html_no_table_abbr} = 1;
97 wakaba 1.3 $flag->{stylesheet_non_standard} = 1 if $iever >= 3;
98     $flag->{ua_netscape4} = 0;
99 wakaba 1.2 }
100     ## WinIE 1.0
101 wakaba 1.3 } elsif ($ua_name =~ m#^Microsoft Internet Explorer\b#) {
102 wakaba 1.2 $flag->{html_no_id} = 1;
103     $flag->{html_no_div} = 1;
104 wakaba 1.4 $flag->{html_no_table_abbr} = 1;
105 wakaba 1.2 $flag->{http_no_see_other} = 1;
106 wakaba 1.3 $flag->{stylesheet_no_css} = 1;
107     } elsif ($ua_name =~ /^Infomosaic\b/) {
108 wakaba 1.2 $flag->{media_type_no_parameter} = 1;
109 wakaba 1.1 $flag->{html_no_id} = 1;
110 wakaba 1.2 $flag->{html_no_div} = 1;
111 wakaba 1.4 $flag->{html_no_table_abbr} = 1;
112 wakaba 1.3 $flag->{stylesheet_no_css} = 1;
113 wakaba 1.1 }

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24