/[pub]/suikawiki/script/lib/SuikaWiki/Plugin/WikiResource.wp2
Suika

Contents of /suikawiki/script/lib/SuikaWiki/Plugin/WikiResource.wp2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Mon Dec 1 07:31:52 2003 UTC (21 years, 5 months ago) by wakaba
Branch: MAIN
Changes since 1.1: +59 -4 lines
Try & catch formatter text error

1 wakaba 1.1 #?SuikaWikiConfig/2.0
2    
3     Plugin:
4     @Name: WikiResource
5     @Description:
6     @@@: Wiki resource text support
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.2 @Date.RCS: $Date: 2003/11/25 12:39:40 $
16     @Use:
17     use Message::Util::Error;
18 wakaba 1.1
19     PluginConst:
20     @NS_XHTML1:
21     http://www.w3.org/1999/xhtml
22    
23     FormattingRule:
24     @Category[list]:
25     view
26     view-resource
27     page-link
28     form-input
29     form-template
30     @Name: res
31     @Description:
32     @@@: Resource
33     @@lang: en
34     @Parameter:
35     @@Name: name
36     @@Type: CDATA
37     @@Default: #REQUIRED
38     @@Description:
39     @@@@: Resource name
40     @@@lang:en
41     @Formatting:
42     __ATTRTEXT:%name__;
43     ## TODO:
44 wakaba 1.2 try {
45     SuikaWiki::Plugin->formatter ('view-resource')
46     ->replace (SuikaWiki::Plugin->resource ($p->{name}),
47     param => $o, -parent => $p->{-parent});
48     } catch Message::Util::Formatter::error with {
49     my $err = shift;
50     if ($err->{-formatter}->{-category_name} eq 'view_resource') {
51     my $wiki = $err->{-option}->{param}->{wiki};
52     __FUNCPACK__->logging_template_error ($err, $wiki,
53     resource_name => $p->{name});
54     undef;
55     } else {
56     $err->throw;
57     }
58     };
59 wakaba 1.1
60 wakaba 1.2 Function:
61     @Name: logging_template_error
62     @Description:
63     @@@:
64     Logging formatting-template-text error
65     @@lang:en
66     @Main:
67     my (undef, $err, $wiki, %opt) = @_;
68     my $error = {};
69     my $dl = $error->{description}
70     = new Message::Markup::XML::Node
71     (type => '#element',
72     namespace_uri => $NS_XHTML1,
73     local_name => 'dl');
74     ## TODO: Use resource
75     $dl->append_new_node (type => '#element',
76     namespace_uri => $NS_XHTML1,
77     local_name => 'dt')
78     ->append_text ('Resource name');
79     $dl->append_new_node (type => '#element',
80     namespace_uri => $NS_XHTML1,
81     local_name => 'dd')
82     ->append_text ($opt{resource_name});
83     $dl->append_new_node (type => '#element',
84     namespace_uri => $NS_XHTML1,
85     local_name => 'dt')
86     ->append_text ('Error condition');
87     $dl->append_new_node (type => '#element',
88     namespace_uri => $NS_XHTML1,
89     local_name => 'dd')
90     ->append_text ($err->text);
91     $dl->append_new_node (type => '#element',
92     namespace_uri => $NS_XHTML1,
93     local_name => 'dt')
94     ->append_text ('Formatting context');
95     $dl->append_new_node (type => '#element',
96     namespace_uri => $NS_XHTML1,
97     local_name => 'dd')
98     ->append_text (qq($err->{-formatter}->{-category_name}));
99    
100     push @{$wiki->{var}->{error}||=[]}, $error;

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24