#?SuikaWikiConfig/2.0 Plugin: @Name: WikiResource @Description: @@@: Wiki resource text support @@lang:en @License: %%GPL%% @Author: @@Name: @@@@: Wakaba @@@lang:ja @@@script:Latn @@Mail[list]: w@suika.fam.cx @Date.RCS: $Date: 2003/12/01 07:31:52 $ @Use: use Message::Util::Error; PluginConst: @NS_XHTML1: http://www.w3.org/1999/xhtml FormattingRule: @Category[list]: view view-resource page-link form-input form-template @Name: res @Description: @@@: Resource @@lang: en @Parameter: @@Name: name @@Type: CDATA @@Default: #REQUIRED @@Description: @@@@: Resource name @@@lang:en @Formatting: __ATTRTEXT:%name__; ## TODO: try { SuikaWiki::Plugin->formatter ('view-resource') ->replace (SuikaWiki::Plugin->resource ($p->{name}), param => $o, -parent => $p->{-parent}); } catch Message::Util::Formatter::error with { my $err = shift; if ($err->{-formatter}->{-category_name} eq 'view_resource') { my $wiki = $err->{-option}->{param}->{wiki}; __FUNCPACK__->logging_template_error ($err, $wiki, resource_name => $p->{name}); undef; } else { $err->throw; } }; Function: @Name: logging_template_error @Description: @@@: Logging formatting-template-text error @@lang:en @Main: my (undef, $err, $wiki, %opt) = @_; my $error = {}; my $dl = $error->{description} = new Message::Markup::XML::Node (type => '#element', namespace_uri => $NS_XHTML1, local_name => 'dl'); ## TODO: Use resource $dl->append_new_node (type => '#element', namespace_uri => $NS_XHTML1, local_name => 'dt') ->append_text ('Resource name'); $dl->append_new_node (type => '#element', namespace_uri => $NS_XHTML1, local_name => 'dd') ->append_text ($opt{resource_name}); $dl->append_new_node (type => '#element', namespace_uri => $NS_XHTML1, local_name => 'dt') ->append_text ('Error condition'); $dl->append_new_node (type => '#element', namespace_uri => $NS_XHTML1, local_name => 'dd') ->append_text ($err->text); $dl->append_new_node (type => '#element', namespace_uri => $NS_XHTML1, local_name => 'dt') ->append_text ('Formatting context'); $dl->append_new_node (type => '#element', namespace_uri => $NS_XHTML1, local_name => 'dd') ->append_text (qq($err->{-formatter}->{-category_name})); push @{$wiki->{var}->{error}||=[]}, $error;